Jump to content

Recommended Posts

47 minutes ago, Agnot2014 said:

Just installed FP_SexHarassment0.3.0 and FP_Attributes1.1.0. I have been walking around for hours naked apart from boots and necklace without any approaches.

Using Unique Player Body.

I did initially get approaches with Dominant Approach and Fan Approach turned ON but with them off I get no approaches. I did force a Naked Approach in Debug and that worked fine.

Strange as Magno CUM Gaudio’s EIM function knows when I am naked and I can Toggle its response just by being naked or clothed.

I have FP Attributes Physical and Psychological wear and tear effects turned OFF.

Any help would be much appreciated.

Hmm, I actually don't know much about unique player body. I literally took flashy's code and slapped it in there lol. What's EIM function? I haven't been keeping up much with other mods. 

 

Also, by any chance did you do a clean save? Forgot to mention that but clean save is required, especially if you want unique player body naked skin to register as naked (assuming my code is correct). If you did do a clean save, then my code is probably wrong somewhere. 

Link to comment
34 minutes ago, twistedtrebla said:

Hmm, I actually don't know much about unique player body. I literally took flashy's code and slapped it in there lol. What's EIM function? I haven't been keeping up much with other mods. 

 

Also, by any chance did you do a clean save? Forgot to mention that but clean save is required, especially if you want unique player body naked skin to register as naked (assuming my code is correct). If you did do a clean save, then my code is probably wrong somewhere. 

The EIM function enables different ways of interacting with all NPCs, for instance with EIM selected and I approach an NPC I get the option to Talk or Recruit. If I do the same thing but am Naked and approach the same NPC the option will be only Talk and things are taken care of inside the Talk framework.

 

Yes definitely clean save as I removed it a couple of Months ago after we tried getting it to work before and finding out it was the Unique Player Body causing the problems.

The Unique Player Body uses only slot 33 has no clothing/armor Keywords attached.

Link to comment

Thanks for the update! These different types of approaches are fun :smile:

 

Something I noticed, though - at the bad outcome of Fan approach, only the clothes and headgear are removed before Four-play takes over. Is this intended? This looks rather odd, because when the SS gets the bad outcome, only the clothes and helmet are removed, while all the armour pieces remain equipped on her. When Four-play then takes over, all is removed, but when Four-play is completed, she is left there with all her armour pieces on her, but with no clothes and helmet.

Link to comment
3 hours ago, Tanglin said:

Thanks for the update! These different types of approaches are fun :smile:

 

Something I noticed, though - at the bad outcome of Fan approach, only the clothes and headgear are removed before Four-play takes over. Is this intended? This looks rather odd, because when the SS gets the bad outcome, only the clothes and helmet are removed, while all the armour pieces remain equipped on her. When Four-play then takes over, all is removed, but when Four-play is completed, she is left there with all her armour pieces on her, but with no clothes and helmet.

Yea that's how it's supposed to work now. I ran out of time so I just put in strip for chest and body. Actually, I intended chest and body. I guess I incorrectly did body and head lol

 

When I get time later I'll add in code to detect all worn items and remove them all for complete nakedness. 

Link to comment
1 hour ago, twistedtrebla said:

Yea that's how it's supposed to work now. I ran out of time so I just put in strip for chest and body. Actually, I intended chest and body. I guess I incorrectly did body and head lol

 

When I get time later I'll add in code to detect all worn items and remove them all for complete nakedness. 

Looking forward to it! The text says she wakes up naked, so it'll be nice to have her not have any items on. I look forward to the day when Fallout 4 animations reach the variety of Skyrim's, so that we can use animations with the "sleep" tag for this.

Link to comment

Hi!

 

Excellent mod! Could I ask for help on one part though? Since upgrading (via a clean save) to the latest version I have the MCM options for dom and fan approaches, but my game doesn’t remember the settings in there. I set both options to ‘on’ (and change the settings on chance etc) but when I leave MCM those two options turn off again.

 

