Jump to content

Recommended Posts

Posted

when the frogtie pieces are applied the characters are floating and movement is done by the hopping animation just without feet. do you know how to fix that?

Posted (edited)

Hi.

 

So, let's see... That's a great mod, really. The restraints are nicely done, the fact that struggling is actually animated and unlimited contrary to devious devices is an absolute pleasure to behold, alonfgside the fact that even while idle, my caracter don't just stand there, but does try to free herself.

 

Buuuut... I have a tiny little problem, Just one. When using self bondage, everything works perfectly fine. The pip-boy reactivate the instant the hands are free. No trouble at all.

 

On the other hand, being bound by the mod "AAF violate" make the pip-boy totally invisible, even with the hands free once the scene ends (note that my character's legs were bound by this mods, but that her hands were bound in tront of her by institute's handcuffs). It's menu does appears, but not the item or his contents and because of that, not only I can't finish freeing my character, but I can't even close the damn thing once opened, forcing me to go back to a older save.

 

Does anyone here have the same problem ? I also have Real handcuffs and Devious Devices activated, so perhaps it's a case of incompatibility, but I want to make sure before uninstalling anything.

Edited by Naraku02
Posted
6 minutes ago, Naraku02 said:

On the other hand, being bound by the mod "AAF violate" make the pip-boy totally invisible, even with the hands free once the scene ends (note that my character's legs were bound by this mods, but that her hands were bound in tront of her by institute's handcuffs). It's menu does appears, but not the item or his contents and because of that, not only I can't finish freeing my character, but I can't even close the damn thing once opened, forcing me to go back to a older save.

 

Does anyone here have the same problem ? I also have Real handcuffs and Devious Devices activated, so perhaps it's a case of incompatibility, but I want to make sure before uninstalling anything.

 

Are you using the vanilla game Pip-Boy, or a replacer like Pip-Pad or Tactical Tablet? I use Pip-Pad and yes it does disappear for me after escaping, but I can usually just dismiss the invisible interface and then bring it back up again and it's back to normal. Once recently I did get it stuck like you describe after using the patched version of DD Armorbench Unlocker to escape from some KFT items, but I was able to bring up the pause menu, save, load that save, dismiss the invisible interface and then my Pip-Pad was working fine thereafter.

Posted (edited)
3 minutes ago, vaultbait said:

 

Are you using the vanilla game Pip-Boy, or a replacer like Pip-Pad or Tactical Tablet? I use Pip-Pad and yes it does disappear for me after escaping, but I can usually just dismiss the invisible interface and then bring it back up again and it's back to normal. Once recently I did get it stuck like you describe after using the patched version of DD Armorbench Unlocker to escape from some KFT items, but I was able to bring up the pause menu, save, load that save, dismiss the invisible interface and then my Pip-Pad was working fine thereafter.

I'm using "black widow armor and pip boy"... Don't know if it count as a replacer... Besides that, no, though I technically have a pip-boy replacer incorporated in an anti-material rifle AX50 mod who apparently add a watch... But I didn't activate the plugin

Edited by Naraku02
Posted
4 hours ago, Naraku02 said:

On the other hand, being bound by the mod "AAF violate" make the pip-boy totally invisible, even with the hands free once the scene ends (note that my character's legs were bound by this mods, but that her hands were bound in tront of her by institute's handcuffs). It's menu does appears, but not the item or his contents and because of that, not only I can't finish freeing my character, but I can't even close the damn thing once opened, forcing me to go back to a older save.

 

the institute handcuffs are from devious devices.

 

as for the bug i do not remember hitting that specific one, but i do remember hitting something that made me get the DD Armor Bench Unlocker 

(https://www.loverslab.com/files/file/17448-dd-armorbench-unlocker/) mod because i could not get loose otherwise (other than a random SH approach

releasing me).

 

Posted
11 minutes ago, valcon767 said:

 

the institute handcuffs are from devious devices.

 

as for the bug i do not remember hitting that specific one, but i do remember hitting something that made me get the DD Armor Bench Unlocker 

