Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(2 edits)

I just discovered S4P and this mod a few weeks ago and they're both awesome. Thanks for the hard work! I've run across a few bugs though:

  1. Dark Elves seem to apply their bonus to sadated and bandaged effects regardless of the check in Mansion.gd. It appears that the in array check does not work for whatever reason. Replacing 'if person.race.find('Dark Elf') < 0 || (!i.code in ['bandaged','sedated'] && randf() > 0.5):' with 'if person.race.find('Dark Elf') < 0 || i.code == 'bandaged' || i.code == 'sedated' || randf() > 0.5:' fixed it for me. Also the random chance seems to cause ridiculously long effect durations. I've never seen a beauty potion run out on a Dark Elf, even in my 30+ turn test run. Maybe it would be better to replace the random chance for a check against whether the current date is divisible by 2 or not. It's a bit hacky, but not much more than the RNG and the random chance is too unreliable IMHO. It'll still simulate the desired effect well enough. The Dark Elf bonus seems kinda meh and weird in general as it also applies to numbed and stimulated which can cause some funky stuff.
  2. The check in newsexsystem.gd that's used to compare genital sizes does not check if the check is done against the taker/giver. This can cause a female receiver to compare their vagina against the penis size of another female receiver during group sex creating a hilarious -50% or more arousal penalty and complaints about a small dick when getting it on with a horse. XD Changing instances of 'if scenedict.givers.has(self):' and 'if scenedict.takers.has(self):' to 'if scenedict.givers.has(self) && scenedict.takers.has(i):' and 'if scenedict.takers.has(self) && scenedict.givers.has(i):' fixed it for me.
  3. If perfect info is turned on, then the slave statistics will always show info about the current pregnancy whether or not the slave is pregnant, instead of showing fertility and ovulation info for non-pregnant female slaves. Changing 'if (person.knowledge.has('currentpregnancy') && person.preg.is_preg == true || globals.state.perfectinfo == true) &&  person.preg.has_womb == true:' to 'if (person.knowledge.has('currentpregnancy') || globals.state.perfectinfo == true) &&  person.preg.has_womb == true && person.preg.is_preg == true:' in slave_tab_gd fixed it for me.

Lastly, what's your take on someone modding your mod? I've been making some changes in the mod for my own playthrough and I was thinking of maybe putting together my own mod based on yours. Maybe rework how the sex descriptions work, change how fetishes are learned and influenced and maybe some other stuff as well. I haven't delved too deep into it yet and I don't really know if it would be necessary but I suspect it would make stuff much easier for users and avoid compatibility issues, if I could distribute my mod together with yours(with all due credit of course). Would that be ok?

About #1, the coin flip was the vanilla method of implementing the Dark Elf racial bonus. Though there are more reliable ways of implementing it, as you pointed out it should generally work well enough, so that part was never changed. The ['bandaged','sedated'] part was my addition, because I noticed that those effect durations were functionally cooldowns unlike the other effects. Though I have no idea what I was thinking when I wrote that logic, since it's pretty obviously wrong. Though your explanation is wrong, your condition logic is better than mine. The cause was the "!" and the "&&" instead of "||", not the array check.

Yes! You're completely right. I didn't notice the ! negation before the array check. Are you going to do any overhauls or large scale fixes to the sex system next release? I was thinking of maybe doing some debugging and improvements with it, so if you're interested I could share my results.

I've already done a bit of fixing to the sex system and overhauled sexdescriptions.gd. The results were released in a bugfix patch on the Strive Discord(https://itch.io/t/284398/discord) and already included in the 1.0a release of Strive. Aric will probably try to update his mod to include them but it may take a few weeks.

The Discord is often a better place to share ideas, but either way is fine. I mainly do bug fixes for Strive and Aric is more likely to adopt new ideas. I wish I had known about the Dark Elf problem earlier so it could have been included, but once enough fixes are needed I'll put together a new patch.

(1 edit)

Great catches. I'll look into applying those fixes.

In general, I'm cool with anyone making a mod off of mine or modding mine. It may be easier to set your mod to use AricsExpansion as the base (ie: have AricsExpansion loaded first then yours below it to have your mod files change Arics) instead of just patching and re-releasing the whole AricsExpansion with your changes as that will involve reworking your mod every time AricsExpansion is patched/updated, but I'm cool with either. Have at it and I look forward to seeing what ya come up with!

