Jump to content

Recommended Posts

15 hours ago, ETSubmariner said:

I updated to the latest version, didn't realize I was using one prior. I also have DD and use the compat patch. Now my character is stripped when a device gets added (finally),

Stripping is not a function of my mod (or of DD as far as I know)

15 hours ago, ETSubmariner said:

but now any attempt to save takes forever (2+ minutes) IF a device was just added or removed. Just at that time. All other normal non-add/non-removal saving is short and sweet.

No idea, but you can temporarily deactivate the DD compat plugin to see if it makes a difference. Deactivating plugins in a running game is not exactly safe but it can be a good way to find the culprit of problems (make a dedicated save, deactivate plugins, load game and do some testing, then re-activate the plugins and load the dedicated safe again i.e. don't keep saves that you made while testing).

 

Link to comment
Spoiler
20 hours ago, ETSubmariner said:

Yeah, I had tried to see if opening the various nifs in Nifscope and scaling them down would make them smaller in the world (loose file effort on my part), but they remain the same. Do they scale in game or is that a nifscope thing you chose?

 

Edit, unrelated topic. I updated to the latest version, didn't realize I was using one prior. I also have DD and use the compat patch. Now my character is stripped when a device gets added (finally), but now any attempt to save takes forever (2+ minutes) IF a device was just added or removed. Just at that time. All other normal non-add/non-removal saving is short and sweet. Does anyone have any ideas what might be the concern and the solution?

 

@Kharos too;

That's 'cause of DD itself.
Someone somewhere in DD's thread, adjusted I think, the DD library/script to drastically reduce/eliminate this entirely, as you otherwise needa wait a good 10-20 seconds if not more, before saving, or it takes a couple minutes to save and 'unfreeze'.
As a compulsive quick-saver, it kinda fucks you up when it does that :sweat_smile:

It'll be somewhere around P30-50, I think, if you decide to dive into the thread looking for it.
No idea why, never went digging for a why, and mostly forgot all about it, as I'm cautious about saving after having shit equipped/unequipped now, thanks entirely to that issue.

Link to comment
3 hours ago, Nebuchadnezzer2 said:
  Reveal hidden contents

 

@Kharos too;

That's 'cause of DD itself.
Someone somewhere in DD's thread, adjusted I think, the DD library/script to drastically reduce/eliminate this entirely, as you otherwise needa wait a good 10-20 seconds if not more, before saving, or it takes a couple minutes to save and 'unfreeze'.
As a compulsive quick-saver, it kinda fucks you up when it does that :sweat_smile:

It'll be somewhere around P30-50, I think, if you decide to dive into the thread looking for it.
No idea why, never went digging for a why, and mostly forgot all about it, as I'm cautious about saving after having shit equipped/unequipped now, thanks entirely to that issue.

Yeah, my friends call me the Save King so I tend to get antsy. With some mods that do a lot of AAF animations in a row, adding or removing equipment and not being able to save right off afterwards has resulted in this very typical Bethesda game + mods doing its normal vanilla behavior of CTD.

 

So an actual script eh? I'll look. I know jack about scripts, but can manage xEdit. lol

Link to comment
8 hours ago, Kharos said:

Stripping is not a function of my mod (or of DD as far as I know)

 

 

That's what I mean by what happened between having the prior version and the new RH version. By whatever trickery, I was not being stepped automatically when DD devices were being added. DD wasn't doing it, but by happenstance the latest RH somehow kicked DD in the rear despite not being related. idk, I'll take it!

Link to comment
3 hours ago, Nebuchadnezzer2 said:
  Reveal hidden contents

 

@Kharos too;

That's 'cause of DD itself.
Someone somewhere in DD's thread, adjusted I think, the DD library/script to drastically reduce/eliminate this entirely, as you otherwise needa wait a good 10-20 seconds if not more, before saving, or it takes a couple minutes to save and 'unfreeze'.
As a compulsive quick-saver, it kinda fucks you up when it does that :sweat_smile:

It'll be somewhere around P30-50, I think, if you decide to dive into the thread looking for it.
No idea why, never went digging for a why, and mostly forgot all about it, as I'm cautious about saving after having shit equipped/unequipped now, thanks entirely to that issue.

Neb are these the correct files?

 

 

Link to comment

I am playing around with your framwork/3rd party API. Nice work so far, very usable and well documented.

However, I came across one minor issue:

The StartBoundWaitState function has a parameter “playEnterAnimation”, however this parameter is not used in the function. The actor is ALWAYS playing the EnterAnimation

Spoiler

 

Bool Function StartBoundWaitState(Actor target, Int pose, Bool playEnterAnimation, Bool makePlayerPosable)

    If (target == None || target == Game.GetPlayer())

        Return false

    EndIf

    RealHandcuffs:NpcToken token = Library.TryGetActorToken(target) as RealHandcuffs:NpcToken

    If (token == None || !token.GetHandsBoundBehindBack())

        Return false

    EndIf

    RealHandcuffs:WaitMarkerBase waitMarker = target.GetLinkedRef(Library.Resources.WaitMarkerLink) as RealHandcuffs:WaitMarkerBase

    If (waitMarker != None)

        ; unregister from existing wait marker or prisoner mat

        waitMarker.Unregister(target)

    EndIf

    String animation = ConvertPoseToAnimation(pose)

    waitMarker = token.TryCreateTemporaryWaitMarker(animation, true)

    If (waitMarker == None)

        ; failure, not sure why

        Return false

    EndIf

    Return true

EndFunction

 

Keep up the great work!
Link to comment
On 9/20/2020 at 10:10 PM, ETSubmariner said:

Downloading them now! 2 minutes isn't that bad compared to what it says in that thread, but even more than 10 seconds saving makes no sense.

 

edit update: made no difference, Still 2 minutes or so.

Keep in mind that a lot of script things get loaded into a safegame. So if you swap it without doing a clean save (which is quite hard to do 100%) then you should try a new game or a save before activating the DD mod. Just swapping script files most of the times does very little or might even break your game even more.

Link to comment
26 minutes ago, naaitsab said:

Keep in mind that a lot of script things get loaded into a safegame. So if you swap it without doing a clean save (which is quite hard to do 100%) then you should try a new game or a save before activating the DD mod. Just swapping script files most of the times does very little or might even break your game even more.

 

Replacing script files is perfectly fine and works as long as no functions from the script were actively running when you saved your game.  Even then, the game will pick up the new version once the running function stops.

 

There is no such thing as a "clean save" in Skyrim/SE/FO4, other than starting a new game or rolling back to a save made before you installed the mod.  You are much more likely to damage your game by uninstalling the mod and/or attempting to clean the save with ReSaver, than you are by replacing script files.

Link to comment
12 hours ago, HR_Sinop said:

I am playing around with your framwork/3rd party API. Nice work so far, very usable and well documented.

 

However, I came across one minor issue:

 

The StartBoundWaitState function has a parameter “playEnterAnimation”, however this parameter is not used in the function. The actor is ALWAYS playing the EnterAnimation

 

  Reveal hidden contents

 

Bool Function StartBoundWaitState(Actor target, Int pose, Bool playEnterAnimation, Bool makePlayerPosable)

 

    If (target == None || target == Game.GetPlayer())

 

        Return false

 

    EndIf

 

    RealHandcuffs:NpcToken token = Library.TryGetActorToken(target) as RealHandcuffs:NpcToken

 

    If (token == None || !token.GetHandsBoundBehindBack())

 

        Return false

 

    EndIf

 

    RealHandcuffs:WaitMarkerBase waitMarker = target.GetLinkedRef(Library.Resources.WaitMarkerLink) as RealHandcuffs:WaitMarkerBase

 

    If (waitMarker != None)

 

        ; unregister from existing wait marker or prisoner mat

 

        waitMarker.Unregister(target)

 

    EndIf

 

    String animation = ConvertPoseToAnimation(pose)

 

    waitMarker = token.TryCreateTemporaryWaitMarker(animation, true)

 

    If (waitMarker == None)

 

        ; failure, not sure why

 

        Return false

 

    EndIf

 

    Return true

 

EndFunction

 

 

 

Keep up the great work!

Oups ? thanks for the notification and for your kind words ?. I'm taking this on my TODO list.

Link to comment
  • 3 weeks later...

Hey @Kharos I discovered a real weird edgecase bug. Nothing much for you to worry about but, I thought I'd bring it to your attention anyway.

 

I use this mod with Pip pad pipboy replacer and it works fine, but I've found if I install the mod. Tune the Radios  My pip pad will disappear whenever I try to access a shock collar. I tried changing the left and right side load orders in MO2 so it was above Real handcuffs and Pip Pad, to no effect which if it was a simple conflict you'd think it would have fixed it... and on top of that this problem only manifests in a save AFTER I've tuned a radio.

 

It's a real mystery. Anyway for my part I am just gonna try the other radio tuning mod which I don't believe involves using the pipboy menu so hopefully that won't have this problem.

Link to comment
6 hours ago, Tentacus said:

Hey @Kharos I discovered a real weird edgecase bug. Nothing much for you to worry about but, I thought I'd bring it to your attention anyway.

 

I use this mod with Pip pad pipboy replacer and it works fine, but I've found if I install the mod. Tune the Radios  My pip pad will disappear whenever I try to access a shock collar. I tried changing the left and right side load orders in MO2 so it was above Real handcuffs and Pip Pad, to no effect which if it was a simple conflict you'd think it would have fixed it... and on top of that this problem only manifests in a save AFTER I've tuned a radio.

 

It's a real mystery. Anyway for my part I am just gonna try the other radio tuning mod which I don't believe involves using the pipboy menu so hopefully that won't have this problem.

There were similar problems with pip-pad and accessing shock collars in the past, right? 

At that time it was solved by upgrading the pip-pad version (a few posts down from the one I linked). I would have guessed that tune the radios somehow modifies a .swf file for the pip-boy, causing the issue. But if that is the reason then moving it around in MO2 should solve the problem (and probably break Tune The Radios), and you say that it did not :classic_confused:

 

[Edit] Maybe it overrides one of the standard .swf files for the pip-boy (i.e. one that is not modified in pip-pad), and somehow introduces that problem by doing so? No idea really...

[Edit 2] Or it may override a file as a loose file that is in a .ba2 in pip-pad. As far as I know loose files override files from .ba2, regardless of load order.

Link to comment
3 hours ago, Kharos said:

There were similar problems with pip-pad and accessing shock collars in the past, right? 

At that time it was solved by upgrading the pip-pad version (a few posts down from the one I linked). I would have guessed that tune the radios somehow modifies a .swf file for the pip-boy, causing the issue. But if that is the reason then moving it around in MO2 should solve the problem (and probably break Tune The Radios), and you say that it did not :classic_confused:

 

[Edit] Maybe it overrides one of the standard .swf files for the pip-boy (i.e. one that is not modified in pip-pad), and somehow introduces that problem by doing so? No idea really...

[Edit 2] Or it may override a file as a loose file that is in a .ba2 in pip-pad. As far as I know loose files override files from .ba2, regardless of load order.

Yeah I haven't explored where the conlict lies beyond moving it in load order since it was archived and I couldn't be arsed to bust out BAE for this.

Link to comment

@Kharos small bug (rather a beauty flaw). If you get knocked down by a shock a unnamed perk/spell is applied. Presumably to force the idle. This is not done silent however so it shows half in the notification part of the screen (something like "*blank* was applied")

 

Also there seems to be support for the non-hacked collar to enable torture mode, judging from the made lines in the Terminal and script(s). But besides adding the keyword via Papyrus this can't be achieved via normal ways. Is this a dropped feature?

 

Keeping with the Torture theme, I could not find a way to set or disabled it via the API. So I had to write my own calls. (Enable+Restart timer, set freqency, get frequency and Disable+Restart timer). Perhaps something for the next build? If it helps here is the code I used:

 

Spoiler

Function SetTortureModeFrequencyPlayer(float freq) ;stop = 0.0
	ScriptObject rhRefScript = PlayerShockCollar.CastAs("RealHandcuffs:ShockCollarBase")
	var[] rhArgs = new var[1]
	rhArgs[0] = freq
	rhRefScript.CallFunction("SetTortureModeFrequency", rhArgs)
	
	var[] rxhArgs = new var[1]
	rxhArgs[0] = PlayerREF
	rhRefScript.CallFunction("RestartTortureMode", rxhArgs)
EndFunction

float Function GetTortureModeFrequencyPlayer()
	ScriptObject rhRefScript = PlayerShockCollar.CastAs("RealHandcuffs:ShockCollarBase")
	var[] rhArgs = new var[0]
	Float TortureFreq = rhRefScript.CallFunction("GetTortureModeFrequency", rhArgs) as float
	
	return TortureFreq
EndFunction

 

 

Link to comment
3 hours ago, naaitsab said:

@Kharos small bug (rather a beauty flaw). If you get knocked down by a shock a unnamed perk/spell is applied. Presumably to force the idle. This is not done silent however so it shows half in the notification part of the screen (something like "*blank* was applied")

Ok, I'm taking a note. Spell effects are applied both for shoking and for knockdown, yeah. Looks like I need to experiment a bit more with this.

 

3 hours ago, naaitsab said:

Also there seems to be support for the non-hacked collar to enable torture mode, judging from the made lines in the Terminal and script(s). But besides adding the keyword via Papyrus this can't be achieved via normal ways. Is this a dropped feature?

At the moment only the hacked firmware supports torture mode. This is hardcoded in ShockCollar.psc (function GetSupportsTortureMode()); in ShockCollarBase.psc this is then used (function ShowTerminalOnPipboy()). Is there a good a reason that you do not want to use the hacked firmware? Technically I could probably refactor my code to add a special keyword that enables it with other firmware.

 

3 hours ago, naaitsab said:

Keeping with the Torture theme, I could not find a way to set or disabled it via the API. So I had to write my own calls. (Enable+Restart timer, set freqency, get frequency and Disable+Restart timer). Perhaps something for the next build? If it helps here is the code I used:

Yes, this is a gap in ThirdPartyApi.psc. I will take a note, thanks for posting your code. Take care, as each shock causes a small amount of damage, torture mode will kill the player after running for some time unless you take care to heal the player between shocks!

Link to comment
1 hour ago, Kharos said:

Ok, I'm taking a note. Spell effects are applied both for shoking and for knockdown, yeah. Looks like I need to experiment a bit more with this.

You can apply both spells and perks silent. With perks (AddPerk) it's silent by default. For spells you sneed to specify it like AddSpell(Spellname, false)

Or you can of course use part of the main script to achieve the same with a timer, inputlayer and PlayIdle commands. Spell might be better I think.

 

1 hour ago, Kharos said:

At the moment only the hacked firmware supports torture mode. This is hardcoded in ShockCollar.psc (function GetSupportsTortureMode()); in ShockCollarBase.psc this is then used (function ShowTerminalOnPipboy()). Is there a good a reason that you do not want to use the hacked firmware? Technically I could probably refactor my code to add a special keyword that enables it with other firmware.

Just for 'lore' sake :P and I'm not really a fan of the "Raider terminal" thing personally. Perhaps in the regular firmware it could be renamed to something like 'Punishment Mode' with a small piece of text warning of the function before enabling it. Talking about warnings, if you unlock the regular firmware collar it warns you that this is unadvised, the upgraded firmware does not show a warning at all. Didn't look into this but it just came to mind.

 

1 hour ago, Kharos said:

Yes, this is a gap in ThirdPartyApi.psc. I will take a note, thanks for posting your code. Take care, as each shock causes a small amount of damage, torture mode will kill the player after running for some time unless you take care to heal the player between shocks!

Jup, as per Dwemer RobCo magic the gag I custom scripted for a WIP mod surrounding the collar has a special stimpack injector beside the built-in Chem injector ;)

