Jump to content

Devious Devices - Laura's Bondage Shop (16-aug-2025) v3.55 LE & SE


Recommended Posts

Posted
10 hours ago, jeanjack123 said:

Hello Laura I love your mod, it gave me the desire to make my own.

That's great to hear. :)

 

Quote

I didn't knew who to ask exept you.

 

I started learning CK and his particularities. I am begining the scripting, the hardest part. I want to create a mod based on Devious Devices but I encounter an issue. I don't figure out how to equip a device on player. I read all the part in the devious device integration github, but whatever I try i can't succeed to make a correct script. Do you have any advice that could help me figure out ? 

 

Thank you very much

Sorry for bothers

 

P.S.

My apologies for my bad english I am french

Here's a short step by step guide on equipping an armbinder after an npc finished their line of dialogue:

 

1. Open the Topic Info window of the part where you want it to equip a device.

2. At the bottom, it says: Scripts. Where it says End, put a ; in the Papyrus Fragment and click on compile.

3. You now have an empty script. You can now go to the Advanced tab an click Rename Script. The default name makes no sense, so it's best to give it a name that makes sense to you. I suggest a name with your mod's initials and then a short description of what it does. Something like ABC_EquipArmbinder.

4. You now have an empty script with a name. To the right, right-click your script and click Edit Source. You can now add the stuff you want it to do. In this case, we're going to equip a regular black Armbinder.

5. Make sure it looks like the code I pasted below. I always have this in a notepad file so I can paste it in.

 

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
;ENTER CODE HERE!
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

 

Zadlibs Property libs Auto

 

6. Now you're going to tell it what you want it to do. At the part where it says ;ENTER CODE HERE! , you remove that line and replace it with: libs.equipDevice(libs.playerRef, libs.armbinder, libs.armbinderRendered, libs.zad_DeviousArmbinder, skipevents = false, skipmutex = true)

It should now look like this:

 

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
libs.equipDevice(libs.playerRef, libs.armbinder, libs.armbinderRendered, libs.zad_DeviousArmbinder, skipevents = false, skipmutex = true)
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

 

Zadlibs Property libs Auto

 

7. You're almost done. Now click Crtl+S to save it. It will compile it and it should be without any errors if you have all the source files it needs.

 

8. After you've successfully saved it. Click on the X to close the window.

Now you're going to copy this part: libs.equipDevice(libs.playerRef, libs.armbinder, libs.armbinderRendered, libs.zad_DeviousArmbinder, skipevents = false, skipmutex = true) and put it in the Papyrus Fragment where you put a ; earlier. Remove the ; and copy it in there.

 

9. You're now going to the right-click the script again and select Edit Properties. There should be 1 thing in the list.

Click on it and then go to the right where it says "Pick Object:" Then select it and choose zadQuest.

 

10. After you've done that, click on OK and then click on OK again when you're back in the Topic Info window. It could take a while before it goes away, but that's normal because it's compiling it again.

 

11. Now save your plugin and it should be done.

 

 

I didn't explain what it all did because I don't want to overwhelm you with info. If you have questions about what does what, feel free to ask me.

This is from a script fragment in the dialogue topic LauraShopDialog_PlayerBondageArmb. You can load my mod in the CK to see how it works.

 

Posted
51 minutes ago, Laura 'Lokomootje' said:

That's great to hear. :)

 

Here's a short step by step guide on equipping an armbinder after an npc finished their line of dialogue:

 

1. Open the Topic Info window of the part where you want it to equip a device.

2. At the bottom, it says: Scripts. Where it says End, put a ; in the Papyrus Fragment and click on compile.

3. You now have an empty script. You can now go to the Advanced tab an click Rename Script. The default name makes no sense, so it's best to give it a name that makes sense to you. I suggest a name with your mod's initials and then a short description of what it does. Something like ABC_EquipArmbinder.

4. You now have an empty script with a name. To the right, right-click your script and click Edit Source. You can now add the stuff you want it to do. In this case, we're going to equip a regular black Armbinder.

5. Make sure it looks like the code I pasted below. I always have this in a notepad file so I can paste it in.

 

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
;ENTER CODE HERE!
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

 

Zadlibs Property libs Auto

 

