Jump to content

Recommended Posts

Posted
21 hours ago, Person1 said:

Im using Fallsouls XD fuck sake 

Ok i upload DD_Restraintsscript.psc

You need it put into D:\Games\Fallout 4\Data\Scripts\Source\User\DD or in your mods folder if you use MO2 and compile in CK or other compilator. Also compiled script file must be put in MO2 script folder.

 

If anyone compile script for you then you need put DD_restraintscript.pex into D:\Games\Fallout 4\Data\Scripts\DD fif you don't use MO2. Wit°th it you must put this pex into MO2 script folder.

 

What there is changed:

1)

Original:

Spoiler

Event OnEquipped(Actor akActor)
    ; This function is not getting called when the item is equipped via scripting. Silly Bethesda!
    If akActor != Libs.Player && !libs.bProcessing
        If (IsEquipDeviceConflict(akActor) || IsEquipRequiredDeviceConflict(akActor) || (libs.IsWearingDevice(akActor, RenderedDevice, DeviceKeyword) > 0))
            akActor.UnEquipItem(InventoryDevice)
        Else
            libs.EquipDevice(akActor, InventoryDevice, RenderedDevice)
            ; we force the NPC inventory to update...
            akActor.AddItem(libs.BobbyPin, 1)
            akActor.RemoveItem(libs.BobbyPin, 1)
        EndIf
        return
    EndIf
    Bool Silent = !Utility.IsInMenuMode()
    ; check if this device is already worn
    if !akActor.IsEquipped(RenderedDevice)
        If !Silent ; let's see if its being equipped voluntarily
            ; check for device conflicts
            If (IsEquipDeviceConflict(akActor) || IsEquipRequiredDeviceConflict(akActor))
                akActor.UnequipItem(InventoryDevice, false, true)
                return
            EndIf
            if !libs.bProcessing
                DisplayMessage()
            endif
        EndIf
    Endif
EndEvent

Changed:

Spoiler

Event OnEquipped(Actor akActor)
    ; This function is not getting called when the item is equipped via scripting. Silly Bethesda!
    If akActor != Libs.Player && !libs.bProcessing
        If (IsEquipDeviceConflict(akActor) || IsEquipRequiredDeviceConflict(akActor) || (libs.IsWearingDevice(akActor, RenderedDevice, DeviceKeyword) > 0))
            akActor.UnEquipItem(InventoryDevice)
        Else
            libs.EquipDevice(akActor, InventoryDevice, RenderedDevice)
            ; we force the NPC inventory to update...
            akActor.AddItem(libs.BobbyPin, 1)
            akActor.RemoveItem(libs.BobbyPin, 1)
        EndIf
        return
    EndIf
    Bool Silent = !UI.IsMenuOpen("ContainerMenu") || !UI.IsMenuOpen("PipboyMenu")
    ; check if this device is already worn
    if !akActor.IsEquipped(RenderedDevice)
        If !Silent ; let's see if its being equipped voluntarily
            ; check for device conflicts
            If (IsEquipDeviceConflict(akActor) || IsEquipRequiredDeviceConflict(akActor))
                akActor.UnequipItem(InventoryDevice, false, true)
                return
            EndIf
            if !libs.bProcessing
                DisplayMessage()
            endif
        EndIf
    Endif
EndEvent

 

2)

Original

Spoiler