Link to comment
28 minutes ago, naaitsab said:

You can apply both spells and perks silent. With perks (AddPerk) it's silent by default. For spells you sneed to specify it like AddSpell(Spellname, false)

Or you can of course use part of the main script to achieve the same with a timer, inputlayer and PlayIdle commands. Spell might be better I think.

Yeah, I know that... in theory. In practice, I just forgot to set the flag (1).

 

32 minutes ago, naaitsab said:

Just for 'lore' sake :P and I'm not really a fan of the "Raider terminal" thing personally. Perhaps in the regular firmware it could be renamed to something like 'Punishment Mode' with a small piece of text warning of the function before enabling it. Talking about warnings, if you unlock the regular firmware collar it warns you that this is unadvised, the upgraded firmware does not show a warning at all. Didn't look into this but it just came to mind.

That was on purpose (warning missing in advanced shock collar), I wanted there to be some small differences between the firmware versions. From a lore point, imagine that the first version is an early version that was shipped to the military to contain war prisoners, and the second version had improvements after input from the military. A punishment mode on the advanced model would fit well into that theme actually.

 

35 minutes ago, naaitsab said:

Jup, as per Dwemer RobCo magic the gag I custom scripted for a WIP mod surrounding the collar has a special stimpack injector beside the built-in Chem injector ;)