(https://www.loverslab.com/files/file/17448-dd-armorbench-unlocker/) mod because i could not get loose otherwise (other than a random SH approach

releasing me).

 

 ok, I'll try that then. Thank you

Posted

tricky thing with most "pipboy hiding" function, I guess.

Works ok most of the time for me, but sometimes I end up staring at my left forearm instead of the pipboy.


The console command

    player.equipitem 00021b3b

will reequip the pipboy.
At least if one is using the vanilla one.
If you are using a replacer, it might also work - but that depends on how the replacer-mod in question works.

Posted

So, this compiles but fails to equip items where "AngTechSuit" is an armor ref

 

var[] akArgs = new var[4]
akArgs[0] = Player
akArgs[1] = AngTechSuit
akArgs[2] = True
akArgs[3] = True

KZEB_API.CallFunction( "EquipDevice", akArgs )


Where as, this does work so I know the KZEB_API is valid

 

var[] akArgs = new var[4]
akArgs[0] = akActor
akArgs[1] = None
akArgs[2] = False
akArgs[3] = True

KZEB_API.CallFunction("EquipLeveledDevice", akArgs)

 

 

 

Do I need to do something like this?

 

var[] akArgs = new var[4]
akArgs[0] = Player
akArgs[1] = AngTechSuit.GetBaseObject() as ObjectReference
akArgs[2] = True
akArgs[3] = True

KZEB_API.CallFunction( "EquipDevice", akArgs )



 

Posted
4 hours ago, jbezorg said:

So, this compiles but fails to equip items where "AngTechSuit" is an armor ref

 

That first example should work. assuming KZEB_API is the right type of ScriptObject etc.  If the second example works then KZEB_API is correct.

 

The third example won't work because you can't cast a base object as a reference.

 

Do you get any errors in the Papyrus log?  That would be the first thing I'd look for.

 

Note that whatever you pass in as akArgs[1] must actually be a KZEB device, i.e., have the KZEB:KZEB_BondageDeviceScript or one of its extenders attached.  You can't call this on normal armors.

Posted
14 minutes ago, EgoBallistic said:

 

That first example should work. assuming KZEB_API is the right type of ScriptObject etc.  If the second example works then KZEB_API is correct.

 

The third example won't work because you can't cast a base object as a reference.

 

Do you get any errors in the Papyrus log?  That would be the first thing I'd look for.

 

Note that whatever you pass in as akArgs[1] must actually be a KZEB device, i.e., have the KZEB:KZEB_BondageDeviceScript or one of its extenders attached.  You can't call this on normal armors.

 

Here's the related sections. Tried "AngTechSuit" defined as Armor and an ObjectReferance with no luck.

Under the same conditions "EquipLeveledDevice" pulls from the leveled lists w/out an issue. It's just when I specify a specific item and use "EquipDevice" that things fail.

 

 

;---------------------------------------------------------------
Group KziitdFetishToolset
  Bool                Property KFTInstalled = false            Auto Conditional
  ScriptObject        Property KZEB_API                        Auto Hidden
  MiscObject          Property KZEB_DeviceKey01                Auto Hidden
endGroup

~~~~~~~

  ; Kziitd Fetish Toolset
  ; https://www.loverslab.com/files/file/32791-kft-kziitd-fetish-toolset/
  sModName = "KziitdFetishToolset.esm"
  KFTInstalled = Game.IsPluginInstalled( sModName )
  If KFTInstalled
    KZEB_DeviceKey01 = Game.GetFormFromFile(0x0523AE, sModName ) as MiscObject ; KZEB_DeviceKey01 "Fetish Device Key" [MISC:010523AE]

    Quest KZEB_MainQuest = Game.GetFormFromFile(0x00924A, sModName ) as Quest
    KZEB_API             = KZEB_MainQuest.CastAs("KZEB:KZEB_API")
  endIf

 

Posted (edited)
44 minutes ago, jbezorg said:

er the same conditions "EquipLeveledDevice" pulls from the leveled lists w/out an issue. It's just when I specify a specific item and use "EquipDevice" that things fail.

 

