I will bold filenames and any part of the code I change or add for ease of reading.
In races.gd please add which essence drops in the details section after stat potential. For example:
Human = {
skin = ['pale', 'fair', 'olive', 'tan'],
eyecolor = ['blue', 'green', 'brown', 'hazel', 'black', 'gray'],
haircolor = ['blond', 'red', 'auburn', 'brown', 'black'],
surname = names.humansurname,
description = "Humans ar[...Removed to fit post]",
details = "[color=aqua]Racial trait: Punishment expectations and praise lasts twice as long.[/color]
\n\n[color=yellow]Stat potential: Strength - 5, Agility - 3, Magic - 2, Endurance - 4 [/color]
\n\n[color=purple]Essence Drop: Basic Solution[/color]",
stats = {str_max = 5, agi_max = 3, maf_max = 2, end_max = 4}
All races should have an essence drop. I never bother catching slaves that don’t have one. Here are the drops I add to func getessence() in globals.gd
var essence
if race in ['Demon', 'Arachna', 'Lamia', 'Goblin', 'Orc']:
essence = 'taintedessenceing'
elif race in ['Fairy', 'Drow', 'Dragonkin', ‘Gnome’]:
essence = 'magicessenceing'
elif race in ['Dryad', 'Elf', 'Dark Elf']:
essence = 'natureessenceing'
elif race in ['Harpy', 'Centaur', 'Taurus'] || race.find('Beastkin') >= 0 || race.find('Halfkin') >= 0:
essence = 'bestialessenceing'
elif race in ['Slime','Nereid', 'Scylla']:
essence = 'fluidsubstanceing'
elif race in ['Human', 'Seraph']:
essence = 'basicsolutioning'
return essence
I'm not sure if this falls within changing race stuff, but while we are on the subject of essences I propose that essence drops scale based on Magic Affinity. This is how I implemented it in newsexsystem.gd. Ctrl + F to find this line.
globals.itemdict[i.person.getessence()].amount += (1 + i.person.smaf)
I initially suggested the above things via paetron, but the main guy doesn't seem to be touching old code as much as you, so I figured I'd throw these ideas to you. If you'd like I can send you the same google doc writeup I sent him.