Jump to content

[AAF] RSE II: Reproductive System Effects (07/25/19)


Recommended Posts

[AAF] RSE II: Reproductive System Effects (07/25/19)

View File

RSE2_RSE.png.6d6b6c2d4c1d6449d9d696fd89a9aabc.png

 

 

About:

 

This mod adds a menstrual cycle to the player, be they female OR male, as well as various pregnancy related effects such as morning sickness and fatigue, as well as miscarriages. The options in the MCM highlight all of the current functionality, in a plain and understandable way. Integrates at this time with Wasterlander's Rash and in the future will also integrate with Advanced Needs. Note that there is no requirement to have either mod installed ~ their inclusion is done through a soft-check.

 

NOTE: This mod REQUIRES AAF and FAMILY PLANNING ENHANCED!

 

This mod starts in a "disabled" state and you will need to go into the MCM to set your timeframe for what the mod considers to be a month and then enable periods. This was done to prevent the mod from automatically starting on MALE player games, when you have forgotten the mod is installed.

 

Requirements:

 

A functioning install of AAF.

 

MCM -> https://www.nexusmods.com/fallout4/mods/21497

Family Planning Enhanced

RSE II Resources ESM

 

Legal:

 

All assets are to remain intact with RSEII: Reproductive System Effects. You may not take any part of it, in whole or in part, to use in your own mods without express permission. Trust, I know my code, function flow and my assets - if you use it without asking, I'll know and it wont be good for you. RSEII: Reproductive System Effects is made to be used in whole, not for you to rip apart and coopt components of it for your own uses. This mod may not be altered or redistributed. Lovers Lab is the only site that has permission to host the file and does so under my own user account.

 


  • Submitter
  • Submitted
    07/24/2019
  • Category
  • Requires
    AAF, MCM, Family Planning Enhanced, RSEII Resources.esm

 

Link to comment

Current options for the mod are highlighted in the MCM and are described in as basic a way as possible.

 

ScreenShot833.png.6bad783bdb89ba167da922c33aa1a08c.pngScreenShot834.png.44ffd1c51ebd6018c068e22c5a752687.png

 

ScreenShot829.png.637c91f7838631cd958b83c18c49eef1.pngScreenShot830.png.3d783583b2e34c73f52257318ca32805.png

 

Important things to note about periods:

  1. You cannot get pregnant via Family Planning Enhanced while you are flagged as having your period.
  2. You cannot get your period if Family Planning Enhanced sees you as pregnant.
  3. The timer you set in the MCM, is your period-free days.
  4. Once that timer runs out, you have one day's notice that it is coming.
  5. When that day passes, your period arrives and lasts for your period timer length, divided by 3.
  6. So if your length is 21 days, your period lasts for 7 days on top of that 21, making the total cycle 28 days.

You can get morning sickness in the first few months of a pregnancy. If you get it, you will have a -2 END debuff for two hours, and during that time, there is a chance that eating or drinking could cause you to be sick again.

 

As your pregnancy progresses, you will find you will be able to carry less stuff and your AP will drain faster. I didn't want to disable running and sprinting, so used a perk with attached magic effects to reduce both of these stats. At 7 months, the penalty is 75% normal. At 8 months, 50%. At 9 months, 25%. Once your baby is born and you are no longer considered pregnant, these penalties will go away and your stats for weight and AP drain will return to normal.

 

If you get critically shot in the torso or fall from too great a height, it could trigger a miscarriage.

 

If you have Wastelander's Rash installed, being infected could also potentially cause a miscarriage.

 

More will be added later, including Advanced Needs integration.

Link to comment

Please note, this is the first release of the mod. While the parts of it that are there are completely functional, there are still items I will be adding in later versions.

 

This mod is auto-update capable and WILL automatically reset all debuffs prior to any auto-update function, so as to prevent stuck debuffs and effects on the player.

Link to comment
1 hour ago, Sagebrush61 said:

Will it cause issues to add this to a playthrough if the PC is already pregnant at the time of install?

Nope, wont cause any issues at all - it has a builtin auto-pregnancy detection upon first install, just to ensure everything works as expected.

Link to comment

Someone doesn't look too thrilled about period sex...

 

ScreenShot838.png.995176d08944a8229515cdc264157862.pngScreenShot836.png.b112f5efe393f7ec71c535e5ad23ff9b.png

 

Now I don't know why, but for some reason, the shader will not apply to the player's body double. It should - it applies to the other actor just fine, but nope, won't cover the player in blood. Kind of sucks.. will keep trying to figure this one out.

Link to comment
1 hour ago, darkon74slayer said:

so is there a way to put the blood where it comes from only?

Not in any way that I personally know how. I mean, there are overlays, but as far as I know, these can't be applied via papyrus. I don't know how AAF does it, but I would assume its part of the adobe code built into the plugin and not any part pf the scripting - at least, that is my takeaway. At any rate, for some reason, the period sex shader can be applied to the player's partner, but not to the body double. Don't know why. Once I solve this, perhaps I can look at the overlay question...

 

Maybe @dagobaking might have an idea?

 

At any rate, for now, the smears are a thing that can be disabled.

Link to comment
1 hour ago, Flashy (JoeR) said:

I mean, there are overlays, but as far as I know, these can't be applied via papyrus. I don't know how AAF does it, but I would assume its part of the adobe code built into the plugin and not any part pf the scripting - at least, that is my takeaway. At any rate, for some reason, the period sex shader can be applied to the player's partner, but not to the body double.

Overlays are added via Papyrus.  AAF has code to copy any overlays that are on the Player onto the Doppelganger, but there is no such code for shaders.

 

For shaders, you can register for the AAF OnSceneInit event, and (actor myDoppelganger = akArgs[2] as Actor) will give you the Doppelganger.  You can then apply the shader to myDoppelganger.

Link to comment
15 minutes ago, EgoBallistic said:

Overlays are added via Papyrus.  AAF has code to copy any overlays that are on the Player onto the Doppelganger, but there is no such code for shaders.

 

For shaders, you can register for the AAF OnSceneInit event, and (actor myDoppelganger = akArgs[2] as Actor) will give you the Doppelganger.  You can then apply the shader to myDoppelganger.

Tried that, applying the shader directly on the actor called BodyDouble. Didn't work.

 

Also tried this.

 

Event AAF:AAF_API.OnSceneInit(AAF:AAF_API akSender, Var[] akArgs)
    BodyDouble = akArgs[2] as actor
    If BodyDouble == None
        bPlayerInvolved = False
    Else
        bPlayerInvolved = True
    Endif
EndEvent

 

Event AAF:AAF_API.OnAnimationStart(AAF:AAF_API akSender, Var[] akArgs)
    If bPlayerInvolved == True
        If PlayerREF.HasKeyword(RSEII_RSE_Period)
            Tags = Utility.VarToVarArray(akArgs[3]) as String[]
            bTagFound = False
            Int CheckTags = 0            
            While (CheckTags < Tags.length) && bTagFound == False
                If TagsToCheck.Find(Tags[CheckTags]) > -1
                    bTagFound = True
                Endif
                CheckTags += 1
            EndWhile
            If bTagFound == True            
                Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[]
                RSEII_RSE_DirtySexSpell.Cast(Actors[0])
                RSEII_RSE_DirtySexSpell.Cast(Actors[1])

                RSEII_RSE_DirtySexSpell.Cast(PlayerREF)
            Endif
        Endif
    Endif
EndEvent

 

But even this, it only shades the player's participant and not the bodydouble. Its the strangest thing in the world. Even if I put an explosion form right at them, only she gets painted - he stays clean. But if I put the explosion at her when the player is the Player Form and not the body double (when not animating in AAF), they both get painted. So yeah, Im confused, lol.

 

