Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(2 edits) (+4)

EDIT 2: Here is the final release of the add-ons. Everything should be working correctly now. I believe all of the add-ons had at least some minor change to them.

Release Download

EDIT: I was able to correct the issue with the father not being passed to the child so that is now working correctly. I also modified the ovulation cycle durations to use variables.


Aric,

Here are the add-ons I previously mentions. Please keep in mind this a beta and there are bugs in the hybrid/ovulation system. I have not yet done a complete play through. I will be doing that over the next week or two and will update the code with the needed bug fixes. I wanted to go ahead and post this so you guys could take a look and play with it. The code is not fully marked up yet. I will include the mark ups you requested with the final release.

All of the add-ons require the general code (file aricsexpansion_addon_general_beta). Changes are made to the person object so this will break previous game saves.

Standalone Add-ons

These should be fine by themselves. They are very simple modifications and should be relatively bug free.

  • Housepet -


    • adds a housepet job
    • slave must have advanced brand for job
    • provides stress relief for slaves resting in mansion
    • random encounters with dogs increases obedience and loyalty (basically they are becoming more of a housepet)
  • Kennel Sleep Location
    • adds kennel as a sleep location
    • no limit on number of slaves sleeping in kennel because they don't need much space
    • random encounters with dogs increases obedience and loyalty (basically they are becoming more of a housepet)
  • Body Cum Handling


    • modifies how the expansion handles cum removal from body
    • removal is based on bath rule (for body and face), pregnancy desire (for pussy) and fetishes
    • slaves will want to remove cum from themselves unless they have a desire or fetish
    • a decay will gradually reduce cum no matter what desire or fetish is, simulates minimum daily cleaning
  • Unique Character Naked Images
    • extends the expansion's naked image support to the unique characters
    • have not completed a full play-through and tested all characters but it should work just fine

Dependent Add-on

This add-on is dependent on the main hybrid add-on

  • Beast Breeding
    • Simple mod that modifies the sex scene code to allow animals to attempt to impregnate slaves
    • There are breeding restrictions based on race in the hybrid add-on which determines if it is possible to impregnate

Hybrid, Ovulation & Improvements Metrics

These three are too intertwined to use separately, so I included the code together. Please note there is a bug in the ovulation system where the father is not being set so offspring are not being generated correctly. I will identify the issue and correct it during my testing over the next week or two. Be warned you are likely going to run into bugs until then.

Hybrids

Hybrids are handled by generating a genealogy for each person. For generated persons (not born), the race is used to determine the genealogy. For born persons, the race is determined from genealogy which is inherited from the parents.

All races are separated into categories: Humanoid, Uncommon, Magic, Beast and Animals

  • Humanoid : Human, Elf, Dark Elf, Drow, Orc, Gnome, Goblin, Demon and Dragonkin
    • can breed with any humanoid race or beast race
    • full blood is 70% or higher
    • half blood is 50% or higher
  • Uncommon : Fairy, Seraph, Dryad, Lamia, Harpy, Arachna, Nereid and Scylla
    • can only breed with a member of their own race
    • always full blooded
  • Magic : Slime
    • cannot breed - game description describes slimes as a magic mutation
    • have highest possible bonuses since cannot breed
    • always full blooded (idea is they are no longer whatever they previously were when turned into a slime)
  • Beast : Centaur, Taurus, Beastkin and Halfkin
    • can breed with any humanoid race or beast race
    • can breed with corresponding animal (beastkin wolf can breed with dog, centaur can breed with horse, etc.)
    • beastkin is 70% or higher of animal stock
    • halfkin is 50% or higher of animal stock
    • because genealogy is determined by taking half of each parent, breeding a beastkin and halfkin of same type will result in halfkin, breeding two of different type is likely to result in a mixed blood
    • breeding a halfkin with the corresponding animal will produce a beastkin
  • Animals : Bunny, Cat, Cow, Dog, Fox, Horse and Raccoon
    • can only breed with corresponding beastkin/halfkin type

The idea here was to create a more complex way of breeding slaves and encourage the use of breeding strategies. I tried to apply some basic rules of genetics to give the system more flavor. The beastkin/halfkin are based off of in-game descriptions which suggest that at some point in the past mages experimented on people. I interpreted this as they blended animal stock with people.

Each race gives bonuses and/or negatives to certain stats. I tried to make the bonuses/negatives make sense. The value for each bonus/negative is based on a random range so each person will be a little bit more unique. Since these bonuses/negatives are applied to all persons, both born and generated, overall game balance should be maintained. Just some races will be more suited to certain tasks than others.

Ovulation System

