Love what I’m seeing so far and appreciate the write-up. A couple of notes from the systems you explained so far. I’ll dig into the code after work to see more precise details.
Ovulation System - You mentioned precise variables for that system. The issue I can foresee is that it may conflict with edited values if the player changes the pregnancy duration via the Headgirl.
I would recommend changing them from Ovulating 5/8 and resting 15 to Ovulating duration = globals.variables.pregduration * .25 or *30 and resting globals.variables.pregduration * .75 or *.70, whatever your monthly percentage is. If you’d prefer players to have greater control and flexibility, you could also just create a variable in expansion.gd > settings called cyclelength to have the percentages based on, then one of us can tie it into the existing pregnancy length dialogue system to be able to shorten or lengthen durations fluidly.
Secondly, regarding existing game support from the person edit that should be easy to add. Create a function that checks if a person has the dictionary value and adds it if not. Either toss that into backwards compatibility or just call your function from it. There should be examples in the expandPerson function to show how it can work