Even if I set the options and immediately try to force a dom approach using the debug option it says “Dom approach is disabled, enable it first”. 

 

What am am I doing wrong please?

 

Louise x

 

 

Link to comment
47 minutes ago, LouiseH said:

Hi!

 

Excellent mod! Could I ask for help on one part though? Since upgrading (via a clean save) to the latest version I have the MCM options for dom and fan approaches, but my game doesn’t remember the settings in there. I set both options to ‘on’ (and change the settings on chance etc) but when I leave MCM those two options turn off again.

 

Even if I set the options and immediately try to force a dom approach using the debug option it says “Dom approach is disabled, enable it first”. 

 

What am am I doing wrong please?

 

Louise x

 

 

Do you use MO for installing mods? If so, someone else was having this exact problem with another mod. I don't use MO so I have no idea, but here's the post:

 

Do you use MO or NMM? If you use MO, you have to help it a little bit. I use MO, and this is how I got it to stick in my game.

Step 1:
Move the MCM folder from ModOrg 2\Fallout 4\Mods\<MCM based mod>
to
Fallout 4\ Data

Step 2:
Copy the name of the mods ESP file e.g. MCM_Demo.esp or QuickTrade.esp
Go to Fallout 4\ Data\MCM and generate a folder labeled "Settings" if needed.
Inside the Settings folder right click and make a new txt file.

If you are running Win 10, open the new txt file, choose "save as" and in the "Save as Type" drop-down box choose "All Files (*.*)", otherwise it will save it as "WhateverYouNamedIt.ini.txt"
Rename file to the name of the ESP file and change file extension to "ini" e.g. MCM_Demo.ini or QuickTrade.ini

 

 

Hope this helps.

 

EDIT: Unfortunately you have to do this with every mod that uses MCM if you run it through Mod Organizer 2. But, it lasts forever as long as mod authors don't change the name of the esp.

 
 

 
Link to comment
4 hours ago, twistedtrebla said:

Yea that's how it's supposed to work now. I ran out of time so I just put in strip for chest and body. Actually, I intended chest and body. I guess I incorrectly did body and head lol

 

When I get time later I'll add in code to detect all worn items and remove them all for complete nakedness. 

To undress the player completely via papyrus, use this:

 

//Script Property

 

Form[] EquippedArmor

Bool Undressing = False

 

 

//Functions to call to undress and then redress the player in exactly what was removed, via the EquippedArmor Form array.

 

Event OnItemUnequipped(Form akBaseObject, ObjectReference akReference)
    If Undressing == True
        If (akBaseObject != RSE_NakedSkin as Form)
            If (akReference)
                EquippedArmor.add(akReference as Form, 1)
            Else
                EquippedArmor.add(akBaseObject, 1)
            EndIf
        EndIf
    Endif
EndEvent

 

Function Undress()
    Undressing = True
    EquippedArmor = new Form[0]
        int I = 0
        int scanEnd = 29
        While (I <= scanEnd)
            PlayerREF.unequipItemSlot(I)
            Utility.Wait(0.04)
            I += 1
        EndWhile
    Utility.Wait(0.5)
    Undressing = False
EndFunction


Function Redress()
    int I = 0
    While (I < EquippedArmor.length)
        Utility.wait(0.5)
        PlayerREF.equipItem(EquippedArmor, False, True)
        I += 1
    EndWhile
EndFunction

 

This ALL needs to go into your script PRECISELY as added here. Mind you, this only accounts for the vanilla nakedskin body. If you want to add the Unique Player stuff, you do what I showed earlier to import the forms and then for the OnItemUnquipped event, the line that reads:

 

If (akBaseObject != RSE_NakedSkin as Form)

 

Changes to:

 

If (akBaseObject != RSE_NakedSkin as Form) && (akBaseObject !=PlayerNakedSkin as Form) // where PlayerNakedSkin is the armor form you named on GetFormFromFile

 

