Jump to content

Devious Devices Framework Development/Beta


Recommended Posts

15 hours ago, Code Serpent said:

I added some quest devices to Devious Lore in my latest update. They have the zad_QuestItem applied to inventory and rendered forms, but I set the deviceKey property to none, since the devices should only be unlocked by scripts and didn't need a key. However, without a key set it turns out players can just remove quest devices anyway?

Another alternative to the one offered above by naaitsab would be to create a special key for those devices and don't place any copies of the key in the world.

Link to comment
1 hour ago, HexBolt8 said:

Another alternative to the one offered above by naaitsab would be to create a special key for those devices and don't place any copies of the key in the world.

Yes that's what I ended up doing as that seemed the easiest way to get the functionality I wanted. I already added descriptions to the devices saying they could only be unlocked by a quest giver, so the additional message boxes wasn't needed.

Link to comment
24 minutes ago, Code Serpent said:

I already added descriptions to the devices saying they could only be unlocked by a quest giver, so the additional message boxes wasn't needed.

But it would be nice to have a special message box, stating that this Device can only be unlocked by Mistress Elarie - now it says that it can be unlocked with any standard restraints key, and when you try exactly that, you're told that you don't have the right key.

With your own message box, you could even go a step further and don't even offer the "unlock" option, a "carry on" would be sufficient.

Link to comment
19 hours ago, Code Serpent said:

Question on quest devices: I added some quest devices to Devious Lore in my latest update. They have the zad_QuestItem applied to inventory and rendered forms, but I set the deviceKey property to none, since the devices should only be unlocked by scripts and didn't need a key. However, without a key set it turns out players can just remove quest devices anyway? Is this intended behavior?

 

Yes, it's intended (among things to model devices that don't have a key, e.g. ropes)

 

If you want these devices not to be removed by the player, make them inescapable (set escape/struggle/pick chances to zero) or set a key that doesn't drop in game.

Link to comment
3 hours ago, CaptainJ03 said:

But it would be nice to have a special message box, stating that this Device can only be unlocked by Mistress Elarie - now it says that it can be unlocked with any standard restraints key, and when you try exactly that, you're told that you don't have the right key.

With your own message box, you could even go a step further and don't even offer the "unlock" option, a "carry on" would be sufficient.

 

This is IMHO the cleanest way to implement this.

Link to comment
20 hours ago, kaxat said:

I encountered an SMP physics issue with the new RestrictiveBootsHarnessSMP.xml file in 5.2. When someone in the area is wearing Iron Chain Harness (Ankles) I will sometimes get a massive frame rate drop. From a solid 60FPS to 0.4FPS. It does not always happen instantly when someone equips these boots. But stick around long enough and the FPS will suddenly tank. Selecting the actor, opening inventory, and removing the item from them, will restore me to 60 FPS.

I am the second person I am aware of with this issue. Both of us are experiencing it on the latest version of FasterSMP. Both of us have fast CPUs and typically experience no FPS drops with SMP clothing. Other DD HDT clothes also work fine. So far it is only the ones that load the above XML which cause issue. One other commonality we both have is that we are running 3BA and have compiled those versions of the BodySlide files.

 

I believe the following was the "commit" that started causing an issue. @leakim found that reverting that one XML file to the DD 5.2-beta10 RC1 version was sufficient to patch this issue. Leakim did all the hard work isolating this. When I encountered this issue I knew almost instantly what the cause was because I had already read his post.

 


I hope that info helps. I can do more testing as needed.

 

The only tweaks to that XML was to bring it in line with recommendations from the FSMP discord, since we've been trying to resolve the chains not connecting.  All I changed were some numbers, I doubt that would be causing your frame drops. It's more likely an issue with a lot of SMP outfits going at the same time. When I was getting frame drops was when I moved the bones around or add/removed bones. What is shipped with 5.2 doesn't drop frames for me any worse than SMP in general.

 

Additionally, those xmls use the same values as the ankle chains. Are you seeing the same thing with ankle chains like the iron fetters?

Have you tried doing an smp reset?

 

If the older xml works for you, fine. But I was apparently breaking several physics rules with them, so they aren't right and I won't be reverting the changes.

 