The ovulation system completely replaces the current impregnation system. The vanilla function calls are repurposed to now use the new system, allowing for all previous code to continue to work.

There are two types of ovulation. The standard ovulation type ovulates for 8 days and then rests for 15. The extended type ovulates for 12 days then rests for 15. The ovulation type is determined by the person's race. Each time a male ejaculates into a female an entry is made in an array. This simulates semen remaining in the womb. After 5 days, semen begins to "die off" and is removed from the array. The amount of semen is based on the values used in the expansion for each balls size. The size of the penis determines how much of that semen initially enters the womb. The virility of the male at the time of ejaculation is also stored in the womb to be used later in determining if the semen reaches the egg. If is possible for the semen of multiple males to be simultaneously in the womb competing for the egg.

Each night the female is ovulating the womb array is looped over and each deposit is given a chance to impregnate the egg. This means that a single ejaculation could potential try to fertilize the egg 5-6 times. Also, if there is cum still in the pussy, each night a small percentage will enter into the womb, thus increasing the chances of reaching the egg.

To fertilize the egg, semen must first pass a check to determine if they reach it. Then, the egg must pass a check to determine if it is successfully fertilized. The chance of actually fertilizing the egg is based on:

  • Male - penis size, balls size, base fertility, racial fertility bonus/negative, viritility, fertile trait
  • Female - breast size, butt size, base fertility, racial fertility bonus/negative,, egg strength, fertile trait

Scores are determine for both the male and the female. The difficulty of this check is reduced by 25% if the player is a breeder

It is possible for multi-children births. In order for this to happen multiple eggs must be fertilized on the same night. There is also a limit on the number of possible children in a single birth based on the race type.

Improved Metrics

Displayed metrics and person information is changed in multiple locations to accommodate the hybrid and ovulation systems.

Whoa, this is some interesting mod although (I might be wrong) but at the 'Hybrids' section for the 'half-blood' you wrote 50% or higher but wouldn't that overlap the 'full-blood' which is 70% or higher? In my opinion a 'half-blood' would be around either 25%-50% or 50%-69%. Otherwise cant wait to try out this mod I love the idea of this game having more flavor into it.

It’s an if else, meaning if >= 70% then full else if >= 50% half blood. 

The idea of the full blood and half blood is these are your most pure blooded. Someone who is say 40% human, 30% elf and 30% gnome is not really half human but a mixed breed.

The percentages and values can be tweaked to some extent very easily and Aric very well may do so. Also, once the code is bug free I’d like to add more depth to the in-game descriptions. That is a lot of creative writing and a good deal of logic so it will wait until the mechanics work flawlessly.

Are those files useable by everyone, or are they just for Aric, so that they can be implemanted in the mod?
If they are useable by everyone, please give us a short guide how to handle the files

The intent is for Aric to incorporate them into the expansion itself, but anyone is free to use the code. Each file corresponds to one of the add-ons (calling it that because they are not standalone and rely  on aric’s expansion mod). 

Within each file the code is broken down into sections by the file edited and then either one new code or modified code. Modified code replaces a variable or function while new code adds it.

If you don’t know what your doing you really should make sure you have a backup of your files before attempting anything (probably a good idea even if you do know what your doing).  The files are formatted like this so it is easier for Aric (or anyone for that matter) to review exactly what is being changed and walk through the code.

(1 edit)

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

(1 edit)

I really like the variable to modify the on/off cycle lengths so I’ll implement that. I hesitate  to use a percent of pregduration because I sometimes set that 90 or 180 days to make the game a bit more realistic so the on/off cycle would be way out of wack in such cases (same thing if the pregduration is really short).

You will notice when you dig into the code I tried to respect all of your expansion’s flags. I wanted the system to feel like a fully integrated part of your mod and not just a bolt-on afterthought. If you notice any I missed please let me know.

As for the person file I did not know that. I’ll read through the code tonight.

One question for you, what is the purpose of the perfectview variable? When displaying metric data I wanted to require a nurse for some information but also wanted to respect any mod variables which should override that requirement. But it looks like the perfectview variable is always set to true.

(2 edits)

Perfect Info is a Boolean that will unlock the ability to always see if someone is pregnant or lactating even before they tell you. Otherwise it will not show in statistics until they have told you that they are pregnant/lactating.

It was intended as a debug feature but is also a way for users to circumvent the whole “slave keeping secrets” part of the mod.

