Jump to content

Devious Devices Framework Development/Beta


Recommended Posts

2 hours ago, HexBolt8 said:

I have a question about the unblocked plug removal feature (and thank you, Kimy, for adding it to DD 5.2).

 

Right now, StoreUnblockedPlugs() is only called from StartValidDDAnimation(), in zadBQ00.  That's good, but unfortunately, it's going to miss most SexLab animations that are started generically.

 

@Kimy, would it be possible to add a StoreUnblockedPlugs() call to the OnAnimationStart in zadBQ00 to handle unblocked plugs for all sex?  Its counterpart, RetrievePlugs(), is already in the OnAnimationEnd event handling, so this would be parallel, removing and restoring unblocked plugs at the start and end of animations.  (Or, for somewhat better efficiency, StoreUnblockedPlugs() could instead be inserted into Logic() after the IsValidAnimation check, and then retry IsValidAnimation.)

 

Without this change, sex started from most mods would not benefit from unblocked plug removal, and therefore encounter restrictions in the animation filter (e.g., vaginal sex would be blocked by a simple removeable vaginal plug with no chastity belt equipped).

 

Let me have a look at that! :)

Link to comment

I"m making some new dress devices for the next Devious Lore update, and I noticed something. It looks like the first-person mesh for all dresses is just the standard black hobble dress. Since the dresses don't have any fabric on the arms, it's probably best to replace this with a standard bare arms first person mesh. The vanilla model 'Armor\Bandit\1stPersonBody1F_1.nif' should do this nicely.

Link to comment
18 hours ago, lolic said:

I was looking through the zadLibs API (5.2 Beta 7) for a project of mine and stumbled upon something strange in GetSlotMaskForDeviceType()

  Reveal hidden contents

 

GetSlotMaskForDeviceType(Keyword kw)
...
	elseif kw == zad_DeviousHeavyBondage
		If playerRef.wornhaskeyword(zad_DeviousStraitJacket)
			return Armor.GetMaskForSlot(32)
  		Else    
			return Armor.GetMaskForSlot(46)
		EndIf 
...

Doesn't this create a weird edge-case? Suppose we want to check the rendered "zad_DeviousHeavyBondage" device on a NPC with armbinders and the player happens to wear a Straitjacket, then this function would falsely return slotmask 32 for the NPC, correct? This could potentially lead to "UnlockDevice()" removing the wrong or no device from a NPC if the player wears a Straitjacket and modders don't explicitly pass the rendered device. I think you could fix it by moving the Straitjacket check into the "GetWornRenderedDeviceByKeyword" function, since the actor we are checking is present there as an input.

 

I had something like this in mind

  Reveal hidden contents
Int Function GetSlotMaskForDeviceType(Keyword kw)
	...
	elseif kw == zad_DeviousHeavyBondage 
	; Only return slotmask 46 for things like armbinders
		return Armor.GetMaskForSlot(46)
	elseif kw == zad_DeviousStraitJacket
	; Make explicit check for StraitJacket in case someone uses it
		return Armor.GetMaskForSlot(32)
	...

Armor Function GetWornRenderedDeviceByKeyword(Actor a, Keyword kw)
	Int i = GetSlotMaskForDeviceType(kw)
	if i == -1
		return None
	EndIf
	Armor x = a.GetWornForm(i) As Armor 
	if x && x.HasKeyWord(zad_Lockable)
	; for Straitjackets, x would be 'None' here if kw is HeavyBondage,
	; since you cant equip both straits and armbinders
		return x
	EndIf
	if !x && kw == zad_DeviousHeavyBondage 
	; Don't catch cases where x was 'None' for other keywords
	; Now check the body slot for a device
		i = GetMaskForSlot(32)
		x = a.GetWornForm(i) as Armor
		if x && x.HasKeyWord(zad_Lockable) && x.HasKeyword(kw)
			return x
	EndIf
	return none
EndFunction

 