ScreenShot837.png.dca128fd6340cf9359dae2eb6359378a.png

 

But I will certainly look at overlays - was not aware these could be applied runtime via papyrus. The more you learn... thanks! :)

Link to comment

Oooooh.... "overlays.psc", it has everything needed to add overlays to the actors. Now, if only I knew how to paint overlays.

 

Hmm... wish @Polistiro was around so I could pick his brain about creating say, two overlays, that could be applied at random, to both genders genital regions, maybe with some running down the inner thigh region. Seems there are textures, BGEM files, a json file and some papyrus needed to get it to work. But how it reads the json file and all of that, Im stumpered. Guess I'll need to dive deep into the 'nets and see if there is any good information out there on setting this up.

Link to comment

i think for now, until I can figure out how to do what I want to do here, be it with magic effect hit shaders or with overlays, I am going to set this period sex function aside and get back to working on the other aspects I wanted to get in here.

 

Of note:

  • The more your pregnancy progresses, the more sleep your require. DONE
  • Finalizing late-term pregnancy cravings for sweet items to eat. DONE
  • Integrating Advanced Needs diseases, immunodeficiency, food poisoning and radiation sickness.
  • Looking into the possibility of linking CSA Abduction beatings and drug injections to potential miscarriage events.
  • Looking into the possibility of checking for LARGE creature animations (ie: deathclaws) to potentially cause a miscarriage event.
  • Looking into the possibility of checking for creature animations, in general, to cause damage to the baby in the womb, if I can pass that to FPE.

Oh... did you think there were going to be BUFFS here? Anything remotely happy? Ummm... no. ?

Link to comment

Love it, finally a bit more immersion with pregnancy than *poof* you are pregnant.  The only thing I dont like is the very drastic blood splatter <.<  I hope a way to turn that off presents itself eventually unless there is and I missed it somewhere, its late night in my neck of the woods and not up for scanning for posts about it right now.  Love the work you are doing Flashy. 

Link to comment
1 hour ago, Boceifus said:

Love it, finally a bit more immersion with pregnancy than *poof* you are pregnant.  The only thing I dont like is the very drastic blood splatter <.<  I hope a way to turn that off presents itself eventually unless there is and I missed it somewhere, its late night in my neck of the woods and not up for scanning for posts about it right now.  Love the work you are doing Flashy. 

Its not in the released build, but it is in the one I am working on. And thanks! Happy youre enjoying the newly updated RSE II mods! :)

 

UPDATE:

 

And speaking of my development build of the mod, the entire late-term cravings subsystem is completed!

  • During the 7th, 8th and 8th month of pregnancy, you might just develop cravings for something sweet.
  • There is an array of sweet items that the mod will choose from.
  • When cravings kick in, you suffer a PERCEPTION loss. 1 point @ 7 months, 2 points @ 8 months and 3 points @ 9 months.
  • The debuff NEVER stacks upon itself. It is a one-time hit, per craving attack.
  • You have a cravings stack, so at 7 months, you need to eat 1 of the chosen items. At 8, you need 2 and at 9 months, you need 3 of those items.
  • Consuming the required stack, will remove the cravings debuff, just like a hunger stack in Advanced Needs or Survival Mode.
  • Why perception, you ask? Because you are so consumed with your craving that you pay less attention to your surroundings, thats why. :)
Link to comment
4 hours ago, Flashy (JoeR) said:

               Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[]
                RSEII_RSE_DirtySexSpell.Cast(Actors[0])
                RSEII_RSE_DirtySexSpell.Cast(Actors[1])

                RSEII_RSE_DirtySexSpell.Cast(PlayerREF)

The above won't work, because the actors array contains the Player and not the Doppelganger.  Anything you want to visually do to the player in an animation has to be done to the Doppelganger.  Here's a quick example, using a vanilla blood splatter effect:

Event AAF:AAF_API.OnSceneInit(AAF:AAF_API akSender, Var[] akArgs)    
    Actor doppelganger = akArgs[2] as Actor
    Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[]
    EffectShader BloodSplatterHeavy = Game.GetFormFromFile(0x0003059B, "Fallout4.esm") as EffectShader
    
    Int i = actors.Length
    While (i)
        i -= 1
        If (actors[i] == PlayerRef)
            BloodSplatterHeavy.Play(doppelganger)
        Else
            BloodSplatterHeavy.Play(actors[i])
        EndIf
    EndWhile
EndEvent

Quick test with Cait and my character:

 

20190725025723_1.thumb.jpg.27ac6081cdbf11e463653b160f19474c.jpg

 

"But it's my birthday and I want a Blood Feast!"

 

Link to comment
10 minutes ago, EgoBallistic said:

The above won't work, because the actors array contains the Player and not the Doppelganger.  Anything you want to visually do to the player in an animation has to be done to the Doppelganger.  Here's a quick example, using a vanilla blood splatter effect:


Event AAF:AAF_API.OnSceneInit(AAF:AAF_API akSender, Var[] akArgs)    
    Actor doppelganger = akArgs[2] as Actor
    Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[]
    EffectShader BloodSplatterHeavy = Game.GetFormFromFile(0x0003059B, "Fallout4.esm") as EffectShader
    
    Int i = actors.Length
    While (i)
        i -= 1
        If (actors[i] == PlayerRef)
            BloodSplatterHeavy.Play(doppelganger)
        Else
            BloodSplatterHeavy.Play(actors[i])
        EndIf
    EndWhile
EndEvent

Quick test with Cait and my character:

 

20190725025723_1.thumb.jpg.27ac6081cdbf11e463653b160f19474c.jpg

 

"But it's my birthday and I want a Blood Feast!"

 

I dunno what I was doing wrong before with trying it on the body double, but I'll give'er another swing at the bat! Thanks!

Link to comment

@EgoBallistic - Same results.

 

However, I am coming to the conclusion that it isnt so much what I am doing, script wise, that is the problem, but that I am using a SPELL form to do it. Because, even with your example code in place, substituting your bloody splatter form for my bloody spell, I get the same results I have all night. And now I am wondering if this has something to do with the Player/Doppelganger having a cloak spell on them. Nothing else makes sense to me, when the participant can receive the spell / magic effect, but the player/doppelganger cannot. And I validated in the console that it isn't a matter of the script not seeing the BodyDouble actor too, so yeah... all I am left with is using a spell is the issue, for whatever reason.

 

ScreenShot839.png.d9c655c013e1b967954b6bdc6e911a34.pngScreenShot840.png.719621ac59bc9425688af7b1e66dc1d8.png

Link to comment

Confirmed. It is definitely the spell.

 

If I swap out the spell for the effects shader form, it works no problem, as in your example.

 

This is good info to know - spells cast on the doppelganger do not work. I wonder if it is the same with equipping an ingestible item on the doppelganger too - would certainly explain some things about Advanced Needs breaking for heavy AAF users, but not for non-AAF users. Food for thought...

 

ScreenShot842.png.70da4ba4bd26ec7a077a9f346a834bc6.png

Link to comment
46 minutes ago, Flashy (JoeR) said:

And now I am wondering if this has something to do with the Player/Doppelganger having a cloak spell on them. Nothing else makes sense to me, when the participant can receive the spell / magic effect, but the player/doppelganger cannot.

Ah.  The doppelganger is SetGhost(True) when it is created, which likely prevents the spell from having any effect on it.  Using SetGhost() was necessary because otherwise any damage-over-time effects applied to the Doppelganger (e.g. if the player is having sex while exposed to radiation) would cause a CTD when the doppelganger is deleted at the end of the scene.  So, doing SetGhost(false) is definitely not recommended.  But you should be able to apply the EffectShader itself as I did.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use