?

 

(1): https://github.com/RealHandcuffs/RealHandcuffs/blob/master/package/0_Common/Scripts/Source/User/RealHandcuffs/TemporaryShockDamageDecayEffect.psc#L131

Link to comment

Well shit @Kharos, It appears that Pip Pad issue isn't related to the radio tuning mod at all. It happens any time you tune any radio station. After you tune a station once You will never see the pip pad come up when accessing the shock collar. It's likely that my previous issue was this all along and never fixed. As I haven't ever really messed with the shock collar in actual play, but now I've been messing around with it on my Test Cell NPCs.  Obviously I reinstalled Pip Pad to see if anything had gotten messed up but it wasn't. 

 

I'll probably just make my own dialogue based interface for the collar that doesn't use the pipboy, as I'm pretty attached to the Pip Pad. I'll probably just make it a feature of TSEX since that will require RH anyway. I tend to prefer that kind of interface anyway as it's immersive. "I'm going to take the collar off you now... Don't try anything!" etc...

Link to comment
9 hours ago, Kharos said:

Yeah, I know that... in theory. In practice, I just forgot to set the flag (1).

I presumed it was something like that indeed.

 

9 hours ago, Kharos said:

Yeah, I know that... in theory. In practice, I just forgot to set the flag (1).

 