Edit: That sounds a little more final than I meant. I am still tweaking XMLs from time to time. Next time I play with them, I might have more tweaks along the same lines, and if I get something good enough, I will put a SMP patch out. But the ones in the earlier betas and 5.1 are not the right way to implement SMP on the chains, which is why the statement 'not reverting'. The XMLs are actually partially (or maybe even wholely I don't know anymomre) responsible for why they aren't connecting at this point when using FSMP.

Edited by zarantha
Link to comment
On 3/18/2023 at 5:12 PM, zarantha said:

 

The only tweaks to that XML was to bring it in line with recommendations from the FSMP discord, since we've been trying to resolve the chains not connecting.  All I changed were some numbers, I doubt that would be causing your frame drops. It's more likely an issue with a lot of SMP outfits going at the same time. When I was getting frame drops was when I moved the bones around or add/removed bones. What is shipped with 5.2 doesn't drop frames for me any worse than SMP in general.

 

Additionally, those xmls use the same values as the ankle chains. Are you seeing the same thing with ankle chains like the iron fetters?

Have you tried doing an smp reset?

 

If the older xml works for you, fine. But I was apparently breaking several physics rules with them, so they aren't right and I won't be reverting the changes.

 

Edit: That sounds a little more final than I meant. I am still tweaking XMLs from time to time. Next time I play with them, I might have more tweaks along the same lines, and if I get something good enough, I will put a SMP patch out. But the ones in the earlier betas and 5.1 are not the right way to implement SMP on the chains, which is why the statement 'not reverting'. The XMLs are actually partially (or maybe even wholely I don't know anymomre) responsible for why they aren't connecting at this point when using FSMP.

 

I understand the skepticism. I shared it. In the linked thread my first couple posts were helping Leakim ease his SMP load a little bit. I suspected the frame rate would gradually rise. I was wrong.

I have experienced SMP overload in the past. With 50-100 SMP clothes in the area my FPS would drop to around 40. As the NPCs would leave it would gradually return to 60. This issue has different symptoms. I suddenly go from 60FPS to less than 1FPS. It is instantaneous. And the instant I unequipped those boots I jumped back to 60 FPS. I did try an smp reset with the boots still on. That did nothing. As luck would have it I had this issue occur with only one SMP clothing item in the area (those boots) + SMP physics on the player. And again <1 FPS until I unequipped those boots. Suddenly 60 FPS.

 

If you are interested in replicating this issue I want to note a few details that might be important:

  • We are both using the latest version of FSMP. Personally I enabled the AVX512 extensions but not CUDA.
  • The issue does not usually happen instantly when the boots are equipped. It can take a minute or two after the boots are equipped. When it does happen you will know. The game becomes unplayable.
  • We are both using 3BA versions of the models and the 3BA body. But it does not matter whether the actor is in CBPC mode.
  • Leakim switched to the old .xml file a while ago and the issue went away.

If you need me to do more testing just ask. I will test the prisoner chains. It is possible those cause this too.

 

This is probably more of an SMP bug than anything else. A tweak to your mod might prevent FSMP from experiencing the bug. But as I understand it FSMP limits its CPU time to only 30% of the frame render time. That percent can be altered in its config. I do not believe it should cause such a drastic plummet in FPS when it is working properly.

Link to comment
16 hours ago, Mister X said:

Heyho,

 

I just scribbled some stuff into an INI file, to try and get certain Devious Devices to provide some warmth for the CC survival DLC. Requires Keyword Item Distributor (KID)

All based on Keywords, I'd be happy about your thoughts; more stuff, less stuff, does it work at all?

Devious Devices_KID.ini 320 B · 4 downloads

 

I wonder if it works with sunhelm too.

 

Edit: Looks like it should, sunhelm also uses the Survival_ArmorWarm and Survival_ArmorCold keywords. But it doesn't show the warmth on the inventory card, probably because rendered (which has the keyword) and inventory (which doesn't) are different records.

Edited by zarantha
Link to comment
4 hours ago, zarantha said:

But it doesn't show the warmth on the inventory card, probably because rendered (which has the keyword) and inventory (which doesn't) are different records.

 

Well, it's based on deviceType keywords. So everything that carries zad_DeviousSuit gets the warmth keyword. I'm not sure which of device pair is actually seen as worn by the game, rendered or inventory, but that's the one that should carry zad_DeviousSuit. I skimmed a few of the base framework, and there both of the pair carried said keyword.

 

I didn't want to simply give the keyword to anything by DD, as it wouldn't make sense for normal shackles to warm you up, as example.

Link to comment
4 hours ago, Mister X said:

I'm not sure which of device pair is actually seen as worn by the game, rendered or inventory,

 

Rendered or script is what is seen as worn. I can't think of a better way to do this other than how you have. It was more an observation than a criticism.

 

The inventory catsuits don't seem to be set up that way to have the zad_DeviousSuit keyword, nor are the first two straitjacket dresses i just spot checked in DDx . inventory records have zad_InventoryDevice, but that seems to be everything and not something you'd want to attach the warm or cold keywords to. There's no distinction between suits or not with that keyword. So basically, I think it's just a limitation with how DD is configured. We won't see the warmth on the cards, but the keywords should be applied and used when the item is worn.

 