Event OnUnequipped(Actor akActor)
    if libs.bProcessing
        Return
    endif
    If akActor != Libs.Player
    ; the actor in question is not the player.
        if !utility.IsInMenuMode()
        ; the player is not currently in menu mode, thus not in the actor inventory.
            if akActor.IsEquipped(RenderedDevice)
                if !libs.removaltoken
                    ; the actor is not permitted to remove the device!
                    akActor.EquipItem(InventoryDevice)
                Else
                    ; everything is in order - remove the device!
                    RemoveDevice(akActor)
                    OnItemUnequipped(akActor)
                    libs.removaltoken = False
                EndIf        
            EndIf
        Else
            if (!DeviceKey || libs.Player.GetItemCount(DeviceKey) >= NumberOfKeysNeeded) || akActor.IsDead()
                ; the device doesn't need keys or the player has keys - removing the device!
                If !IsUnEquipDeviceConflict(akActor)
                    libs.notify("You unlock the " + DeviceName)
                    libs.RemoveDevice(akActor, InventoryDevice, RenderedDevice)
                    if akActor != libs.Player
                        akActor.AddItem(libs.dummyArmor, 1)
                        akActor.AddItem(libs.BobbyPin, 1)
                        akActor.EquipItem(libs.dummyArmor)
                        akActor.RemoveItem(libs.BobbyPin, 1)
                        utility.wait(0.1)
                        akActor.RemoveItem(libs.dummyArmor, 1)
                        libs.Player.RemoveItem(libs.dummyArmor, 1, true)
                    endif
                    return
                EndIf
            else
            ; the player doesn't have the key and the device can't be unlocked
                libs.Notify("You lack the key to unlock " + DeviceName)
                libs.bProcessing = true
                utility.waitMenuMode(0.1)
                if akActor.GetItemCount(InventoryDevice) == 0 && libs.Player.GetItemCount(InventoryDevice) > 0
                ; the player removed a locked device - it needs to be added.
                ; the cringy implementation below is to work around a nasty glitch in f4's engine.
                ; it's not great, but it's the best i got.
                    libs.player.RemoveItem(InventoryDevice, 1, true, akActor)
                    akActor.EquipItem(InventoryDevice)
                    akActor.AddItem(libs.dummyArmor, 1)
                    akActor.AddItem(libs.BobbyPin, 1)
                    akActor.EquipItem(libs.dummyArmor)
                    akActor.RemoveItem(libs.BobbyPin, 1)
                    utility.wait(0.1)
                    akActor.RemoveItem(libs.dummyArmor, 1)
                    libs.Player.RemoveItem(libs.dummyArmor, 1, true)
                    libs.bProcessing = False
                    return
                endif
                ; the player just unequipped a locked device - we're reequipping it!
                akActor.EquipItem(InventoryDevice)
                ; we add and remove a bobby pin to force the actor inventory to update.
                akActor.AddItem(libs.BobbyPin, 1)
                akActor.RemoveItem(libs.BobbyPin, 1)
                libs.bProcessing = false
                return
            EndIf
        endif
        return
    EndIf
    ; can unequip only if the item is actually worn:
    if akActor.IsEquipped(RenderedDevice)
        if libs.removaltoken && akActor != libs.Player
            RemoveDevice(akActor)
            OnItemUnequipped(akActor)
            libs.removaltoken = False
        Else
            ;reequip
            akActor.equipitem(InventoryDevice, False, True)
            If Utility.IsInMenuMode()
                DisplayMessage()
            EndIf            
        EndIf
    EndIf
EndEvent

 

Changed:

Spoiler

Event OnUnequipped(Actor akActor)
    if libs.bProcessing
        Return
    endif
    If akActor != Libs.Player
    ; the actor in question is not the player.
        if !UI.IsMenuOpen("PipboyMenu") || !UI.IsMenuOpen("ContainerMenu")
        ; the player is not currently in menu mode, thus not in the actor inventory.
            if akActor.IsEquipped(RenderedDevice)
                if !libs.removaltoken
                    ; the actor is not permitted to remove the device!
                    akActor.EquipItem(InventoryDevice)
                Else
                    ; everything is in order - remove the device!
                    RemoveDevice(akActor)
                    OnItemUnequipped(akActor)
                    libs.removaltoken = False
                EndIf        
            EndIf
        Else
            if (!DeviceKey || libs.Player.GetItemCount(DeviceKey) >= NumberOfKeysNeeded) || akActor.IsDead()
                ; the device doesn't need keys or the player has keys - removing the device!
                If !IsUnEquipDeviceConflict(akActor)
                    libs.notify("You unlock the " + DeviceName)
                    libs.RemoveDevice(akActor, InventoryDevice, RenderedDevice)
                    if akActor != libs.Player
                        akActor.AddItem(libs.dummyArmor, 1)
                        akActor.AddItem(libs.BobbyPin, 1)
                        akActor.EquipItem(libs.dummyArmor)
                        akActor.RemoveItem(libs.BobbyPin, 1)
                        utility.wait(0.1)
                        akActor.RemoveItem(libs.dummyArmor, 1)
                        libs.Player.RemoveItem(libs.dummyArmor, 1, true)
                    endif
                    return
                EndIf
            else
            ; the player doesn't have the key and the device can't be unlocked
                libs.Notify("You lack the key to unlock " + DeviceName)
                libs.bProcessing = true
                utility.waitMenuMode(0.1)
                if akActor.GetItemCount(InventoryDevice) == 0 && libs.Player.GetItemCount(InventoryDevice) > 0
                ; the player removed a locked device - it needs to be added.
                ; the cringy implementation below is to work around a nasty glitch in f4's engine.
                ; it's not great, but it's the best i got.
                    libs.player.RemoveItem(InventoryDevice, 1, true, akActor)
                    akActor.EquipItem(InventoryDevice)
                    akActor.AddItem(libs.dummyArmor, 1)
                    akActor.AddItem(libs.BobbyPin, 1)
                    akActor.EquipItem(libs.dummyArmor)
                    akActor.RemoveItem(libs.BobbyPin, 1)
                    utility.wait(0.1)
                    akActor.RemoveItem(libs.dummyArmor, 1)
                    libs.Player.RemoveItem(libs.dummyArmor, 1, true)
                    libs.bProcessing = False
                    return
                endif
                ; the player just unequipped a locked device - we're reequipping it!
                akActor.EquipItem(InventoryDevice)
                ; we add and remove a bobby pin to force the actor inventory to update.
                akActor.AddItem(libs.BobbyPin, 1)
                akActor.RemoveItem(libs.BobbyPin, 1)
                libs.bProcessing = false
                return
            EndIf
        endif
        return
    EndIf
    ; can unequip only if the item is actually worn:
    if akActor.IsEquipped(RenderedDevice)
        if libs.removaltoken && akActor != libs.Player
            RemoveDevice(akActor)
            OnItemUnequipped(akActor)
            libs.removaltoken = False
        Else
            ;reequip
            akActor.equipitem(InventoryDevice, False, True)
            If UI.IsMenuOpen("PipboyMenu")
                DisplayMessage()
            EndIf            
        EndIf
    EndIf