Ah I think I see the problem.  When you use CallFunction() you have to strictly adhere to the types of the function parameters.  In this case akArgs[1] has to be cast as a Form.

 

I did this to equip an Armor on the Player and it works:

 

Function EquipKFT(Actor akActor)

    Armor kziitd_gag19 = Game.GetFormFromFile(0x00084A, "KziitdFetishToolset.esm") as Armor
    Quest KZEB_MainQuest = Game.GetFormFromFile(0x00924A, "KziitdFetishToolset.esm" ) as Quest
    ScriptObject KZEB_API = KZEB_MainQuest.CastAs("KZEB:KZEB_API")

    var[] akArgs = new var[4]
    akArgs[0] = akActor
    akArgs[1] = kziitd_gag19 as Form
    akArgs[2] = True
    akArgs[3] = True

    KZEB_API.CallFunction( "EquipDevice", akArgs )

EndFunction

 

If you want to pass in an ObjectReference instead of an Armor, it works the same way:
 

Function EquipKFT(Actor akActor)

    Armor kziitd_gag19 = Game.GetFormFromFile(0x00084A, "KziitdFetishToolset.esm") as Armor
    Quest KZEB_MainQuest = Game.GetFormFromFile(0x00924A, "KziitdFetishToolset.esm" ) as Quest
    ScriptObject KZEB_API = KZEB_MainQuest.CastAs("KZEB:KZEB_API")
    
    ObjectReference GagRef = akActor.PlaceAtMe(kziitd_gag19, 1)

    var[] akArgs = new var[4]
    akArgs[0] = akActor
    akArgs[1] = GagRef as Form
    akArgs[2] = True
    akArgs[3] = True

    KZEB_API.CallFunction( "EquipDevice", akArgs )

EndFunction

 

Of course, if you don't mind having a script dependency and making KFT a required master for your plugin, it's much cleaner to do it like this:

 

KZEB:KZEB_API Property KZEB_API Auto Const
Armor Property kziitd_gag19 Auto Const

Function EquipKFT(Actor akActor)
    KZEB_API.EquipDevice(akActor, kziitd_gag19, true, true)
EndFunction

 

Notice that in this case you don't have to cast the kziitd_gag19 parameter, it automatically gets cast as a Form for you by the function call.  You just need to fill the KZEB_API and kziitd_gag19 properties and everything will work.  But your mod won't work unless the user has KFT installed.  So it's a tradeoff.

 

 

Edited by EgoBallistic
Posted (edited)
19 hours ago, EgoBallistic said:

 

Ah I think I see the problem.  When you use CallFunction() you have to strictly adhere to the types of the function parameters.  In this case akArgs[1] has to be cast as a Form.

 

I did this to equip an Armor on the Player and it works:

 

Function EquipKFT(Actor akActor)

    Armor kziitd_gag19 = Game.GetFormFromFile(0x00084A, "KziitdFetishToolset.esm") as Armor
    Quest KZEB_MainQuest = Game.GetFormFromFile(0x00924A, "KziitdFetishToolset.esm" ) as Quest
    ScriptObject KZEB_API = KZEB_MainQuest.CastAs("KZEB:KZEB_API")

    var[] akArgs = new var[4]
    akArgs[0] = akActor
    akArgs[1] = kziitd_gag19 as Form
    akArgs[2] = True
    akArgs[3] = True

    KZEB_API.CallFunction( "EquipDevice", akArgs )

EndFunction

 

If you want to pass in an ObjectReference instead of an Armor, it works the same way:
 

Function EquipKFT(Actor akActor)

    Armor kziitd_gag19 = Game.GetFormFromFile(0x00084A, "KziitdFetishToolset.esm") as Armor
    Quest KZEB_MainQuest = Game.GetFormFromFile(0x00924A, "KziitdFetishToolset.esm" ) as Quest
    ScriptObject KZEB_API = KZEB_MainQuest.CastAs("KZEB:KZEB_API")
    
    ObjectReference GagRef = akActor.PlaceAtMe(kziitd_gag19, 1)

    var[] akArgs = new var[4]
    akArgs[0] = akActor
    akArgs[1] = GagRef as Form
    akArgs[2] = True
    akArgs[3] = True

    KZEB_API.CallFunction( "EquipDevice", akArgs )