where GetWornRenderedDevice would now work as before, returning the correct device, and if you check for HeavyBondage and nothing is found on slot 46, it would check slot 32 for straitjackets.

 

Cheers

 

I'm not sure if this is a concern since Heavy Bondage gear in it's current design iteration is mutually exclusive. You cannot have more than one equipped.

Link to comment
3 hours ago, Derenriche said:

 

I'm not sure if this is a concern since Heavy Bondage gear in it's current design iteration is mutually exclusive. You cannot have more than one equipped.

I'm aware of that. The situation I describe involves the player and a NPC: if both are wearing Heavy Bondage gear like armbinders, everything is fine. If the player wears a Straitjacket and the NPC an armbinder, the slotmask function would return slot 32 for the NPC (instead of 46) because of the "playerRef.HasWornKeyword(Straitjacket)" check even though the NPC is wearing an armbinder. What the player is wearing should not affect the outcome for other actors.

Link to comment
15 hours ago, lolic said:

I'm aware of that. The situation I describe involves the player and a NPC: if both are wearing Heavy Bondage gear like armbinders, everything is fine. If the player wears a Straitjacket and the NPC an armbinder, the slotmask function would return slot 32 for the NPC (instead of 46) because of the "playerRef.HasWornKeyword(Straitjacket)" check even though the NPC is wearing an armbinder. What the player is wearing should not affect the outcome for other actors.

There is also issue with SwapDevice functions, which use body slots. If @Kimy is interested, I have created xEdit script which will add slot 32 too all devices with zad_DeviousHevyBondage. Of couse, this will only solve problem in framework, but other mods which adds straitjackets/boxbinders will have same issue.

Download: DD32Patch.pas

 

I will also hijack this commend to talk again about expressions. I have worked on it some more and found strange bugs with skyrim engine. Basically, if NPC have gag effect, and any item is transfered to/from the NPC, the gag effect will dissapier. I have tested it and it looks lika that this issue was also present in previous versions (before my expression systemn was added). So I experiemnted with it some more and found out that it is only issue with render device enchantment. This isn't case for inventory device. So my theory is that this bug is present for all armors which have no name. Also, this is only relevant for NPCs, player works without problem.

So to fix this issue, I have added check that will fastly reequip gag if the effect ends when the gag is still present. I also added some optimilazions and removed OnCellDetach() and OnUnload(), as somehow their counterparts are not called for NPCs (OnCellAttach, OnLoad), causing gag to be permanently paused after NPC leaves player cell.

 

I also created patch for BRRF, so the version 2 also works with BRRF. It is directly in zip, so if you don't want to use it, you will have to disable in MO before starting the game.

 