EndEvent

 

Also @EgoBallistic here is question. I'm not strong with complicate compare functions this line will work correct?

 

Bool Silent = !UI.IsMenuOpen("ContainerMenu") || !UI.IsMenuOpen("PipboyMenu")

 

Silent got false if player is in NPC or pipboy?

 

If not maybe you have idea how to write it?

And maybe you can compile this script and publish?

 

I can't because i have heavy modified DD scripts (fixed bugs and add new content) If i compile myself it will end with broken DD for you.

DD_RestraintScript.psc

Posted (edited)

@Elsidia

Compiled. If the code is wrong, I'll delete this and compile your corrected one... when you post it. ;)

 

 

Edited by izzyknows
Posted
10 minutes ago, izzyknows said:

I'll delete this and compile your corrected one... when you post it.

Then need to wait answer from @Person1 and EgoBallistic, if code is right and Fallsouls work with DD)

 

Posted (edited)
57 minutes ago, Elsidia said:

Bool Silent = !UI.IsMenuOpen("ContainerMenu") || !UI.IsMenuOpen("PipboyMenu")

 

Not quite.  Silent should only be true if neither menu is open.  So you need this:

 

Bool Silent = !(UI.IsMenuOpen("ContainerMenu") || UI.IsMenuOpen("PipboyMenu"))

 

or this, which is the same thing logically:

 

Bool Silent = !UI.IsMenuOpen("ContainerMenu") && !UI.IsMenuOpen("PipboyMenu")

 

To keep it simple, just replace this

 

Utility.IsInMenuMode()

 

with

 

(UI.IsMenuOpen("ContainerMenu") || UI.IsMenuOpen("PipboyMenu"))

 

then, if there is a ! in front of it, it will still work as intended.

 

Edited by EgoBallistic
Posted
3 hours ago, EgoBallistic said:

then, if there is a ! in front of it, it will still work as intended.

I'm curious why mod author use this expression bool silent=!Util.isInMenuMode() if in next line it's convert it back: If !Silent ......

 

In other places i not put other check because there is check only for player (that means it works only if in pipboy for equip unequip.)

 

But thanks for fixing scripts.

Posted (edited)

Is there a way to change the frequency of stimulation events from plug and vibrator? Right now, it seems to be pretty much constantly happening. It would be nice to have it happen every 5 minutes or so, but listening to an endless loop of moans gets pretty annoying.

Also I can not seem to get nipple vice and clamp mesh to fit correctly? All items look correct but the nipple things equip above the nipples, even though I've built them like everything else in BodySlide. I use CBBE Curvy

Edited by gadgetzan
addition
Posted
47 minutes ago, gadgetzan said:

Also I can not seem to get nipple vice and clamp mesh to fit correctly? All items look correct but the nipple things equip above the nipples, even though I've built them like everything else in BodySlide. I use CBBE Curvy

 

Make sure you're building them with the exact same preset - don't build the clamps with the "CBBE Curvy (Outfit)" preset if your body is built with "CBBE Curvy".

Posted
2 hours ago, gadgetzan said:

Is there a way to change the frequency of stimulation events from plug and vibrator? Right now, it seems to be pretty much constantly happening. It would be nice to have it happen every 5 minutes or so, but listening to an endless loop of moans gets pretty annoying.

 

For that, it looks like you'll need to edit the constants at the top of DD_Event_Vibrate.psc and recompile it with PapyrusCompiler from the FO4CK.

Posted
1 hour ago, EgoBallistic said:

 

Make sure you're building them with the exact same preset - don't build the clamps with the "CBBE Curvy (Outfit)" preset if your body is built with "CBBE Curvy".

I'm building them like you say, which is why I'm surprised it's not working. Seems to only be nipple-related things, everything else from the mod fits just fine.

30 minutes ago, vaultbait said:

 

For that, it looks like you'll need to edit the constants at the top of DD_Event_Vibrate.psc and recompile it with PapyrusCompiler from the FO4CK.

Okay that's a bit above my level, but thanks for the reply.

Posted (edited)
8 hours ago, gadgetzan said:

Is there a way to change the frequency of stimulation events from plug and vibrator?

At this moment the only way - alter script DD_Event_Vibrate.psc and recompile.

Set MinimumCooldown and MaximumCooldown to desired values. In seconds.

They are marked as const, so after game loading new values will be used, not previously saved values.

Edited by Dlinny_Lag
Posted
6 hours ago, gadgetzan said:

 

Okay that's a bit above my level, but thanks for the reply.

 

The default range is between 15 seconds and 120 seconds real time which IMO is far to low, as you point out it's almost continuously firing.

 

I have mine set between 300 and 1800 (5 - 30 minutes). PM me if you want a copy

Posted
On 7/30/2021 at 2:01 PM, Elsidia said:

I'm curious why mod author use this expression bool silent=!Util.isInMenuMode() if in next line it's convert it back: If !Silent ......

 

In other places i not put other check because there is check only for player (that means it works only if in pipboy for equip unequip.)

 

But thanks for fixing scripts.

 

Yeah I noticed that too, about the odd logic.  But that's just Kimy's coding style.

 

The question I have is: did this fix the problem?

Posted
21 hours ago, gadgetzan said:

I use CBBE Curvy

Some presets isn't available for items because it's use default preset - you need add this preset to nipple clamps if it doesn't and then build clamps. Or in other way it's build clamps in wrong place

Posted
12 hours ago, EgoBallistic said:

But that's just Kimy's coding style.

 

The question I have is: did this fix the problem?

In first post is mentioned that ag12 user helps with script. Maybe this is him style to code. Also this user made F4SS mod and uses DD bug in own mode to force it works as it wants) maybe both codes is by ag12)

About that if it help you need ask @Person1, because it's uses Fallsouls. i don't have this mod. In other way i will be test it by myself and compile new scripts.

 

My Fallout 4 looks like cards house: just pull out one or add one more and house fall off and breaks.

That means if i install or remove some mod it ends with instant CTD. I don't touch while it works)

 

Posted (edited)

I have been testing mods a lot over the last few weeks to see what I want out of my next playthrough, and I discovered earlier that I have a problem with DD gloves. When equipped my fingers are kind of long, and curled. It also absolutely wrecks my body texture. I thought at first maybe it is because I have installed, and uninstalled so much stuff. So I did a clean install with only the minimal mods installed for DD. By that I mean I Installed 1-7, 9 from AAF Fucking Manual, DD's dependencies, and DD. I also manually installed:

 

I built morphs went into the game, and consoled in Leather Restrictive Gloves. I still have the same hand problems. So then I decided I would try this:

 

It didn't fix the problem .I have been reading daily on the forums for 3 weeks, or so now. It seems to me that I seen another hand fix that is specifically for DD, but for the life of me I cannot find it. I have read so much stuff lately that it is all starting to run together lol. Anyway does anyone know if there is a patch for this, or how I can fix it? Any help is greatly appreciated.

Edited by blastikor
Posted
4 hours ago, blastikor said:

Anyway does anyone know if there is a patch for this, or how I can fix it? Any help is greatly appreciated.