6. Now you're going to tell it what you want it to do. At the part where it says ;ENTER CODE HERE! , you remove that line and replace it with: libs.equipDevice(libs.playerRef, libs.armbinder, libs.armbinderRendered, libs.zad_DeviousArmbinder, skipevents = false, skipmutex = true)

It should now look like this:

 

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
libs.equipDevice(libs.playerRef, libs.armbinder, libs.armbinderRendered, libs.zad_DeviousArmbinder, skipevents = false, skipmutex = true)
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

 

Zadlibs Property libs Auto

 

7. You're almost done. Now click Crtl+S to save it. It will compile it and it should be without any errors if you have all the source files it needs.

 

8. After you've successfully saved it. Click on the X to close the window.

Now you're going to copy this part: libs.equipDevice(libs.playerRef, libs.armbinder, libs.armbinderRendered, libs.zad_DeviousArmbinder, skipevents = false, skipmutex = true) and put it in the Papyrus Fragment where you put a ; earlier. Remove the ; and copy it in there.

 

9. You're now going to the right-click the script again and select Edit Properties. There should be 1 thing in the list.

Click on it and then go to the right where it says "Pick Object:" Then select it and choose zadQuest.

 

10. After you've done that, click on OK and then click on OK again when you're back in the Topic Info window. It could take a while before it goes away, but that's normal because it's compiling it again.

 

11. Now save your plugin and it should be done.

 

 

I didn't explain what it all did because I don't want to overwhelm you with info. If you have questions about what does what, feel free to ask me.

This is from a script fragment in the dialogue topic LauraShopDialog_PlayerBondageArmb. You can load my mod in the CK to see how it works.

 

Thank you so much for your detailed response =)

 

I encounter a tons of errors while compiling the script: 

Spoiler

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(306,31): variable NiOverride is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(306,42): none is not a known user-defined type
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(307,19): variable NiOverride is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(307,30): none is not a known user-defined type
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(312,5): variable NiOverride is undefined
[...]

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(723,16): none is not a known user-defined type
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslThreadController.psc(365,1): the parameter defaults of function centeroncoords in state animating on script sslthreadcontroller do not match the parent script sslthreadmodel
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\fnis.psc(140,16): variable FNISCreatureVersion is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\fnis.psc(140,36): none is not a known user-defined type
[...]

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadBQ00.psc(124,4): variable ConsoleUtil is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadBQ00.psc(124,16): none is not a known user-defined type
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadBQ00.psc(127,2): variable ConsoleUtil is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadBQ00.psc(127,14): none is not a known user-defined type
[...]

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(255,1): variable Pages is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(255,1): only arrays can be indexed
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(255,6): type mismatch while assigning to a none (cast missing or types unrelated)
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(315,44): variable CurrentVersion is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(316,18): variable CurrentVersion is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(316,15): cannot compare a int to a none (cast missing or types unrelated)
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(337,2): LoadCustomContent is not a function or does not exist
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(340,2): UnloadCustomContent is not a function or does not exist
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(343,20): variable TOP_TO_BOTTOM is undefined
D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\zadConfig.psc(343,2): SetCursorFillMode is not a function or does not exist
 

 Do it means I did not copied all the scripts I needed ? But I am pretty sure i copies skse, DDE DDA DDX, FNIS, and Sexlab scripts ?

 

Thank you very much !

Posted
20 minutes ago, jeanjack123 said:

Do it means I did not copied all the scripts I needed ?

Looking at the error report, it tells you exactly what you are missing. Them being racemenu, FNIS creature pack and Consoleutil source scripts. Double check if any of them are in a .bsa (like SLA does), you need them unpacked for the compilation to succeed.

Posted
56 minutes ago, Taki17 said:

Do it means I did not copied all the scripts I needed ?

Thank you for your response =)

I moved the scripts as you said, but CK want .psc files and I have .pex files. I think I need to convert these fils to the right format, how can I do that ? 

Posted
4 minutes ago, jeanjack123 said:

I moved the scripts as you said, but CK want .psc files and I have .pex files. I think I need to convert these fils to the right format, how can I do that ? 

Nope, .pex is the compiled script, .psc is the source script. You need the relevant scripts that are under data/scripts/source when installed to the game.

Posted
12 minutes ago, jeanjack123 said:

I moved the scripts as you said, but CK want .psc files and I have .pex files. I think I need to convert these fils to the right format, how can I do that ? 

If you have an empty data/scripts/sources folder:

 

Have a look into data and watch out for a file called "scripts.rar".

Extract all the script source files (*.psc) from that and drop them into data/scripts/sources.

Posted
23 minutes ago, Taki17 said:

Nope, .pex is the compiled script, .psc is the source script. You need the relevant scripts that are under data/scripts/source when installed to the game.

Okay I understand now the errors I am dealing with are about ssl and papyrus util. What I dont understand because the files he cant link, I have is in my source folder.

 

Spoiler

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslSystemConfig.psc(626,42): GetName is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorLibrary.psc(394,31): GetName is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslThreadModel.psc(1332,29): CreateFloatArray is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorAlias.psc(1247,10): GetCameraState is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslCreatureAnimationSlots.psc(61,25): CreateBoolArray is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslExpressionFactory.psc(34,2): RegisterForModEvent is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslObjectFactory.psc(437,18): GetNthAlias is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\PapyrusUtil.psc(234,16): CreateStringArray is not a function or does not exist

 

D:\Steam\steamapps\common\skyrim\Data\Scripts\Source\sslActorLibrary.psc(308,20): GetEquippedObject is not a function or does not exist

 

 

I don't understand I moved the source scripts of papyrus util and sex lab. It doesn't make sense?

 

 

22 minutes ago, worik said:

If you have an empty data/scripts/sources folder:

 

Have a look into data and watch out for a file called "scripts.rar".

Extract all the script source files (*.psc) from that and drop them into data/scripts/sources.

 

I already done this earlier. But i did this a second time to be sure I have all of the archive content. 

 

 

Thank both of you!

Posted

 V3.10 is up!

 

It adds a fancy new set of restraints, a new delivery quest, a mayor update for Seeking The Curse and other improvements.

Spoiler

124078371_LBS3_10Teaser3.png.d2741392aa62a5a714f5059af1ac7b29.png

 

Warning: After installing this update, do not start a save where Seeking The Curse is active. It'll probably break.

 

 

Change log for v3.10:

 

Added: A new custom set of restraints to go with the custom chastity belt. It consists of a collar, arm cuffs, leg cuffs and a chastity bra.
There's also a new custom delivery bag and custom receipts.
Thanks to @Taki17 for his amazing work.

 

Added: [A Good Fit] A new short introduction quest for the delivery quest.
They have a new custom set and you get to wear it.

 

Added: [On The Clock] A brand new repeatable delivery quest. :)
This quest unlocks after the new quest [A Good Fit].
Thanks to @Krynn and @naaitsab for their suggestion.

 

Added: [Seeking The Curse] Has gotten a big overhaul.
It now uses existing containers and there's also a chance that the restraints are split between multiple locations.
You can now also get a blacksmith to remove them before you go back to the shop.

 

Added: When she removes restraints at the start of a repeatable quest, she'll now lock those back on at the end.
This is for both [Seeking The Curse] and [On The Clock].

 

Added: [Seeking The Curse] The chance that they can unlock your restraints instead of asking you go to do Swain is now configurable in the MCM.
Thanks to @neosuduno for the suggestion.

 

Added: You can now sell your keys and the price you get for them is adjustable in the MCM.
Thanks to @keter682 for the suggestion.

 

Changed: Swain has been moved to the upper part of Dragonsreach. He used to be on the porch, but him being next to all those guard patrols was kinda weird.

 

Fixed: In the shop's inventory, Black Crotch Rope and White Crotch Rope were missing because I put the wrong versions in there.

 

Fixed: In [The Broken Warrior] it wasn't clear that Liza wanted to talk to you so people rushed back to the shop. That froze progress until you returned and spoke to Liza.
I changed some dialogue and added a delay to the objective pop-up to make sure people don't miss it.

 

Fixed: The vanilla quests Hired Muscle and Rescue Mission will no longer select Laura or Katarina as a target.
Thanks to @Naps-On-Dirt for finding it and @worik for sending me in the right direction.

 