Lastly, I also did some small fixes/added QOL additions

  • I create new orgasm/edge events, as the current ones are quite outdated. New ones will provide more informations (actual actor reference and arousal change). Old evets are still present.
  • Bondage mittens only drops items which have name (some other mods also use items without name which can't be accessed in inventory anyway. They can oénly be equipped with script, so there is no reason to prevent this).
    • Because all render device have no name, the device.HasKeyword(libs.zad_Lockable) check is no longer required, but i didn't remove for now (will let Kimy decide on what to do with it).

If someone have any idea or issue with expressions, please let me know and I will give it a look.

Download: Devious Expressions 2.1.zip

 

Link to comment

Continuing from my earlier attempt to fix the various little errors and inconsistencies with the DD inventory devices, here is an updated version of it for a merge request. Contains the fixes from the previous submission since I've tweaked them a bit.

  • Correcting inventory device descriptions - eliminating typos, correcting mistakes and punctuation, assigning a description where missing, rephrasing text where needed
  • Same as above, but for message popups accross all plugins
  • Created and assigned world models for several transparent items that lacked them
  • Added the correct rope world models for rope restraints that had red leather models assigned
  • Brought over two world models that were missing from the archive, since their file paths were still pointing to a ZAP directory. Also assigned them to the appropriate shackles.
  • Assigned the correct world model to the breast yoke
  • Solved the invisible ringed slave boots for UUNP by including a 0 weight version of the mesh
  • Fixed the elbow shackles not being able to be unequipped due to an incorrectly assigned message popup and keyword checks

Issues unresolved, but noted:

  • The zipsuit and the transparent heels lack a proper world model. One needs to be created.  - no longer an issue thanks to @audhol
  • All of the restrictive items have a transparent version, except for the gloves. Might create one later, however I've never really dabbled in outfit studio.

small DD fixes continued.7z

 

Edited by Taki17
Link to comment
58 minutes ago, Taki17 said:
  • The zipsuit and the transparent heels lack a proper world model. One needs to be created.
  • All of the restrictive items have a transparent version, except for the gloves. Might create one later, however I've never really dabbled in outfit studio.

Zipsuit(LE).7z

Zipsuit(SE).7z

Ground models for the zipsuit and heels with same naming convention as the _1 _0

 

I can look at doing a transparent version of the gloves too if you'd like?

Link to comment
15 minutes ago, audhol said:

Ground models for the zipsuit and heels with same naming convention as the _1 _0

Nice. I guess I can cross those off the list. Much obliged.

 

16 minutes ago, audhol said:

I can look at doing a transparent version of the gloves too if you'd like?

If you are willing and able, please do.

Link to comment
1 hour ago, naaitsab said:

 

Do you make these with outfitstudio/nifskope or do you need something like Blender or 3DS max? 

Its like anything, its really easy when you know how.

Load into outfit studio an existing _go because it will already have the collision mesh surrounding it, so if its for a pair of shoes load an _go for a different pair of shoes.

 

then pose the mesh you want to add so its at the same xyz center as the mesh your using for a donor. If its a pair of shoes use the mask tool with mirroring disabled to mask 1 shoe then you can use the move tool to align the other to the first.

 

double click each part of the mesh and unclick skinned as you dont need the bone weights for a _go

 

delete the donor mesh and save your new _go with the filename of your choosing.

 

job done, simples.

Link to comment
3 hours ago, Taki17 said:

If you are willing and able, please do.

Spoiler

2059134482_NewOutfit_-OutfitStudio09_09_202221_46_21.png.96dc12f39c170d2b67aaa81f03885e74.png494443944_NewOutfit_-OutfitStudio09_09_202221_46_58.png.10e389978d9a4bc19edc26a4b613fc72.png977216953_NewOutfit_-OutfitStudio09_09_202221_47_10.png.e1f39a71ba371577df7a435edc079fbf.png

 

 

FIGJAM

 

 

Just need to make seperate version for eack of the bodyslides but I figured out how its done now so making trans version of anything else gonna be easy-peasy.

 

Ignore the misfitting gloves, its because I'm using the _1 nif with the reference body and hands.

Edited by audhol
Link to comment

My "Zip-Binder" is still a W.I.P. - BUT!, it's coming along nicely.

 

image.jpeg.83c66dbdb248ece736df9d662ec44dfc.jpeg

 

My thanks to @audhol for his guidance. Here is what's still on the list for it.

- A new zipper. The current zipper that you see there was salvaged from the catsuit, and in my opinion, looks "mushy". The texture is smeared out. It works fine on the catsuit because of where it is and there is usually other gear on top of it. But as an armbinder, it's the "top layer" and what you see. So, I am currently in the process of building a new custom mesh piece to slot in place between the leather flaps with a new zipper texture I have generated.
- Add a cuff around the wrists? I'm on the fence on this one - what do you guys think?

- Clean up the clipping.

- Correct the shading and normal maps.

- Color variants: Black, red, white, purple, blue & pink - matte & ebonite.

 

This has certainly been a learning curve for me. Right now, I have it as just an overwrite of the standard elbowbinder (don't worry, I made backups!). I'll make an .esp when I'm done for people to play with. I have a suspicion the weights are going to be goofy and I'll need some testing on it. I run a very customized frame for my girl, so stock stuff doesn't always fit right (What? I like tits on a stick. Fight me.)

I'll post here with updates as they come. If this goes over well, I'll try my hand at more stuff. This has been fun!

Link to comment
12 minutes ago, serranna said:

Am I missing something? There are already transparent gloves in DD. Unless we are talking about the short gloves that only go up to the wrists.

 

What I would like to see is a transparent catsuit with no visible zippers. At least without having to modify it myself in CK.

 

I'm adding a zap for the zippers in the SE bodyslides. Same could be done for LE too if someone wants to.

Link to comment
2 hours ago, serranna said:

Am I missing something? There are already transparent gloves in DD. Unless we are talking about the short gloves that only go up to the wrists.

I was talking about the transparent restrictive gloves. DD already had the collar, corset and boots in a transparent version, however the gloves of this set were strangely absent. Not for much longer though, seeing the progress @audhol is making with them.

Link to comment
4 hours ago, Zenagia said:

- Add a cuff around the wrists? I'm on the fence on this one - what do you guys think?

 

 

Looks great so far!

 

- And I would love to see a cuff around the wrists to further distinguish your zip-binder from the original. But you do you.

Link to comment
1 hour ago, Taki17 said:

I was talking about the transparent restrictive gloves.

 

Again, maybe I'm missing something, but what are these then?

 

Spoiler

ScreenShot1262.png.de2abba7c5aac360015153bf7fe40eed.png

 

OK nevermind all that. After all this time I never realized there are 2 different versions of lockable gloves. Now I understand what's going on.

 

Edited by serranna
Link to comment

@Taki17

 

Spoiler

1648084991_SkyrimSpecialEdition10_09_202213_00_17.png.2c09cc29b5d6e1dca7c2eb492e26f8e2.png2086221474_SkyrimSpecialEdition10_09_202213_04_35.png.c0e5d237db6064a4bba62e1bd844ce27.png771334485_SkyrimSpecialEdition10_09_202213_04_48.png.2369d87948c1eedaa69c8f75530c0eb9.png336431925_SkyrimSpecialEdition10_09_202213_05_03.png.1f160d57a824a3a75ab44f286b18269e.png

 

 

SE CBBE and 3ba versions done

Added the bodyslides for both to the relevant slider sets and slider groups 

Added the AA, script instance and inventory to the 5.2 beta ESM

Added relevant ground model

Packed in same format as the fomod so you can just copy it over.

 

Will now work on the uunp version and CBBE LE

 

Insidentaly is it intentional that all the other transparent items use the black ebonite for their _go? I sdtarted to replace some then thought maybe there was a reason behind it, let me know if you want me to continue and repolace them all with matching transparent _go's.

 

TransparentGloves.7z

Link to comment

Another thing I noticed when looking at descriptions was the somewhat inconsistent format of device names. I'm thinking about unifying them, however I'm yet to decide which format should I go with. Maybe you people can help me decide.

 

Currently, we got two distinct naming conventions:

 <color> <material> <item type> (item attribute) (extra item attribute) - example: Black Leather Gag (Ball) (Harness)

and

<color> <material> <item attribute> <item type>, <extra item attribute> - example: Red Leather Restrictive Chastity Corset, Open

 

I think both are viable, and have their own benefits when it comes to sorting as well, however I'd much rather have all device names conforming to the same format, for the sake of consistency.

 

The first format is useful if you want your items organized by color + material first, then by the item type. By this, all white ebonite gags will be grouped together in the inventory, for example. Might be easier to match it with a regex as well, if that's ever needed.

 

The second format looks more natural and is useful if you want items of a "set" to be grouped together in the inventory list, for example all parts of the red leather restrictive set will be grouped together.

 

So my question is - which one would you prefer? Think of a scenario like walking into Laura's Bondage Shop and asking the shopkeeper to look at the items, which default sorting would give you a more logical and transparent view of items and their categories?

Link to comment
18 minutes ago, audhol said:

SE CBBE and 3ba versions done

Added the bodyslides for both to the relevant slider sets and slider groups 

Added the AA, script instance and inventory to the 5.2 beta ESM

Added relevant ground model

Packed in same format as the fomod so you can just copy it over.

 

Will now work on the uunp version and CBBE LE

Nice. I cannot test it since I don't use SSE, so I have to wait for the UUNP version. Anyway, thanks for jumping to the rescue to address the issue of this missing restraint.

 

18 minutes ago, audhol said:

Insidentaly is it intentional that all the other transparent items use the black ebonite for their _go? I sdtarted to replace some then thought maybe there was a reason behind it, let me know if you want me to continue and repolace them all with matching transparent _go's.

I have already went ahead and edited the rest of the transparent _go items in nifskope by adding and alpha property and the appropriate transparent textures, they are in the download I provided in the post. Only the zipsuit and the matching heels were lacking any _go items that couldn't be created this way by me.

 

And since the world items are body type agnostic, guess they only need to be converted to an SSE-compatible format.

Edited by Taki17
Link to comment
2 hours ago, audhol said:

@Taki17

 

  Reveal hidden contents

1648084991_SkyrimSpecialEdition10_09_202213_00_17.png.2c09cc29b5d6e1dca7c2eb492e26f8e2.png2086221474_SkyrimSpecialEdition10_09_202213_04_35.png.c0e5d237db6064a4bba62e1bd844ce27.png771334485_SkyrimSpecialEdition10_09_202213_04_48.png.2369d87948c1eedaa69c8f75530c0eb9.png336431925_SkyrimSpecialEdition10_09_202213_05_03.png.1f160d57a824a3a75ab44f286b18269e.png

 

 

SE CBBE and 3ba versions done

Added the bodyslides for both to the relevant slider sets and slider groups 

Added the AA, script instance and inventory to the 5.2 beta ESM

Added relevant ground model

Packed in same format as the fomod so you can just copy it over.

 

Will now work on the uunp version and CBBE LE

 

Insidentaly is it intentional that all the other transparent items use the black ebonite for their _go? I sdtarted to replace some then thought maybe there was a reason behind it, let me know if you want me to continue and repolace them all with matching transparent _go's.

 

TransparentGloves.7z 1.38 MB · 8 downloads

 

I tried it in SSE just now and it worked fine (CBBE 3BA V2).?

Link to comment
18 hours ago, Zenagia said:

My "Zip-Binder" is still a W.I.P. - BUT!, it's coming along nicely.

 

image.jpeg.83c66dbdb248ece736df9d662ec44dfc.jpeg

 

My thanks to @audhol for his guidance. Here is what's still on the list for it.

- A new zipper. The current zipper that you see there was salvaged from the catsuit, and in my opinion, looks "mushy". The texture is smeared out. It works fine on the catsuit because of where it is and there is usually other gear on top of it. But as an armbinder, it's the "top layer" and what you see. So, I am currently in the process of building a new custom mesh piece to slot in place between the leather flaps with a new zipper texture I have generated.
- Add a cuff around the wrists? I'm on the fence on this one - what do you guys think?

- Clean up the clipping.

- Correct the shading and normal maps.

- Color variants: Black, red, white, purple, blue & pink - matte & ebonite.

 

This has certainly been a learning curve for me. Right now, I have it as just an overwrite of the standard elbowbinder (don't worry, I made backups!). I'll make an .esp when I'm done for people to play with. I have a suspicion the weights are going to be goofy and I'll need some testing on it. I run a very customized frame for my girl, so stock stuff doesn't always fit right (What? I like tits on a stick. Fight me.)

I'll post here with updates as they come. If this goes over well, I'll try my hand at more stuff. This has been fun!

 

Working on the new zipper today. Old mesh in yellow, fancy new one in white.

 

image.jpeg.8267ddbf96cba37d0c4c4b48db6adba0.jpeg

Edited by Zenagia
Redact a work file that was open in Screenshot, as to not dox a customer :P
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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