EndFunction

 

Of course, if you don't mind having a script dependency and making KFT a required master for your plugin, it's much cleaner to do it like this:

 

KZEB:KZEB_API Property KZEB_API Auto Const
Armor Property kziitd_gag19 Auto Const

Function EquipKFT(Actor akActor)
    KZEB_API.EquipDevice(akActor, kziitd_gag19, true, true)
EndFunction

 

Notice that in this case you don't have to cast the kziitd_gag19 parameter, it automatically gets cast as a Form for you by the function call.  You just need to fill the KZEB_API and kziitd_gag19 properties and everything will work.  But your mod won't work unless the user has KFT installed.  So it's a tradeoff.

 

 

 

Thank you!

I think I may enforce that rule at the function level. That way if the device is cast wrong the script won't compile

 

Bool function EquipKFTDevice( Actor akActor, Form akDevice )
  If KFTInstalled
    var[] akArgs = new var[4]
    akArgs[0] = akActor
    akArgs[1] = akDevice
    akArgs[2] = True
    akArgs[3] = True
    return KZEB_API.CallFunction( "EquipDevice", akArgs ) as Bool
  else
    return false
  endIf
EndFunction

 

( Tested and yep, that was the problem. akArgs[1] not cast as a Form )

Edited by jbezorg
Posted

Frist of all, ALL of your mods are absolute gems, secondly I'm curious if there's a way to exclude certain sex animation while using specific types of your restraints. For example, Bound in Pubblic can call gallows furniture and if the character is wearing "helpless fuckdoll" or "frogtie", it will break immersion, since it hasn't/can't use leg. If not in your plans, maybe I can figure it out myself how to do ot, if can you give me a hint or maybe something to read. Thanks in advance!

Posted
34 minutes ago, leonardofiore15 said:

Frist of all, ALL of your mods are absolute gems, secondly I'm curious if there's a way to exclude certain sex animation while using specific types of your restraints. For example, Bound in Pubblic can call gallows furniture and if the character is wearing "helpless fuckdoll" or "frogtie", it will break immersion, since it hasn't/can't use leg. If not in your plans, maybe I can figure it out myself how to do ot, if can you give me a hint or maybe something to read. Thanks in advance!

 

Hey thanks.  I do have plans to include a mechanism like that in KFT.  I was originally going to include a function that would scan the wearer and report back a list of "excluded" tags, for example if you were wearing a closed-mouth gag then "blowjob" would be excluded.  Animation mods would then add that to the list of excluded tags in the AAF scene settings.

 

However, the upcoming release of AAF is going to introduce a new way to specify animation participants based on "parts matching", which will greatly simplify the need for XML and the use of tags.  Mods like KFT will be able to modify which "parts" a wearer has available.  So I'm holding off on implementing this mechanism until the new AAF is ready.

 

That being said, the above really specifically applies to sex animations.  Other animations aren't so easily categorized, so avoiding certain unimmersive combinations of restraint and animations might have to be done more explicitly, i.e. by checking for device types and acting accordingly.

 

If !akActor.WornHasKeyword("KZEB_DeviceType_Frogtie")
    ; play gallows animation
Else
    ; play some other animation
EndIf

 

All of the device type keywords are listed in KZEB_API.psc under the "Group DeviceTypeKeywords" property category.

Posted
17 minutes ago, EgoBallistic said:

 

Hey thanks.  I do have plans to include a mechanism like that in KFT.  I was originally going to include a function that would scan the wearer and report back a list of "excluded" tags, for example if you were wearing a closed-mouth gag then "blowjob" would be excluded.  Animation mods would then add that to the list of excluded tags in the AAF scene settings.

 

However, the upcoming release of AAF is going to introduce a new way to specify animation participants based on "parts matching", which will greatly simplify the need for XML and the use of tags.  Mods like KFT will be able to modify which "parts" a wearer has available.  So I'm holding off on implementing this mechanism until the new AAF is ready.

 