Edit: The one thing to keep in mind is that the backwards compatibility formula I’ve been using really works best when checking for values within an existing dictionary in that save game. Otherwise you’ll have to add the entire new dictionary to the person class. That’s a big part of why I implemented the npcexpanded dictionary early on, as that can be an easy catch-all for any new variables added to the person class to be checked with if !person.npcexpanded.has(‘example’):

 i tried moving your stuff in, but strive immediately said that "changerace" isn't defined. I also can't find it anywhere, but it's in your code for constructor.gd.

please help.

(1 edit)

While it is possible that I missed a function or variable when compiling the list of code changes, that actually sounds like you did not add the code correctly to the game files. The function changerace is not one of my functions, but is called by one of the functions I modified.

The first thing to understand is that the files provided are not game files. They will not work by dropping them into the game folders. Rather the files are excerpts of code. The code has to be inserted into a game file manually. There is a header for each section of code which tells you what game file and whether you are adding new code or replacing existing code. New code can be added anywhere within a script. Though in general it is best practice to place global variables before functions, for simplicity you may want to just add all the new code at the bottom since it is just for your personal use. Modified code, however, must replace the existing variable/function otherwise you will get an error for multiple declarations.


Before making any edits make sure you have a backup of you game files, especially if you have made any other manual modifications.

I prepared them this way because the intent is to allow Aric to easily perform a code review and then add it into the base expansion. It is likely by the time this code is release ready he will be in the middle of working on v0.95.0 so this allows him to easily integrate my work into his current work.  

Hope this helps.

(2 edits)

right, so i did copy and paste the individual code blocks i'm pretty sure into the correct places, but strive still flips out. does anyone know where changerace() even is?


EDIT: OHHHH, so you wanted me to port the code blocks into ARIC's scripts, not the applied scripts. That makes more sense, since changerace() isn't in the applied constructor.gd but IS in aric's constructor.gd

well, you can disregard me entirely ig.

To clarify (and for anyone else reading) after you have enabled Aric's mod and it is working correctly you would want to insert the code into the game files within the main Strive game folder. Typically when I am writing any code for Strive I edit the game files directly so that I can see code changes immediately upon reloading the game. This of course means that if you go back into the mod options and disable the Aric mod you will lose all of your code changes (which is why I also keep a copy outside of strive). There are also some files which are not part of the base game which reside only in the roaming/strive/mod/AricsExpansion folder. I think the only file in there that is modified is expansion.gd.

So, for base game files put the code into the files located within the main game folder. For expansion only files, put them in the files in the roaming folder.

I'm adding in the changes and working on getting the backwards compatibility set up (so you don't focus on that). Loving everything I'm seeing so far, mate! I'll touch base if I have more questions as I go through and add these in.

Sounds good and I'm glad you like it. I've encountered a few more bugs during my full play through test, but I think I will complete that by the end of the weekend and will have a release ready version of everything for you by Sunday.

And just so we are on the same page, you are not adding any dialog for the setting variables correct? I am planning to hook into that as soon as I complete the full play through test. Going to add it as a option when talking to the Headgirl about pregnancies.

Negative. I'm only adding in backwards compatibility (as I find it). Love the extra dialogue and descriptions but will definitely hold off on any further until you are wrapped up with it.

One of these days I need to do a github so we can collaborate easier.

I just updated the add-on files with a final release version. Included is the dialog to modify the duration.

Got it

So I want to clarify: In terms of the Hybrid part of the add-on, if my PC isn't an Uncommon race, the PC can't breed any of those races? The only exception would be if PC was a Seraph, then PC can breed other Seraphs and no other Uncommon races, right? As a Seraph PC I can't have PC breed with say, a fairy, and come up with either a fairy offspring or a Seraph offspring, am I hearing that correctly? That sounds kind of depressing for a Breeder play through, being locked out of an entire category the PC can breed with...

That is currently being entirely reworked as that does invalidate multiple playthrough options and limit player versatility. 

Ah, good to know. Breeder is the only play through I haven't done yet, and with all of the changes with the Farm and stuff I was thinking about finally getting around to running one, but then I was starting to think maybe it wasn't going to be a good idea, especially since I really like almost everything else the additions give to the game.

It should be a fun play through once these pregnancy  issues are corrected

is there a possibility of releasing the edited files instead of needing to edit them by hand? I was trying to merge the code from your files and messed up a lot of everywhere. by the way, what do you actually merge and where? i tried merging it all into the mod file instead of the game file but some of the files where not there giving me the impression i messed up, also at one point i managed to lose 500 lines of code and i'm kinda throwing in the towel for doing this my self. for reference, I was trying to add all of the addons, not any specific set. thanks in advance

These are already included into v0.9.5. They weren’t intended to be added on separately.

oh wow, i seriously need to learn how to read, thank you for clearing that up for me and keep up the god work!