Examples of items without zad_DeviousSuit:

Spoiler


image.png.c760d19490ee8a99cc628a20f49ee4e6.png

 

image.png.389e3c0b3887cd5fd50b34609beb8ac6.png

 

 

 

As to actual functionality, I could see the armorcold keyword distributed by checking the console, but not the armor warm.

 

I'm wearing a pink oil body suit (devious lore, same as pink catsuit) no keyword is attached:

Spoiler


image.png.6937eda79e0c95cacc754d8cc28be915.png

 


But the pony boots and paw mittens have the keyword:
 

Spoiler


paw mittens:
image.png.7fbedcc3c4186c2af1845833e1990b5a.png

 

pony boots:
image.png.0431715123bade105449d8cc7affdc16.png

 

So the ini is half working for me. po3_KeywordItemDistributor.log shows some skipping because I don't have those mods. I'm not sure why the armorwarm isn't applied. As far as I understand it from the mod page, those filters should be ignored but not the first keyword.

 

[06:50:47:682]         [Devious Devices_KID.ini] Survival_ArmorWarm [0x2ED9~Update.esm] INFO - using existing keyword
[06:50:47:682]             [Devious Devices_KID.ini] Filter (*Thermal) SKIP - form doesn't exist
[06:50:47:682]             [Devious Devices_KID.ini] Filter (SLUTS.esp) SKIP - mod cannot be found
[06:50:47:682]         [Devious Devices_KID.ini] Survival_ArmorCold [0x2ED8~Update.esm] INFO - using existing keyword

 

Changed the ini to remove thermal and sluts as a test and now I see it applied to the catsuit too in the console.

Spoiler


image.png.7e8e5256a69c47d3229e6e8976fbd5d0.png

 

 

So this works for me:

 

; add survival Warm Armor keyword to all Devious suits
;Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit,*Thermal+SLUTS.esp|-T
Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit|-T

; add Survival Cold Armor keyword to all smaller Devious Items
Keyword = Survival_ArmorCold|Armor|zad_DeviousBoots,zad_DeviousBra,zad_DeviousCorset,zad_DeviousGloves,zad_DeviousHarness|-T

 

 

This is really cool, hopefully this will be sufficient to keep me from freezing while I'm wandering around. :)

I've wanted to apply the warmth keywords for a while, but the last time I thought of doing it was before KID, so it would have involved a lot of patching I didn't feel like doing.

Edited by zarantha
Link to comment
13 minutes ago, zarantha said:

 

Rendered or script is what is seen as worn. I can't think of a better way to do this other than how you have. It was more an observation than a criticism.

 

The inventory catsuits don't seem to be set up that way to have the zad_DeviousSuit keyword, nor are the first two straitjacket dresses i just spot checked in DDx . inventory records have zad_InventoryDevice, but that seems to be everything and not something you'd want to attach the warm or cold keywords to. There's no distinction between suits or not with that keyword. So basically, I think it's just a limitation with how DD is configured. We won't see the warmth on the cards, but the keywords should be applied and used when the item is worn.

 

Examples of items without zad_DeviousSuit:

  Reveal hidden contents


image.png.c760d19490ee8a99cc628a20f49ee4e6.png

 

image.png.389e3c0b3887cd5fd50b34609beb8ac6.png

 

 

 

As to actual functionality, I could see the armorcold keyword distributed by checking the console, but not the armor warm.

 

I'm wearing a pink oil body suit (devious lore, same as pink catsuit) no keyword is attached:

  Reveal hidden contents


image.png.6937eda79e0c95cacc754d8cc28be915.png

 


But the pony boots and paw mittens have the keyword:
 

  Reveal hidden contents


paw mittens:
image.png.7fbedcc3c4186c2af1845833e1990b5a.png

 

pony boots:
image.png.0431715123bade105449d8cc7affdc16.png

 

So the ini is half working for me. po3_KeywordItemDistributor.log shows some skipping because I don't have those mods. I'm not sure why the armorwarm isn't applied. As far as I understand it from the mod page, those filters should be ignored but not the first keyword.

 

[06:50:47:682]         [Devious Devices_KID.ini] Survival_ArmorWarm [0x2ED9~Update.esm] INFO - using existing keyword
[06:50:47:682]             [Devious Devices_KID.ini] Filter (*Thermal) SKIP - form doesn't exist
[06:50:47:682]             [Devious Devices_KID.ini] Filter (SLUTS.esp) SKIP - mod cannot be found
[06:50:47:682]         [Devious Devices_KID.ini] Survival_ArmorCold [0x2ED8~Update.esm] INFO - using existing keyword

 