Edit: Fixes applied to v0.9.8. Love the notes on the bugs and you made it exceptionally easy for me to grab and apply those quickly. I appreciate the help!

Hey! I found another bug. The Dog Kennel sleeping option does not show up in the Slave Spreadsheet(the one unlocked by the headgirl). Opening the Slave Spreadsheet will also throw an error in the console and leave the sleeping text cell empty for any slave sleeping in the Dog Kennel. Here's my fix for it:

  1. First the Dog Kennel needs to be added to the global.gd 'sleepdict' array. I changed the array from 'var sleepdict = {communal = {name = 'Communal Room'}, jail = {name = "Jail"}, personal = {name = 'Personal Room'}, your = {name = "Your bed"}}' to 'var sleepdict = {communal = {name = 'Communal Room'}, jail = {name = "Jail"}, personal = {name = 'Personal Room'}, your = {name = "Your bed"}, kennel = {name = "Dog Kennel"}}'
  2. Next a function and an array in the Mansion.gd need to be updated:
    1. var sleedict needs kennel added to it. My fixed version looks like this: 'var sleepdict = {0 : 'communal', 1 : 'jail', 2 : 'personal', 3 : 'your', 4 : "kennel"}'
    2. 'func sleeppressed(button)' need the following lines added at the end:

button.add_item(globals.sleepdict['kennel'].name)

if globals.state.mansionupgrades.mansionkennels == 0: 

 button.set_item_disabled(button.get_item_count()-1, true)

if person.sleep == 'kennel': 

 button.set_item_disabled(button.get_item_count()-1, true)

 button.select(button.get_item_count()-1)

Sorry about the butchered code formatting. Itch does not seem to have code formatting tools for their forums. Also, the mansion main screen does not properly update after changing sleeping spots within the Slave Spreadsheet, but that's a vanilla issue so I just ignored that. Ideally there should be a rebuild function call within func sleepselect and a rebuild function defined for the mansion main screen but there isn't.

Awesome find, and once again I appreciate the fix + the logic behind it. Fix applied for v0.9.8

(2 edits)

Found and tracked down another bug. Milking gets applied multiple times during group sex. Every milking action milking is applied to every lactating character milked times the number of lactating characters getting milked. So if 3 lactating characters get milked during group sex, they each get milked 3 times for a total of 9 milkings. This is not dependent on the number of people doing the milking, just the people getting milked. Anyway, too much milking and too much text spam. Milking can also currently give weird negative values. The fix is to move the milking logic outside the for loop it's in. I moved it to before the for loop. I also made various changes that made sense to me and fix some aberrant behavior. The code is too long and complex to paste it here without formatting so I put it on pastebin together with lines at the start and end of it which indicate where I placed it in newsexsystem.gd and my comments:  https://pastebin.com/VpdqGgJ6

The old milking code and my comments should also be removed before applying this fix. Just in case someone wants to apply my fixes themselves.

Edit: I'm also getting some errors with jobs. Seems like something connected to the guardian job? I'm running a 9.5 save on a fresh 9.7 install based on 5.25. I'll see if I can track it down but my console log is this(ignore the kennel error that is the mod overwriting one of my fixes from before :P): 

Hope I'm not getting annoying, but I found another error ;).  In expansion.gd on line 1771 'globals.titssizearray.back' should be 'globals.titssizearray.back()'. Currently breast expansion during pregnancy does not work.

Okay, I've found the reason for that elusive error I posted about before. It has nothing actually to do with the save. I checked and the job exp and all that stuff was already present on the save. I already had saved it in 9.7. The real reason is that the random events for guardian and slave catcher jobs use the global.evaluate function which relies on the global.currentslave variable. gloabl.currentslave however is only set when the slave tab is opened(the slave which tab it is) or in sexuals.gd on a few occasions. This means that the slave data used in those random job events is the data for the slave which had it's slave tab opened or had sex most recently. This is bad enough as the wrong slave's data is used, but when the game is started freshly and a save is loaded where a slave is assigned to either guardian or slave catcher jobs then the day is passed without doing anything else the game will generate errors in the console as the global.currentslave is nil/null and no end of day report is displayed.

I uploaded the needed changes to jobs&specs.gd to pastebin again: https://pastebin.com/DnjJvAnG

(+1)
Itch.io provides code format blocks in "Format" text option button (left-most button above the text input)