That was on purpose (warning missing in advanced shock collar), I wanted there to be some small differences between the firmware versions. From a lore point, imagine that the first version is an early version that was shipped to the military to contain war prisoners, and the second version had improvements after input from the military. A punishment mode on the advanced model would fit well into that theme actually.

It would be a nice addition to the advanced firmware indeed.

 

I also made a personal retexture for the collar replacing the explosive warning with a shock sign. I you want I can provide the DDS. We could even go as far as adding a texture replacement and tying it to the explosive mod. If that's installed the vanilla warning is loaded/shown.

 

Collar.JPG.a30d063f2c7688d6d7884f5ef285f851.JPG

Link to comment
26 minutes ago, naaitsab said:

I presumed it was something like that indeed.

 

It would be a nice addition to the advanced firmware indeed.

 

I also made a personal retexture for the collar replacing the explosive warning with a shock sign. I you want I can provide the DDS. We could even go as far as adding a texture replacement and tying it to the explosive mod. If that's installed the vanilla warning is loaded/shown.

 

Collar.JPG.a30d063f2c7688d6d7884f5ef285f851.JPG

That looks nice, I'm definitively interested!

Link to comment
6 hours ago, Tentacus said:

Well shit @Kharos, It appears that Pip Pad issue isn't related to the radio tuning mod at all. It happens any time you tune any radio station. After you tune a station once You will never see the pip pad come up when accessing the shock collar. It's likely that my previous issue was this all along and never fixed. As I haven't ever really messed with the shock collar in actual play, but now I've been messing around with it on my Test Cell NPCs.  Obviously I reinstalled Pip Pad to see if anything had gotten messed up but it wasn't. 

 