How it works is this:

  1. You determine that you want to strip the player and then call Undress().
  2. As each item is removed by the While/Endwhile loop, the OnItemRemoved Event catches it and adds it to the EquippedItem array.
  3. Unless it equals the naked skin form, in which case it is ignored, not added to the array and it goes back to waiting for the next item.
  4. And then, once the player is naked, you do your thing... whatever it is.
  5. When you are ready for them to be dressed, you call Redress(). Nothing simpler.

Now, if you are waiting on the player to remove their clothing and get naked, that is a whole other can of worms. But I think the slot 33 and slot 41 approach previously given is the best bet - clothing and torso armor. Once that is off, the best bits of the female and male body are showing, so...

 

EDIT: This strips everything from biped index 0 to 29 (slots 30 - 59), so it EXCLULDES the pipboy - it will stay on - actually, slots 60 and 61 will remain.

Link to comment
8 minutes ago, twistedtrebla said:

Do you use MO for installing mods? If so, someone else was having this exact problem with another mod. I don't use MO so I have no idea, but here's the post:

 

Do you use MO or NMM? If you use MO, you have to help it a little bit. I use MO, and this is how I got it to stick in my game.

Step 1:
Move the MCM folder from ModOrg 2\Fallout 4\Mods\<MCM based mod>
to
Fallout 4\ Data

Step 2:
Copy the name of the mods ESP file e.g. MCM_Demo.esp or QuickTrade.esp
Go to Fallout 4\ Data\MCM and generate a folder labeled "Settings" if needed.
Inside the Settings folder right click and make a new txt file.

If you are running Win 10, open the new txt file, choose "save as" and in the "Save as Type" drop-down box choose "All Files (*.*)", otherwise it will save it as "WhateverYouNamedIt.ini.txt"
Rename file to the name of the ESP file and change file extension to "ini" e.g. MCM_Demo.ini or QuickTrade.ini

 

 

Hope this helps.

 

EDIT: Unfortunately you have to do this with every mod that uses MCM if you run it through Mod Organizer 2. But, it lasts forever as long as mod authors don't change the name of the esp.

 
 

 

Unfortunately, I use NMM. It’s a baffling problem, especially since the harasser part of the mod works perfectly! Ah well, I’ll continue to play around with it. Thank you anyway-I do hope you have the time to continue modding, really enjoy your work. 

 

Louise x

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

To undress the player completely via papyrus, use this:

 

//Script Property

 

Form[] EquippedArmor

 

 

//Functions to call to undress and then redress the player in exactly what was removed, via the EquippedArmor Form array.

 

Event OnItemUnequipped(Form akBaseObject, ObjectReference akReference)
    If Undressing == True
        If (akBaseObject != RSE_NakedSkin as Form)
            If (akReference)
                EquippedArmor.add(akReference as Form, 1)
            Else
                EquippedArmor.add(akBaseObject, 1)
            EndIf
        EndIf
    Endif
EndEvent

 

Function Undress()
    Undressing = True
    EquippedArmor = new Form[0]
        int I = 0
        int scanEnd = 29
        While (I <= scanEnd)
            PlayerREF.unequipItemSlot(I)
            Utility.Wait(0.04)
            I += 1
        EndWhile
    Utility.Wait(0.5)
    Undressing = False
EndFunction


Function Redress()
    int I = 0
    While (I < EquippedArmor.length)
        Utility.wait(0.5)
        PlayerREF.equipItem(EquippedArmor, False, True)
        I += 1
    EndWhile
EndFunction

 

This ALL needs to go into your script PRECISELY as added here. Mind you, this only accounts for the vanilla nakedskin body. If you want to add the Unique Player stuff, you do what I showed earlier to import the forms and then for the OnItemUnquipped event, the line that reads:

 

If (akBaseObject != RSE_NakedSkin as Form)

 

Changes to:

 

If (akBaseObject != RSE_NakedSkin as Form) || (akBaseObject !=PlayerNakedSkin as Form) // where PlayerNakedSkin is the armor form you named on GetFormFromFile

 