That being said, the above really specifically applies to sex animations.  Other animations aren't so easily categorized, so avoiding certain unimmersive combinations of restraint and animations might have to be done more explicitly, i.e. by checking for device types and acting accordingly.

 

If !akActor.WornHasKeyword("KZEB_DeviceType_Frogtie")
    ; play gallows animation
Else
    ; play some other animation
EndIf

 

All of the device type keywords are listed in KZEB_API.psc under the "Group DeviceTypeKeywords" property category.

Gotcha, didn't knew about the upcoming AAF, that's great. I suspected that for my request I needed to specify the exclusions. I will take a look if I figure out something. Great mod and great framework again!

Posted (edited)

Hi @EgoBallistic 

 

I've played modded Skyrim for quite a while, but I've never even installed FO4.

 

I think this mod was what it took for me to finally decide to give FO4 a try. It sounds like you have done (/are still doing...) some amazing work (also with other mods) and I'm looking forward to trying it out.

Update: Oh, and also thanks to @jbezorg for obviously also doing great work on this stuff!

Edited by BYJE137
Posted

@EgoBallistic  While hunting down a situation where stuff temporarily equipped on NPCs by a mod was suddenly "missing", I discovered that KZEB_BondageDeviceScript will unequip any item equipped on the NPC (even when it is not conflicting), unless either container menu or pip boy menu are open (or we add a special keyword into KZEB_NoRemoveKeywords to prevent this).

This mechanism has a pretty large chance of breaking other mods that modify NPC equipment... I assume that you are aware and have good reasons?

Posted
3 hours ago, Kharos said:

This mechanism has a pretty large chance of breaking other mods that modify NPC equipment... I assume that you are aware and have good reasons?

 

This is to handle the case where sometimes unloaded NPCs will reload with their default outfit equipped.  Depending on the base outfit, this could lead to cases like a naked tied-up NPC respawning with their leg armor equipped.

 

It wasn't a super common occurrence but at the time I was trying to squash every annoying engine behavior.  You could always modify HandleOnItemEquipped and remove the "akActor != KZEB_API.PlayerRef ||" part of the condition.

Posted
51 minutes ago, wssb2024 said:

How do I get these?

 

Open console and do "help fuckdoll 4"

 

You'll see a list of items like

ARMO:    (110009A5)   'FuckDoll-NoLegs'

 

To equip one of them, run the command "player.equipitem 110009A5"  (substituting the number for the item you want)

Posted
8 minutes ago, EgoBallistic said:

 

Open console and do "help fuckdoll 4"
打开控制台并执行“help fuckdoll 4”

 

You'll see a list of items like
您将看到一个项目列表,例如

ARMO:    (110009A5)   'FuckDoll-NoLegs'
ARMO:(110009A5) 'FuckDoll-NoLegs'

 

To equip one of them, run the command "player.equipitem 110009A5"  (substituting the number for the item you want)
要装备其中之一,请运行命令“player.equipitem 110009A5”(用数字替换所需的物品)

That's great! But can I only do this in console? Can't it be like the bad end?😢

Posted
Just now, wssb2024 said:

That's great! But can I only do this in console? Can't it be like the bad end?😢

 

Someone would have to make a mod do that.

Posted
8 minutes ago, EgoBallistic said:

 

Someone would have to make a mod do that.

The someone go for it!😂 you're my hero If you do make it!💋

Posted
18 hours ago, EgoBallistic said:

 

This is to handle the case where sometimes unloaded NPCs will reload with their default outfit equipped.  Depending on the base outfit, this could lead to cases like a naked tied-up NPC respawning with their leg armor equipped.

 

It wasn't a super common occurrence but at the time I was trying to squash every annoying engine behavior.  You could always modify HandleOnItemEquipped and remove the "akActor != KZEB_API.PlayerRef ||" part of the condition.

 

Ah yes, that is a very annoying engine behavior even if it is rare 👍.

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...