Fixed: In [Blending In] 27 didn't have dialogue for when you swapped back to blindfold after reading the ledger. That doesn't sound bad, but I need to add blocking dialogue to keep dialogue from other mods from taking over.
Thanks to @worik for finding it.

 

Fixed: Numerous text and dialogue fixes.

 

Fixed/Changed: Things I probably forgot to document. :P


A huge thanks to my testers. I know I've said it before but I really couldn't have done this without them. ❤️

Posted

oh happy update day!!!  (stuck in UK lockdown so any excuse to try new things is great.)   Thanks for the update, off to try it now..  Stay safe.

Posted
42 minutes ago, Laura 'Lokomootje' said:

 V3.10 is up!

? ?

Erm ... :classic_blush: .. I meant: devious! Naughty and devious! :classic_blush: Yes, that's what I wanted to say.

Posted

Ha! Took a day off from work and such a lovely surprise happens to me! :love:
Coincidence? I think it's the universe wanting me to be kinky in Lauras Shop :P
Thank you for the update! ❤️
 

Posted

an update came out and this has reminded me, in the 'seeking the curse' quest, i remember once getting the chest location right in front of the store, so decided to just walk back to store instead of going back to get the restraint loosened and noticed that this isnt an option.... is that intentional? i always assumed you might get a bonus if you did it without getting loosened or maybe you can still do the quest. maybe make the loosening of quest optional? (also... heels when in bondage.... kinda weird you might be wrapped from head to knees in latex/leather but have no boots/heels on. XD)

i'll try out the new update for now. just wanted to ask these things but always forgot to. :P

Posted

@Laura 'Lokomootje' So I’m not supposed to update with Seeking The Curse running, do you know if there is any issues with trying to find Jade? It’s been siting in my quest log for ages and I’m just curious if I should finish that first before updating. Thank you for the hard work, I’m looking forward to it. Oh a suggestion for the next update if it hasn’t already been looked at. The Please Tie Me Up option was a little broken since you could literally just give all your keys to a follower or put them in the one barrel in the shop, get tied up, get them back and free yourself, rinse and repeat for a mild profit. Perhaps making the barrel non-interactive and having Laura require your follower to turn over their keys might be a good idea? Or just putting a 24 hour time limit on how many freebies Laura is willing to give you before she asks Katarina to boot the now helpless Dragonborn out of the shop. ?

Posted
1 hour ago, johntrine said:

an update came out and this has reminded me, in the 'seeking the curse' quest, i remember once getting the chest location right in front of the store, so decided to just walk back to store instead of going back to get the restraint loosened and noticed that this isnt an option.... is that intentional? i always assumed you might get a bonus if you did it without getting loosened or maybe you can still do the quest. maybe make the loosening of quest optional? (also... heels when in bondage.... kinda weird you might be wrapped from head to knees in latex/leather but have no boots/heels on. XD)

i'll try out the new update for now. just wanted to ask these things but always forgot to. :P

If you mean that you found a chest with legbindings in Whiterun, there should be a marker telling you to go to Sona.

I don't think I'll add it though. It'll only be for the Whiterun branch and it's not really fun to walk all the way to the shop that slowly.

 

About the heels and boots. I'm not a fan of them because they look kinda dangerous to walk in. Maybe I'll add them as an optional thing one day.

 

 

 

1 hour ago, twsnider1138 said:

@Laura 'Lokomootje' So I’m not supposed to update with Seeking The Curse running, do you know if there is any issues with trying to find Jade? It’s been siting in my quest log for ages and I’m just curious if I should finish that first before updating. Thank you for the hard work, I’m looking forward to it. Oh a suggestion for the next update if it hasn’t already been looked at. The Please Tie Me Up option was a little broken since you could literally just give all your keys to a follower or put them in the one barrel in the shop, get tied up, get them back and free yourself, rinse and repeat for a mild profit. Perhaps making the barrel non-interactive and having Laura require your follower to turn over their keys might be a good idea? Or just putting a 24 hour time limit on how many freebies Laura is willing to give you before she asks Katarina to boot the now helpless Dragonborn out of the shop. ?

It's only a problem when STC is running. That quest hasn't been changed so that's not an issue.

I'll take a look at the Tie Me Up thing. There's no way to check if people have keys stashed somewhere else, but I could remove the barrel.

Posted
15 minutes ago, DNess said:

How to start new quest? Laura don't say anything about it to me

If you want the newest quests from the latest release, you need to ask Laura for work, and ask about the collar. If it's a new save, you are required to accept and finish "A Strange Rock" before engaging in any other quest added by this mod.

Posted
26 minutes ago, Laura 'Lokomootje' said:

If you mean that you found a chest with legbindings in Whiterun, there should be a marker telling you to go to Sona.

yeah. i got the straitjacket with legbindings with gag and blindfold in front of the shop by the place with the horse cart and bandits. i saw that part in the quest but still went "what if i just walk in the shop like this". didnt work as i assumed it would. XD

28 minutes ago, Laura 'Lokomootje' said:

I don't think I'll add it though. It'll only be for the Whiterun branch and it's not really fun to walk all the way to the shop that slowly.

i can get that. still would be a fun thing that you can just optionally walk back to the shop, just like that with laura asking "you came here with all that tight bondage?" and get her seal of approval.

29 minutes ago, Laura 'Lokomootje' said:

About the heels and boots. I'm not a fan of them because they look kinda dangerous to walk in. Maybe I'll add them as an optional thing one day.

that would be nice. i always find the idea of walking barefoot while in bondage worse than in heels. if you dont like the ballet heels or restraint boots of DD, you could try some other heels? Frankfranky has some cool heels https://www.nexusmods.com/skyrim/users/20432719?tab=user+files though i am not sure how well would they go with the whole.... bondage theme. :P

Posted
2 minutes ago, johntrine said:

that would be nice. i always find the idea of walking barefoot while in bondage worse than in heels. if you dont like the ballet heels or restraint boots of DD, you could try some other heels? Frankfranky has some cool heels https://www.nexusmods.com/skyrim/users/20432719?tab=user+files though i am not sure how well would they go with the whole.... bondage theme. :P

The issue for me is that it's really dangerous to wear heels when you can't catch your fall. It's especially dangerous when it's combined with a hobble dress. It's not actually dangerous ingame, but it's just me being weird.

I'm not going to add stuff from another mod though. I don't want to make installing it more complex than it needs to be. But like I said, maybe I'll make the DD heels as something optional.

Posted
1 minute ago, Addramyr said:

Cross fingers for SSE port soon? :)

Maybe, I don't do the porting myself so we'll have to wait for someone else to port it and test it first.

Posted
12 minutes ago, Taki17 said:

If you want the newest quests from the latest release, you need to ask Laura for work, and ask about the collar. If it's a new save, you are required to accept and finish "A Strange Rock" before engaging in any other quest added by this mod.

I don't have such dialogue option, only "Locked away" and "Seeking the curse" starters

Posted
8 minutes ago, Laura 'Lokomootje' said:

but it's just me being weird.

No, not only you. :classic_dodgy:I don't like them either.

8 minutes ago, Laura 'Lokomootje' said:

But like I said, maybe I'll make the DD heels as something optional

Good compromise. :classic_happy:

 

Just out of curiosity: My STC items have always been leather or ebonite items until now. I havn't played the newer version, yet (upgraded 15 minutes ago)

But what I didn't get yet, were plain steel or iron items like the chains in the Valkenheim cave and the whole devious rope family :classic_sad:.

 

Is this limited or hard coded in the mod? Random luck? Can it be influenced by me?

E.g. I am thankful that it has always been at least black ebonite. My taste has ultimately decided that the red and white versions look ?

Posted
23 minutes ago, DNess said:

I don't have such dialogue option, only "Locked away" and "Seeking the curse" starters

Well, that's weird. It should be at the very bottom of the dialogue options list. What kind of savegame is this? I take it you upgraded the mod on an already existing savegame? If so, did you follow the upgrade instructions Laura left for this version?

 

Someone else had the same issue come up during testing, their game was bogged down by an exceptionally large number of script property errors, according to the log. Posting your log could reveal more about your issue.

 

18 minutes ago, worik said:

Is this limited or hard coded in the mod? Random luck? Can it be influenced by me?

STC items are unique to LBS, made to serve the purposes of this very quest. You can tell them apart from regular DD items by these restraints having "tough" before their names. So unless new unique items are created and added to the script, you won't see new restraints equipped based on random chance.

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