So i've found (and fixed?) a few bugs in various parts of the mod.
First: the infinite crawling after equipping handcuffs (or other things if they can cause crawling).
It never resets the person.restrained back to none.
in expansion.gd : func updatePerson(person) : Check and Add Restraints section starting at line 184
I added person.restrained = "none" before the for loop that checks equipped items for restraints. It will just set if back to cuffed if it finds them still equipped.
#Check and Add Restraints
person.restrained = "none"
for i in person.gear.values():
Second: the excessive milk generation values when a character has a milk flow trait.
When calculating milk generation (or storage) when a trait to modify the value is present the end result simplifies to regen * round(regen * (1 + 0.2 * milk flow level))
So if regen were 5 (5 milk generated per day) instead of the expect 6 milk with milk flow 1 you get 30 milk.
In expansion.gd : func dailyLactation(person) : Traits section starting at line 2490
I removed the "regen *" from "regen = regen * traitmod" since if traitmod is > 0 it has already factored in the regen value. (and the same for the milkstorage part)
#Traits
for i in person.traits:
#Set Lactation Regen/Flow Traitline
var trait = globals.origins.trait(i)
if trait.tags.has('lactation-trait') && trait.tags.has('regentrait'):
traitrank = globals.expansion.regentrait.find(i)
if traitrank == 0:
traitmod = round(regen*.5)
text += "[color=red]Milk regeneration hampered by Trait: " + str(i) + ".[/color]\n"
elif traitrank > 0:
traitrank = 1+(traitrank*.2)
traitmod = round(regen*traitrank)
text += "[color=green]Milk regeneration increased by Trait: " + str(i) + ".[/color]\n"
if traitmod > 0:
regen = traitmod
traitmod = 0
if trait.tags.has('lactation-trait') && trait.tags.has('storagetrait'):
traitrank = globals.expansion.storagetrait.find(i)
if traitrank == 0:
traitmod = round(milkstorage*.5)
text += "[color=red]Milk gland capacity lessened by Trait: " + str(i) + ".[/color]\n"
elif traitrank > 0:
traitrank = 1+(traitrank*.2)
traitmod = round(milkstorage*traitrank)
text += "[color=green]Milk gland capacity increased by Trait: " + str(i) + ".[/color]\n"
if traitmod > 0:
milkstorage = traitmod
Technically traitmod is superfluous you could jet set regen or milkstorage to the value you set traitmod to in the same places you set traitmod.
Third: when getting consent for impregnation by family members it doesn't store the value.
This happens because it is trying to store the value in person.consentexp.incestpregnancy, when the actual variable would be person.consentexp.incestbreeder
it can be fixed by changing one of them to match the other, though since it is incestpregnancy only in the consent assignment and incestbreeder everywhere else changing incestpregnancy to incestbreeder makes more sense, at least unless you add impregnating a family member as a separate consent to being impregnated by a family member, though that bring a whole wack of other changes with it.
In statstab.gd : on lines 1167 and 1223
change : person.consentexp.incestpregnancy
to : person.consentexp.incestbreeder