Changed the ini to remove thermal and sluts as a test and now I see it applied to the catsuit too in the console.

  Reveal hidden contents


image.png.7e8e5256a69c47d3229e6e8976fbd5d0.png

 

 

So this works for me:

 

; add survival Warm Armor keyword to all Devious suits
;Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit,*Thermal+SLUTS.esp|-T
Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit|-T

; add Survival Cold Armor keyword to all smaller Devious Items
Keyword = Survival_ArmorCold|Armor|zad_DeviousBoots,zad_DeviousBra,zad_DeviousCorset,zad_DeviousGloves,zad_DeviousHarness|-T

 

 

This is really cool, hopefully this will be sufficient to keep me from freezing while I'm wandering around. :)

I've wanted to apply the warmth keywords for a while, but the last time I thought of doing it was before KID, so it would have involved a lot of patching I didn't feel like doing.

 

Besides KID, you can also try SPID, FormList Manipulator 

Link to comment
18 hours ago, zarantha said:

 

Rendered or script is what is seen as worn. I can't think of a better way to do this other than how you have. It was more an observation than a criticism.

 

The inventory catsuits don't seem to be set up that way to have the zad_DeviousSuit keyword, nor are the first two straitjacket dresses i just spot checked in DDx . inventory records have zad_InventoryDevice, but that seems to be everything and not something you'd want to attach the warm or cold keywords to. There's no distinction between suits or not with that keyword. So basically, I think it's just a limitation with how DD is configured. We won't see the warmth on the cards, but the keywords should be applied and used when the item is worn.

 

Examples of items without zad_DeviousSuit:

  Reveal hidden contents


image.png.c760d19490ee8a99cc628a20f49ee4e6.png

 

image.png.389e3c0b3887cd5fd50b34609beb8ac6.png

 

 

 

As to actual functionality, I could see the armorcold keyword distributed by checking the console, but not the armor warm.

 

I'm wearing a pink oil body suit (devious lore, same as pink catsuit) no keyword is attached:

  Reveal hidden contents


image.png.6937eda79e0c95cacc754d8cc28be915.png

 


But the pony boots and paw mittens have the keyword:
 

  Reveal hidden contents


paw mittens:
image.png.7fbedcc3c4186c2af1845833e1990b5a.png

 

pony boots:
image.png.0431715123bade105449d8cc7affdc16.png

 

So the ini is half working for me. po3_KeywordItemDistributor.log shows some skipping because I don't have those mods. I'm not sure why the armorwarm isn't applied. As far as I understand it from the mod page, those filters should be ignored but not the first keyword.

 

[06:50:47:682]         [Devious Devices_KID.ini] Survival_ArmorWarm [0x2ED9~Update.esm] INFO - using existing keyword
[06:50:47:682]             [Devious Devices_KID.ini] Filter (*Thermal) SKIP - form doesn't exist
[06:50:47:682]             [Devious Devices_KID.ini] Filter (SLUTS.esp) SKIP - mod cannot be found
[06:50:47:682]         [Devious Devices_KID.ini] Survival_ArmorCold [0x2ED8~Update.esm] INFO - using existing keyword

 

Changed the ini to remove thermal and sluts as a test and now I see it applied to the catsuit too in the console.

  Reveal hidden contents


image.png.7e8e5256a69c47d3229e6e8976fbd5d0.png

 

 

So this works for me:

 

; add survival Warm Armor keyword to all Devious suits
;Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit,*Thermal+SLUTS.esp|-T
Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit|-T

; add Survival Cold Armor keyword to all smaller Devious Items
Keyword = Survival_ArmorCold|Armor|zad_DeviousBoots,zad_DeviousBra,zad_DeviousCorset,zad_DeviousGloves,zad_DeviousHarness|-T

 

 

This is really cool, hopefully this will be sufficient to keep me from freezing while I'm wandering around. :)

I've wanted to apply the warmth keywords for a while, but the last time I thought of doing it was before KID, so it would have involved a lot of patching I didn't feel like doing.

 

Well, no idea why it didn't want to use it in the first place, but ok. So, I've simply split it up like that, should work better :D 

;;; BASIC FRAMEWORK
; add survival Warm Armor keyword to all Devious suits
Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit|-T

; add Survival Cold Armor keyword to all smaller Devious Items
Keyword = Survival_ArmorCold|Armor|zad_DeviousBoots,zad_DeviousBra,zad_DeviousCorset,zad_DeviousGloves,zad_DeviousHarness|-T