I use this and there i not see problems with gloves. But if you want use your conversion, you need load a gloves into outfit studio and fix weight for it.

seems problem is in wrong fingers weights.

 

 

Posted
4 hours ago, Elsidia said:

I use this and there i not see problems with gloves. But if you want use your conversion, you need load a gloves into outfit studio and fix weight for it.

seems problem is in wrong fingers weights.

 

Unfortunately, that one's built for FG 1.45 and hasn't been officially updated. I've converted the items I care about to work with FG >=1.75, but it would be great if the author revisited it at some point since it's a really good conversion otherwise.

Posted
21 minutes ago, vaultbait said:

Unfortunately, that one's built for FG 1.45 and hasn't been officially updated. I've converted the items I care about to work with FG >=1.75, b

What is changes between FG 1.45 and 1.75? More bones? I think fingers is last thing what can be updated and maybe from this conversion version can take off gloves and put into version 1.75?

My Fallout 4 is outdated and I'm not plan to change it.

 

Posted
6 hours ago, Elsidia said:

I use this and there i not see problems with gloves. But if you want use your conversion, you need load a gloves into outfit studio and fix weight for it.

seems problem is in wrong fingers weights.

 

 

 

I found a tutorial over on nexus for converting. I might give it a go. I'll just need to look, and see how many sets of gloves will need to be converted. For now I suppose I'll just build everything in DD except gloves. Depending on clipping I may attempt conversion soon. Thanks for the reply.

Posted
1 hour ago, Elsidia said:

What is changes between FG 1.45 and 1.75? More bones? I think fingers is last thing what can be updated and maybe from this conversion version can take off gloves and put into version 1.75?

My Fallout 4 is outdated and I'm not plan to change it.

 

 

Some bones were replaced, others added (particularly physics bones). The updating process is fairly straightforward: replace the reference body, delete the obsolete bones, copy weights from the new bones, redo any body zaps as needed. For the visually inclined, TBOS did a video walkthrough of the process when 1.75 was released, and pinned it on the ZeX Discord. For items with no body zaps to worry about, it's only a few minutes each. If you need to re-add body zaps, a few more minutes depending on how accurate you are painting on the vertex masks.

Posted
7 minutes ago, blastikor said:

I found a tutorial over on nexus for converting. I might give it a go. I'll just need to look, and see how many sets of gloves will need to be converted. For now I suppose I'll just build everything in DD except gloves. Depending on clipping I may attempt conversion soon. Thanks for the reply.

 

There are a few. The most comprehensive and up to date one is Graf's Guide to Fallout 4 Outfit Conversions which goes into lots of detail and has plenty of screenshots and diagrams.

 

But if all you want to do is update an existing FG 1.45 or 1.61 conversion to 1.75+ the process is much quicker and less error-prone than converting from scratch.

 

Also, the process for converting gloves is a bit fiddly, but I had to figure it out recently for some conversions I'm working through for Barbarous Continent, and received some great advice in the FG Conversions thread:

 

Posted
14 minutes ago, vaultbait said:

 

There are a few. The most comprehensive and up to date one is Graf's Guide to Fallout 4 Outfit Conversions which goes into lots of detail and has plenty of screenshots and diagrams.

 

But if all you want to do is update an existing FG 1.45 or 1.61 conversion to 1.75+ the process is much quicker and less error-prone than converting from scratch.

 

Also, the process for converting gloves is a bit fiddly, but I had to figure it out recently for some conversions I'm working through for Barbarous Continent, and received some great advice in the FG Conversions thread:

 

 

Thanks for this. I'll be sure to check it out. I've been out of the modding scene for a long time. I'm sure these guides/information will prove to be very valuable.

Posted
32 minutes ago, vaultbait said:

The updating process is fairly straightforward

I know how it's work, i converted many outfits to Fusion girl myself. And I don't plan it update to 1.75

As for DD there is problem with straitjackets and dress bones weight to made it look as it look now.

 

Posted

Something is wrong with the script that is checking for plugs. Every now and then (actually too often) I get a message "Your plug is stimulating you" and my protagonist start to moan and touch herself. That would be fine if I were wearing a plug, but I removed all of them. I even invoked unequipall command to ensure that nothing remains. I checked papyrus logs and although there isn't a lot I see some messages about FPP and checking whether I wear something in slot 58.

 

I would appreciate if someone could help me to get rid of this problem. It was fun at first but right now I got tired of constant moans.

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
×
×
  • Create New...