How it works is this:

  1. You determine that you want to strip the player and then call Undress().

As each item is removed by the While/Endwhile loop, the OnItemRemoved Event catches it and adds it to the EquippedItem array. Unless it equals the naked skin form, in which case it is ignored, not added to the array and it goes back to waiting for the next item. And then, once the player is naked, you do your thing... whatever it is. When you are ready for them to be dresses, you simply call Redress(). Nothing simpler.

Now, if you are waiting on the player to remove their clothing and get naked, that is a whole other can of worms. But I think the slot 33 and slot 41 approach previously given is the best bet - clothing and torso armor. Once that is off, the best bits of the female and male body are showing, so...

 

 

Thanks Flashy! Always appreciate it. 

 

From a programming perspective, wouldn't it be better though to get rid of the itemunequip event listener and instead, add an if statement inside the while loop of unequip function, right before unequipitemslot call, where it checks the worn item using F4SE's getwornitem function and adding it to the array there? It seems more efficient to me than registering a new listener that gets invoked every time an item is unequipped.

 

Also, I think I vaguely remember some function you can call to get all worn items. I remember seeing it while I was browsing thru fourplay's source code (I think that's how fourplay strips everything). I couldn't remember it on top of my head, so I didn't implement it. But I'm probably going to use that method instead if brute force unequipping every item slot. But if I can't find it, I might just say eff it and use your brute force method lol

Link to comment

bool function strip_actor_f4se(actor a)
    int idx
    form f
    armor arm
    weapon wpn

    ;;Debug.;trace("4Play: ********************************************")
    ;;Debug.;trace("4Play: strip_actor_f4se called on "+a+"!")
    ;;Debug.;trace("4Play: ********************************************")

    if a == none
        return false
    endif
    idx = actor_list.findStruct("a", a)
    if idx == -1
        ;;Debug.;trace("4Play: strip_actor_f4se actor not in actor_data!")
        return false
    endif
    actordata ad = actor_list[idx]

    form[] items = ad.data.items
    Actor:wornitem wi
    idx = 0
    while idx < 44
        ;;;Debug.;trace("4Play: strip_actor_f4se getting worn item: idx = " + idx)
        wi = a.getwornitem(idx, false)

        ;so: If there's info about the slot
         ;and if that info has an item associated with it
         ;and if we don't already have the item in the list

        ;then we unequip and add it. We need the last test
        ;or else we get errors for trying to unequip things
        ;that aint 'quipped.

        if wi && wi.item && items.find(wi.item) == -1
            f = wi.item

            if (f as armor) == none && (f as weapon) == none
                ;;Debug.;trace("4Play: strip_actor_f4se: form " + f + " is not a weapon or armor - skipping")
            elseif f == vanilla_skin || f == raider_skin
                ;;Debug.;trace("4Play: strip_actor_f4se: form " + f + " is skin - skipping")
            elseif f.hasKeyword(no_strip)
                ;;Debug.;trace("4Play: strip_actor_f4se: form " + f + " has no_strip keyword - skipping")
            elseif DDRender && f.hasKeyword(DDRender)
                ;;Debug.;trace("4Play: strip_actor_f4se: form " + f + " is DD Render item - skipping")
            else
                ;;Debug.;trace("4Play: strip_actor_f4se form = " + f)
                a.unequipitem(f, false, true)
                items.add(f)
            endif
        endif
        idx += 1
    endwhile
    return true
endfunction

 

bool function dress_actor_f4se(actordata ad)
    if ad == none
        return none
    endif
    actor a = ad.a
    ;;Debug.;trace("4Play: ********************************************")
    ;;Debug.;trace("4Play: dress_actor_f4se called!")
    ;;Debug.;trace("4Play: ********************************************")

    form[] items = ad.data.items
    int lim = items.length
    ;;Debug.;trace("4Play: "+lim+" items to restore")
    
    If ad.strapon && ad.straponMode > 1 && a.getItemCount(ad.strapon) > 0
        ;ntrace("unequipping strapon on actor " + a)
        a.unequipitem(ad.strapon, false, true)
        Utility.Wait(0.1)
        if ad.straponMode == 3
            ;ntrace("removing strapon on actor " + a)
            a.removeitem(ad.strapon, 1, true)
        endIf
    elseif strapon && a.getItemCount(strapon) > 0
        ;ntrace("removing strapon on actor " + a)
        a.removeitem(strapon)
    Endif