;;; ADDON PATCHES
; add survival Warm Armor keyword to all Thermal items from S.L.U.T.S
Keyword = Survival_ArmorWarm|Armor|*Thermal+SLUTS.esp|-T

 

18 hours ago, tznvlw said:

 

Besides KID, you can also try SPID, FormList Manipulator 

 

This then will need a totally different approach than mine, as those tools can't distribute keywords to items, but that's the way to go here.

Devious Devices_KID.ini

Link to comment
3 hours ago, Mister X said:

 

Well, no idea why it didn't want to use it in the first place, but ok. So, I've simply split it up like that, should work better :D 

;;; BASIC FRAMEWORK
; add survival Warm Armor keyword to all Devious suits
Keyword = Survival_ArmorWarm|Armor|zad_DeviousSuit|-T

; add Survival Cold Armor keyword to all smaller Devious Items
Keyword = Survival_ArmorCold|Armor|zad_DeviousBoots,zad_DeviousBra,zad_DeviousCorset,zad_DeviousGloves,zad_DeviousHarness|-T

;;; ADDON PATCHES
; add survival Warm Armor keyword to all Thermal items from S.L.U.T.S
Keyword = Survival_ArmorWarm|Armor|*Thermal+SLUTS.esp|-T

 

 

This then will need a totally different approach than mine, as those tools can't distribute keywords to items, but that's the way to go here.

Devious Devices_KID.ini 472 B · 1 download

 

The SPID already includes the functionality of kid. but i didn't dig into it ?

Link to comment

Love your work but I had a question on the implementation of how your character triggers devious devices.  Currently any time you perform certain actions such as looting stuff or opening doors via the Cursed Loot mod there's a chance that you might find and equip a devious device or trigger an event based on a percentage chance.  In a future version of the Cursed Loot it would be cool if you had the option of instead of using a set percentage of finding something you could choose instead to automatically trigger a devious device event by breaking a lockpick while trying to unlock a lock, stepping on a trap plate, or tripping a trip wire.  This would add to the system more of a trap avoidance test as opposed to just reacting to whatever the RNG happens to do.  What do you guys think?  Take care and goodnight :)

Edited by SkyTem
Link to comment
3 hours ago, SkyTem said:

Love your work but I had a question on the implementation of how your character triggers devious devices.  Currently any time you perform certain actions such as looting stuff or opening doors via the Cursed Loot mod there's a chance that you might find and equip a devious device or trigger an event based on a percentage chance.  In a future version of the Cursed Loot it would be cool if you had the option of instead of using a set percentage of finding something you could choose instead to automatically trigger a devious device event by breaking a lockpick while trying to unlock a lock, stepping on a trap plate, or tripping a trip wire.  This would add to the system more of a trap avoidance test as opposed to just reacting to whatever the RNG happens to do.  What do you guys think?  Take care and goodnight :)

You should probably ask this in the Cursed Loot thread. This thread is for the main DD framework.

Link to comment
1 hour ago, Murphiee said:

Do devices send a modevent on device orgasm? from testing it doesn't send a default sexlab orgasm event, do you have something internal?

Yes, it's "DeviceActorOrgasm"

 

You can get the "SendModEvent" from the main script (zadLibs.psc) to see what events are used.

Link to comment
9 hours ago, JACKY22333 said:

I have found a problem when I am using DD 5.2. I can replace the devices with other armor when the devices still lock on me. After that, I can take off the devices without keys and struggle.

(sorry for my poor English because it is not my first language)

 

You have a conflict. Make sure you do not have any old versions of DD installed, or patches for old versions of DD, or the separate old versions of DDa, DDi, DDx, DDc, DD for Him, or DD BRRF.

 

Also check the known issues in the troubleshooting post.

Link to comment
On 3/26/2023 at 1:01 AM, zarantha said:

 

You have a conflict. Make sure you do not have any old versions of DD installed, or patches for old versions of DD, or the separate old versions of DDa, DDi, DDx, DDc, DD for Him, or DD BRRF.

 

Also check the known issues in the troubleshooting post.

 

I am having the same problem with the same easy removal problem.
I have checked the troubleshooting but there does not seem to be any applicable items.

Link to comment
12 hours ago, NeitoMitoRonn said:

 

I am having the same problem with the same easy removal problem.
I have checked the troubleshooting but there does not seem to be any applicable items.

 

And nothing is overwriting DD? The easy removal is because scripts are broken. Installing the old mods DDa, DDi, DDx, DDc, DD for Him, or DD BRRF over DD SE 5.2 will do this, as will installing any old patches for previous versions of DD from anywhere.

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