Jump to content

Devious Devices Framework Development/Beta


Kimy

Recommended Posts

Posted (edited)

Hi.

Recently I made a post (using DD 5.2 beta 6) of problems I was having with the "Change Animation Set" key not working whenever I had an armbinder on.

While doing more research, I found some interesting results, which may or may not be related. Hopefully its helpful:

 

Throughout these tests I used:

* SexLab Tools "H" to see available animations when an animation was playing

* Simple Sexing \ "Sex this actor" \ "No Tags/default" to start animations


When I had only 1 DD device on, "Black Leather Armbinder", one the following animations would play:

 

DD_SH_armbCowg1
DDZapArmbMissionary01
DDZapArmbDoggy01
DD_SH_armbJB1
DDZapArmbSkullFuck01
DD_SH_armbMiss1

 

When one of these animations played, I hit "H", and only that animation was presented in the list. So here's a theory: maybe the "Change Animation Set" key is actually working, but since there's only one animation in this list (however this list is generated), it doesn't bother, since there is only one choice?

(Reference: When I don't have any DD on, and an animation starts, and I hit "H", a whole bunch of animations are listed, and the "Change Animation Set" key works).

 

The only way I was able to get the above list was to start an animation over and over again, and every time a new animation played, I would use "H" to see its name, then write it down. After doing this a whole lot, I stopped getting new animations, so that's how I concluded that those 6 are the only ones available when I have just 1 DD device on, "Black Leather Armbinder"


Then I added the following DD devices:

 

Plug (Grand Soulgem) (Vaginal)
Plug (Inflatable) (Anal)
Black Leather Slave Ballet Heels
Crimson Bit Gag
Jeweled Piercings (Nipples) (Shocking Soul Gem)
Jeweled Piercings (Clitoral) (Shocking Soul Gem)

 

After that, the only animation that would play is:
DDZapArmbBoobjob01

 

After that testing, I then removed "Crimson Bit Gag", and kept all the other DD on. Then, the only animations that would play were:
DDZapArmbDoggy01
DDZapArmbSkullFuck01

 

After that testing, I put on all the previously mentioned DD devices, then removed both plugs. Then, the only animations that would play were:
DDZapArmbMissionary01
DDZapArmbDoggy01
DD_SH_armbMiss1
(the missionary one played the most most most often of the 3)


Hopefully, this info helps out. Is there any other testing I can help out with to fix this "Change Animation Set" key problem? Let me know. Thanks.

 

Edited by Overtheedge
formatting
Posted

Found another very odd behavior with animation filter:

 

Wearing DCL slave outfit, including the rubber hood and rubber suit (old meshes, by the way. I hope they get updated for the better looking ones soon :P), getting DCL rape with draugur. A normal animation is chosen as expected, but as soon as it starts it switches to a human animation and the draugur just stands there while the player does her part of the scene on her own.

 

Attaching a log. I am not sure where to trim it, but read from the end, since I eventually closed the game in the middle of such a broken scene:

 

Papyrus.0.log

Posted
2 hours ago, Overtheedge said:

Hi.

Recently I made a post (using DD 5.2 beta 6) of problems I was having with the "Change Animation Set" key not working whenever I had an armbinder on.

 

{snip}

 

 

Change Animation Set is not a feature I can recall being in DD (unless my memory is really failing me right now). Where is that from?

Posted
2 hours ago, thedarkone1234 said:

Found another very odd behavior with animation filter:

 

Wearing DCL slave outfit, including the rubber hood and rubber suit (old meshes, by the way. I hope they get updated for the better looking ones soon :P), getting DCL rape with draugur. A normal animation is chosen as expected, but as soon as it starts it switches to a human animation and the draugur just stands there while the player does her part of the scene on her own.

 

Attaching a log. I am not sure where to trim it, but read from the end, since I eventually closed the game in the middle of such a broken scene:

 

Papyrus.0.log 2.27 MB · 0 downloads

 

The more reports like this I am seeing, the more I wonder about the role DCL is playing in these problems. At this point I really would love getting some logs/reports of scenes NOT triggered by DCL.

Posted
1 hour ago, Kimy said:

 

Change Animation Set is not a feature I can recall being in DD (unless my memory is really failing me right now). Where is that from?

It's a hotkey in sexlab, but I remember it working with DD device animations in my LE setup on my previous computer, so when I saw it wasn't working in SE, I assumed it was a bug.

Posted

Another day, another question / feature request: is there / could we have a function in DD that simply unequips all non-quest devious devices from an actor (or just from the player)? Unequipping devices you know are on the player is easy, either by direct reference or by keyword, but as a mod author there's some cases where you simply don't know what the player has gotten themselves into, and you want to make sure they at least have no generic devices on them before you put your custom scripted stuff on them. It's possible to do so now with workarounds, but it'd be great (and less likely to break stuff) if DD had a function for it.

 

I don't have a code snippet suggestion for this at the moment, though I'll probably need it soon for the mod I've just released in beta (excuse the blatent self-advertisement ?), since I can foresee a few issues if players start it with DD items already equipped. So I'll probably see if I can make some code for this soon, time permitting.

Posted
31 minutes ago, Frayed said:

Another day, another question / feature request: is there / could we have a function in DD that simply unequips all non-quest devious devices from an actor (or just from the player)? Unequipping devices you know are on the player is easy, either by direct reference or by keyword, but as a mod author there's some cases where you simply don't know what the player has gotten themselves into, and you want to make sure they at least have no generic devices on them before you put your custom scripted stuff on them. It's possible to do so now with workarounds, but it'd be great (and less likely to break stuff) if DD had a function for it.

 

I don't have a code snippet suggestion for this at the moment, though I'll probably need it soon for the mod I've just released in beta (excuse the blatent self-advertisement ?), since I can foresee a few issues if players start it with DD items already equipped. So I'll probably see if I can make some code for this soon, time permitting.

 

I got something better: Just call

 

zadlibs.LockDevice(actor akActor, armor deviceInventory, bool force = false)

 

with force = true, and it will attempt to replace any generic device worn in that slot with yours. No need to check what's in the slot first. The function will return true if the equip attempt succeeded.

Posted

out of curiosity was the "forbidden tome" quest removed? i've opened the bookcase after taking the key off the desk but nothing happens besides gaining the spell book, crafting ability and a bunch of other readable books.

Posted

So instead of going with Ebonite, I've named the material 'Lustrous' with ls abbreviation.

 

I've attached the sets for testing and the source files. Also made some changes to the normal black, red and white set to add a bit more difference between them. I did not fix the Inventory items of the new items having the gold texture as I don't know if that's fixed yet and might hinder the ESP merge

 

DD Lustrous.7z

 

 

Posted
8 hours ago, Kimy said:

 

I got something better: Just call

 

zadlibs.LockDevice(actor akActor, armor deviceInventory, bool force = false)

 

with force = true, and it will attempt to replace any generic device worn in that slot with yours. No need to check what's in the slot first. The function will return true if the equip attempt succeeded.

 

Ah, sorry, I should've mentioned this. Yes, this is my current approach, and it works very well except for a one thing: I want to move the player's entire inventory to a chest a la the vanilla embassy quest, and have them recover this later in the mod. This is for thematic reasons (someone took their stuff), but most importantly it is to avoid the chance of DD devices being in the players' inventory during stages where they could interfere with the mod. Specifically, I know some mods have some kind of self-bondage mechanic, and DD devices can have their locks jam and become inescapable without outside help. But for parts of the mod, the player won't have access to outside help, so this is a softlock risk. My solution at the moment is to clear the player's inventory and then equip new devices on them. But the (vanilla) clear inventory script doesn't remove devices properly. If I call it before equipping new devices, the old ones are not removed, just unequipped. If I call it after equipping the new ones, something goes wrong where some devices get their rendered version removed, but not their inventory one and the devices end up in an invalid state.

 

Perhaps this is too specific of a problem to justify the request, or maybe it's really just a design flaw on my side. But I imagine the functionality is generic enough that it could be useful.

 

Regardless, typing this out already gave me some ideas for other solutions to my problem, so thanks for the inspiration! ?

Posted
11 hours ago, Kimy said:

 

I got something better: Just call

 

zadlibs.LockDevice(actor akActor, armor deviceInventory, bool force = false)

 

with force = true, and it will attempt to replace any generic device worn in that slot with yours. No need to check what's in the slot first. The function will return true if the equip attempt succeeded.

 

2 hours ago, Frayed said:

 

Ah, sorry, I should've mentioned this. Yes, this is my current approach, and it works very well except for a one thing: I want to move the player's entire inventory to a chest a la the vanilla embassy quest, and have them recover this later in the mod. This is for thematic reasons (someone took their stuff), but most importantly it is to avoid the chance of DD devices being in the players' inventory during stages where they could interfere with the mod. Specifically, I know some mods have some kind of self-bondage mechanic, and DD devices can have their locks jam and become inescapable without outside help. But for parts of the mod, the player won't have access to outside help, so this is a softlock risk. My solution at the moment is to clear the player's inventory and then equip new devices on them. But the (vanilla) clear inventory script doesn't remove devices properly. If I call it before equipping new devices, the old ones are not removed, just unequipped. If I call it after equipping the new ones, something goes wrong where some devices get their rendered version removed, but not their inventory one and the devices end up in an invalid state.

 

Perhaps this is too specific of a problem to justify the request, or maybe it's really just a design flaw on my side. But I imagine the functionality is generic enough that it could be useful.

 

Regardless, typing this out already gave me some ideas for other solutions to my problem, so thanks for the inspiration! ?

 

Hmm, an idea that came up to my mind: a reduced version of the framework's DDI_DebugTerminate():

Spoiler
Scriptname UnlockGenericDevices extends Quest
{Unlock generic devious devices on a given actor}

zadlibs Property libs Auto

Bool Function UnlockGenericDevices(Actor akActor)
    Bool removedAll = True

    If !akActor.WornHasKeyword(libs.zad_Lockable)
        ; no DD items equipped, can abort here
        return removedAll
    EndIf

    Armor idevice = None
    Armor rdevice = None
    Keyword kw = None

    Int i = akActor.GetNumItems()
    While (i > 0)
        i -= 1
        Form kForm = akActor.GetNthForm(i)

        If ((kForm As Armor) && kForm.HasKeyword(libs.zad_InventoryDevice))
            idevice = kForm As Armor
            rdevice = libs.GetRenderedDevice(idevice)
            kw = libs.GetDeviceKeyword(idevice)

            If (idevice && rdevice && kw)
                ; we got a valid DD item, remove it if it's no quest item
                If !(idevice.HasKeyword(libs.zad_QuestItem) || rdevice.HasKeyword(libs.zad_QuestItem))
                    libs.UnlockDevice(akActor, idevice, rdevice, kw, destroyDevice = True)
                Else
                    ; stumbled upon a quest item, tell we could not remove it
                    removedAll = False
                EndIf
            EndIf
        EndIf
    EndWhile

    return removedAll
EndFunction

 

 

After this, if True got returned, everything should be unequipped properly and the stuff could go in any chest, correct?

 

And if False got returned, one knows there was a quest item and can react accordingly.

Posted
5 hours ago, tybot866 said:

out of curiosity was the "forbidden tome" quest removed?

Yes, several versions ago. The scripts in that quest were never kept updated, and none of the framework contributors wanted to maintain it.

Posted

If anyone has a very old version of DD it might be interesting to split it and do a stand alone mod of the forbidden tome. It's not the most advanced mod but it was the first so for my it's still a nice memory.

Posted
8 minutes ago, naaitsab said:

If anyone has a very old version of DD it might be interesting to split it and do a stand alone mod of the forbidden tome. It's not the most advanced mod but it was the first so for my it's still a nice memory.

If I remember right that quest is from DD 3.x? 

Posted
13 hours ago, naaitsab said:

So instead of going with Ebonite, I've named the material 'Lustrous' with ls abbreviation

Is this a non shiny version to go with the leather set? I very much prefer the shiny older textures with beta 6, but this would be nice as a separate set. The white almost looks gray to me though, so it doesn't really color match with the white items.

Posted
11 hours ago, Frayed said:

 

Ah, sorry, I should've mentioned this. Yes, this is my current approach, and it works very well except for a one thing: I want to move the player's entire inventory to a chest a la the vanilla embassy quest, and have them recover this later in the mod.

 

The prison component in DCL has that exact feature already. Feel free to have a look at the code and/or borrow it!

 

The code can be found in dcur_prisonQuestScript.psc

Posted
33 minutes ago, TrickyK said:

Is this a non shiny version to go with the leather set? I very much prefer the shiny older textures with beta 6, but this would be nice as a separate set. The white almost looks gray to me though, so it doesn't really color match with the white items.

The regular black, red and white pieces added in the latest beta are made less shiny. To match regular leather a bit more. The new Lustrous items are shiny and sleek to match Ebonite.

And white is the most susceptive color to mismatch as most ENB's kinda mess with the rendering of the tints. So can't match it that much. 

Posted
36 minutes ago, naaitsab said:

The regular black, red and white pieces added in the latest beta are made less shiny. To match regular leather a bit more. The new Lustrous items are shiny and sleek to match Ebonite.

I'd say keep the old textures for ebonite, and use these new textures to match the leather, unless I'm misunderstanding something here. Are the ones you posted meant to match the leather? Are the ebonite ones going to be the old textures, and these new ones the lustrous set? Or is the lustrous set meant to completely replace ebonite. I'm of the opinion that we should have both the super shiny and these textures, and maybe a dull/non-reflective set to match leather. Also I only brought up the white because it looks almost like silver with the color change there.

Posted
4 minutes ago, TrickyK said:

I'd say keep the old textures for ebonite, and use these new textures to match the leather, unless I'm misunderstanding something here. Are the ones you posted meant to match the leather? Are the ebonite ones going to be the old textures, and these new ones the lustrous set? Or is the lustrous set meant to completely replace ebonite. I'm of the opinion that we should have both the super shiny and these textures, and maybe a dull/non-reflective set to match leather. Also I only brought up the white because it looks almost like silver with the color change there.

I think it will speak for itself if you load the latest beta and the lustrous patch I added. Then equip like the lustrous red bra and the regular red belt. You can see the difference in the finish.

Posted
8 minutes ago, naaitsab said:

I think it will speak for itself if you load the latest beta and the lustrous patch I added. Then equip like the lustrous red bra and the regular red belt. You can see the difference in the finish.

 

Ah, I see. I was thrown off because I couldn't find them in the expansion ESP, since it uses an entirely different one.

Posted
7 hours ago, naaitsab said:

If anyone has a very old version of DD it might be interesting to split it and do a stand alone mod of the forbidden tome. It's not the most advanced mod but it was the first so for my it's still a nice memory.

The quests were in Devious Deviants.esp; the last version of it can be pulled from the last commit before it was deleted. It looks like the scripts for them are still in 5.1, but obviously haven't been updated in years.

Posted
7 hours ago, chaimhewast said:

The quests were in Devious Deviants.esp; the last version of it can be pulled from the last commit before it was deleted. It looks like the scripts for them are still in 5.1, but obviously haven't been updated in years.

Thanks. That seems to be the last one. Not sure if packaging the files in a BSA to gather all the scripts used by the esp is reliable. It could be done to remove them from DD itself. Cleans it up quite a bit I presume.

Tweaks from that version to V5 should be fairly easy for me to do. Most major would be (un)equiping and sex scenes. But both should work with the old function calls.

Posted
22 hours ago, naaitsab said:

Thanks. That seems to be the last one. Not sure if packaging the files in a BSA to gather all the scripts used by the esp is reliable. It could be done to remove them from DD itself. Cleans it up quite a bit I presume.

Tweaks from that version to V5 should be fairly easy for me to do. Most major would be (un)equiping and sex scenes. But both should work with the old function calls.

 

If anything code is removed in relation to this I humbly request not removing the ability to learn how to craft keys. I have multiple characters and use various settings in conjunction with DCL depending on the character. One of my playstyles involves having a 0% chance to find common keys in the world, and the only way she is able to get keys is to mine iron and make them herself. I would have to pretty much scrap that entire playstyle if the ability to make keys was removed. At the very least I wouldn't object to the idea of moving that feature over to DCL.

Posted
52 minutes ago, serranna said:

 

If anything code is removed in relation to this I humbly request not removing the ability to learn how to craft keys. I have multiple characters and use various settings in conjunction with DCL depending on the character. One of my playstyles involves having a 0% chance to find common keys in the world, and the only way she is able to get keys is to mine iron and make them herself. I would have to pretty much scrap that entire playstyle if the ability to make keys was removed. At the very least I wouldn't object to the idea of moving that feature over to DCL.

I think there are still a dozen of way to get keys. In DCL you can exchange your DD items for key in Dollmaker and the Inn (somehow I forgot the name). Also in the Inn you can buy the key pack that contains random key. 

If you have others DD shop mod like Laura, Pink, you can buy keys from them.

Some others mod can also give you key like Devious Strike, Deviously Carriage, S.L.U.T.S,...

Some mod let you remove items by another mean like Devious Strike, Unforgiving Device, PB's Devious Guard,...

 

I think your playstyle of having 0% chance to find common key in the world is not really depending on the crafting key system. If you have DCL only, the best method to get key is farm for DD items and sell them to Dollmaker or the Inn for gold, level up speechcraft and buy key pack in the Inn. I find that selling DD items level up my speech pretty quick. Once you have decent gold and speech skill, you can buy the spellbook from dollmaker and use it on the common female guard on the hold. Then you can bring them to the slave merchant at riverwood inn or talk to them and loot their valuables and let them go. That way you get even more gold easily that you can buy key pack with.

 

And the best things about key pack, is they cannot be lost if you trigger DCL trap or anything that try to remove keys from you.

Posted
1 hour ago, serranna said:

 

If anything code is removed in relation to this I humbly request not removing the ability to learn how to craft keys. I have multiple characters and use various settings in conjunction with DCL depending on the character. One of my playstyles involves having a 0% chance to find common keys in the world, and the only way she is able to get keys is to mine iron and make them herself. I would have to pretty much scrap that entire playstyle if the ability to make keys was removed. At the very least I wouldn't object to the idea of moving that feature over to DCL.

It won't. The crafting perk(s) is linked to the Chastity Book which is located inside the Integration ESM. Deviants only places a copy in the forbidden book case.

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