I'll probably just make my own dialogue based interface for the collar that doesn't use the pipboy, as I'm pretty attached to the Pip Pad. I'll probably just make it a feature of TSEX since that will require RH anyway. I tend to prefer that kind of interface anyway as it's immersive. "I'm going to take the collar off you now... Don't try anything!" etc...

Hmpf... I'll also think if there is something I can do to work around the issue. Maybe an alternate solution for PipBoy users could be requiring the user to manually open the PopBoy and insert a holodisk? After that everything would proceed as normally. ?

Link to comment
55 minutes ago, Kharos said:

That looks nice, I'm definitively interested!

See attached files :) I've set the shock one as default (replaces the default texture file so keep an eye on this) and renamed the original and included the required Materials file.

If you need help setting up the texture replacement for the explosive mod, let me know.

 

And I also upped the resolution to 2k from 0.5K as the vanilla textures are horrible. Photoshop source file is added with a link to the used PNG (free to use of course)

 

Shock mod.7z

 

 

 

Link to comment
6 hours ago, Kharos said:

Hmpf... I'll also think if there is something I can do to work around the issue. Maybe an alternate solution for PipBoy users could be requiring the user to manually open the PopBoy and insert a holodisk? After that everything would proceed as normally. ?

Hmmm yeah I imagine that would work. Not as clean as the current implementation but a nice workaround... Just add an option to the current menu that pops up when you click on the collar that says Select this collar(PipPad) and selects the actor so the holotape knows where to point when you put it in maybe?

Link to comment

Am I supposed to not be able to put on clothes with broken handcuffs on?

Also, (am using Sex Atrributes mod with ability to use willpower to get out of restraints)I noticed that after breaking the chain I could try to pick them with bobby pin, it was regular handcuffs, not hinged and I didn't put any points into lockpicking, are those type of handcuffs always novice? Or was it my willpower from Sex Attributes that gave me ability to unlock it despite not having enough lockpicking skill?

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
×
×
  • 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