;
;    iterate over the items equipping them
;
    int idx = 0
    while idx < lim
        form f = items[idx]
        ;;Debug.;trace("4Play: equipping item " + f)
        a.equipitem(f, false, true)
        Utility.Wait(0.1)    ;    I have one case of actor not equipping something
        idx += 1
    endwhile
    return true
endfunction

 

Its kind of messy, but Im sure you can prune it down to what you need...

Link to comment
4 minutes ago, twistedtrebla said:

Thanks Flashy! Always appreciate it. 

 

From a programming perspective, wouldn't it be better though to get rid of the itemunequip event listener and instead, add an if statement inside the while loop of unequip function, right before unequipitemslot call, where it checks the worn item using F4SE's getwornitem function and adding it to the array there? It seems more efficient to me than registering a new listener that gets invoked every time an item is unequipped.

 

Also, I think I vaguely remember some function you can call to get all worn items. I remember seeing it while I was browsing thru fourplay's source code (I think that's how fourplay strips everything). I couldn't remember it on top of my head, so I didn't implement it. But I'm probably going to use that method instead if brute force unequipping every item slot. But if I can't find it, I might just say eff it and use your brute force method lol

I dont know about a 'get all worn items' command, though I do know of the unequipall() which you never want to use! It removes the pipboy! :confused:

Link to comment
7 minutes ago, LouiseH said:

Unfortunately, I use NMM. It’s a baffling problem, especially since the harasser part of the mod works perfectly! Ah well, I’ll continue to play around with it. Thank you anyway-I do hope you have the time to continue modding, really enjoy your work. 

 

Louise x

Yea that's strange. It ls fine for me and others, so it seems like an installation issue. Or maybe some issue with mcm? 

 

For the time being, you can use console commands to set things. Use the following commands:

Help fpsh_setting 3

This will list all settings variable that the mod uses. Once you find something you want to change, type this:

Set <setting> to x

Where x is the number you want to set to. So let's say you want to enable dom approaches. You'd type this:

Set fpsh_setting_domapproachenabled to 1

Or say you want to change dom approach chance to 20%:

Set fpsh_setting_domapproachchance to 20

 

Any settings you change via console commands will stick and remain unchanged, until you change them again via console commands or via mcm menu

Link to comment
29 minutes ago, twistedtrebla said:

Yea that's strange. It ls fine for me and others, so it seems like an installation issue. Or maybe some issue with mcm? 

 

For the time being, you can use console commands to set things. Use the following commands:

Help fpsh_setting 3

This will list all settings variable that the mod uses. Once you find something you want to change, type this:

Set <setting> to x

Where x is the number you want to set to. So let's say you want to enable dom approaches. You'd type this:

Set fpsh_setting_domapproachenabled to 1

Or say you want to change dom approach chance to 20%:

Set fpsh_setting_domapproachchance to 20

 

Any settings you change via console commands will stick and remain unchanged, until you change them again via console commands or via mcm menu

That’s great, thanks! I’ll try that out later. 

 

Louise x

Link to comment
20 hours ago, Agnot2014 said:
  21 hours ago, twistedtrebla said:

Hmm, I actually don't know much about unique player body. I literally took flashy's code and slapped it in there lol. What's EIM function? I haven't been keeping up much with other mods. 

 

Also, by any chance did you do a clean save? Forgot to mention that but clean save is required, especially if you want unique player body naked skin to register as naked (assuming my code is correct). If you did do a clean save, then my code is probably wrong somewhere. 

20 hours ago, Agnot2014 said:

The EIM function enables different ways of interacting with all NPCs, for instance with EIM selected and I approach an NPC I get the option to Talk or Recruit. If I do the same thing but am Naked and approach the same NPC the option will be only Talk and things are taken care of inside the Talk framework.

 

Yes definitely clean save as I removed it a couple of Months ago after we tried getting it to work before and finding out it was the Unique Player Body causing the problems.

The Unique Player Body uses only slot 33 has no clothing/armor Keywords attached.

Are we saying that this isn’t compatible with Unique Player Body? Or will there be an update in the near future do you think, just asking if I should remove Harassment again and hope for a fix later perhaps.

 

Link to comment
19 minutes ago, Agnot2014 said:

Are we saying that this isn’t compatible with Unique Player Body? Or will there be an update in the near future do you think, just asking if I should remove Harassment again and hope for a fix later perhaps.

 

I looked at the code and it looks right. So at this time I can't pinpoint why it's not working. I would have to install unique player mod myself and debug it, which would take some time that I currently unfortunately don't have. It's been weeks since I've even played FO4 myself (I really need to try RSE's new features! Heck I need to enjoy my own mod!!) . My life... 

If you have scripting experience (or want to learn), feel free to look at the code and tweak things. All my source code is included. 

 

So unfortunately at this time, I suppose naked approaches is incompatible with unique player mod. 

Link to comment
15 minutes ago, twistedtrebla said:

I looked at the code and it looks right. So at this time I can't pinpoint why it's not working. I would have to install unique player mod myself and debug it, which would take some time that I currently unfortunately don't have. It's been weeks since I've even played FO4 myself (I really need to try RSE's new features! Heck I need to enjoy my own mod!!) . My life... 

If you have scripting experience (or want to learn), feel free to look at the code and tweak things. All my source code is included. 

 

So unfortunately at this time, I suppose naked approaches is incompatible with unique player mod. 

I thank you for your reply and candour, I just didn’t want to use up slots with mods I can’t use.

I will remove FP_SexHarassment and FP_Attributes for now. I will of course inform you if I find a solution.

I think what you are doing is fantastic, I wish that I had the skills and patience, and I thank you for your efforts.

Link to comment

This latest version was installed on my latest run of the game, so it's a first install. I tested the right hand side dialogue option after the Harasser successfully persuaded my SS, and the bug where the Harasser would walk away without starting FP animations is still there. 

Link to comment
31 minutes ago, Tanglin said:

This latest version was installed on my latest run of the game, so it's a first install. I tested the right hand side dialogue option after the Harasser successfully persuaded my SS, and the bug where the Harasser would walk away without starting FP animations is still there. 

Those damn dialogue scripts... Thanks for reporting that. 

Link to comment

Found something:

 

When I turned off Naked approaches, neither Dom nor Fan approaches happened, even though I set them to be very likely, after waiting for quite a while. The moment I turned Naked approaches back on, those other two resumed. Is this intended?

Link to comment
8 hours ago, Tanglin said:

Found something:

 

When I turned off Naked approaches, neither Dom nor Fan approaches happened, even though I set them to be very likely, after waiting for quite a while. The moment I turned Naked approaches back on, those other two resumed. Is this intended?

Hmm no that's not intended. I'll take a look

Link to comment

Great mod. Any plans on eventually having female harassers, preferably an option to toggle which gender i'd lake to harass me depending on what gender character i'm using would be sick.

 

The mod is working great on my main character. However on my alt character it all of a sudden stopped working a while back and no one will approach me unless I use the debug to force it.

Link to comment
16 minutes ago, Im_The_Real_Deal said:

Great mod. Any plans on eventually having female harassers, preferably an option to toggle which gender i'd lake to harass me depending on what gender character i'm using would be sick.

 

The mod is working great on my main character. However on my alt character it all of a sudden stopped working a while back and no one will approach me unless I use the debug to force it.

There were issues with previous versions where harassers would stop being assigned. Is this with latest version, 0.3.0?

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