Jump to content

Devious Devices Framework Development/Beta


Recommended Posts

3 hours ago, Gyra said:

Posting here as well to get some eyes on the issue. DD5.2 has an issue with the Import Settings feature where it enables all of DD’s slots, thus hiding all of the PC’s body save for head and feet. If anyone can make a fix, I’d really appreciate it.

Uhmm... I've been using the import function a couple of times since the release and never had any problems.

Did you run BodySlide?

Link to comment
3 hours ago, Gyra said:

Posting here as well to get some eyes on the issue. DD5.2 has an issue with the Import Settings feature where it enables all of DD’s slots, thus hiding all of the PC’s body save for head and feet. If anyone can make a fix, I’d really appreciate it.

I use the import function on pretty much every new char, but I'm not sure that I ever ran into this? 

Link to comment
38 minutes ago, CaptainJ03 said:

Uhmm... I've been using the import function a couple of times since the release and never had any problems.

Did you run BodySlide?

 

35 minutes ago, krzp said:

I use the import function on pretty much every new char, but I'm not sure that I ever ran into this? 

Don't worry, I understand the doubt. If someone else said the same thing, I'd doubt it myself. I also never had this issue until very recently. Which means either 1) the bug is rare and happens inconsistently; or 2) I installed a mod that interferes with DD's import function. In the past few days, I have installed every appropriate experimental fix in the past few pages of this thread, or as krzp had linked here.

 

One user perfectly describes the symptom here: 

 

Edit: Well, I just tried the import function with papyrus logging enabled. But seems the game detected it and refused to bug out. If it happens again, I'll share a log if I can reproduce it consistently.

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

Don't worry, I understand the doubt. If someone else said the same thing, I'd doubt it myself.

A daft question, just for the sake of debugging: Did you save, exit-to-desktop and resume before trying the import function? DD needs that procedure to load properly.

Link to comment
3 hours ago, CaptainJ03 said:

A daft question, just for the sake of debugging: Did you save, exit-to-desktop and resume before trying the import function? DD needs that procedure to load properly.

Nah I didn’t. Usually I don’t, and I’m pretty sure I’ve imported settings without first resetting the game session. But maybe you’re right and that’s the cause.

Link to comment
4 hours ago, CaptainJ03 said:

A daft question, just for the sake of debugging: Did you save, exit-to-desktop and resume before trying the import function? DD needs that procedure to load properly.

 

Is it really required to exit to desktop? I always used to just save and reload and never had issues with that practice (at least non I could tell that are caused by that. Modded Skyrim is modded Skyrim)

Link to comment
After hacking off large parts of ZadBoundCombat that were made obsolete by OAR/DAR, I've set my sights on other areas of DD that could benefit from the animation replacer treatment.
 
For example, there is a function in zadlibs that is called AnimSwitchKeyword. This is a 400-line long function that assesses what keywords the current worn item has, and replaces the animations with a correct one for that device. Animation replacement based on keywords... hmmmm, I think I've heard this somewhere ?
 
Now it looks like this:
Spoiler

String Function AnimSwitchKeyword(actor akActor, string idleName )


    if idleName == "Horny01" || idleName == "Horny02" || idleName == "Horny03"            
    return "DDZazHornyA"
    ElseIf idleName == "Edged"
    return "DDZazHornyD"
    ElseIf idleName == "Orgasm"
    return "DDZazHornyE"
    ElseIf idleName == "OutOfBreath"        
    return "ft_out_of_breath_reg"
    EndIf
    
    Error("Failed to find valid animation for presentation.")
    
EndFunction

 

The idea is that DD sends one common animation event (i.e. ft_out_of_breath_reg for the Catch Breath event, and then each device folder has a different animation (or even a number of them) with the same name, and OAR replaces them accordingly to worn devices). I've edited three functions to make use of this technology, the aforementioned AnimSwichKeyword, Trip and Catchbreath.

 

Beauty of this setup is that a) it's done through SKSE, therefore it's a little faster and doesn't stress out the ole' papyrus (I understand that the effect is not as pronounced as it was with the FNIS AA - OAR switch, though) b) it allows you to easily add new animations, or mix and match without hardcoding them.

 

That's exactly what I've done.

- The hobbled out of breath event now has new animations that don't make your character spread legs far apart (those always made the rope body restraint look weird), I made them for this pack, so let's make base DD use those as well;

- Made two new animations for the elbow tie, because it was missing both the trip and catch breath ones;

- Petsuit now plays struggle animations for both events;

- Yoke and Armbinder now can randomly play the Zap*Horny animations line, which wasn't included in the original logic

- And, lastly, I've changed the playing duration for the Trip animation from 5 seconds to 8, so the original animation doesn't get cut off at the end.

 

Requirements: SE, OAR, DD to OAR conversion. Just install and let it overwrite DD's script, and it should work (I don't think you need a new game to try this out).

 

Feedback is appreciated.

 

Please note, that I'm editing zadlibs.pex here, so if you had a mod that also edits this file (something like OSL Aroused, but there were a few more, iirc), this will revert all the changes back to regular 5.2 setup.

 

P.S. If you're using Baka's motions replacer, you can easily integrate them into this. Grab his animations, and put them in OpenAnimationReplacer\DD to OAR\100000\DD\_variants_ZazHornyA\, you can even mix and match his motions with regular DD ones if you rename them.

 

DD_Oarified_trip_catch_breath_and_others_v3.7z

Edited by krzp
Link to comment
On 8/28/2023 at 3:50 PM, ChandraArgentis said:

 

DCL for Starfield confirmed, everyone!  ETA: "When it's done". 

 

Haha!

 

Jokes aside, at this time I have no idea about how the Starfield engine will look like, and how hard or easy it would be porting DD (and its assets) over. I typically make it a habit not to follow development of upcoming games too much and have a closer look only once they're released. I will definitely get the game, and then we'll see. :)

Link to comment
10 hours ago, naaitsab said:

For the Slots and dialogue I hope they looked more to Skyrim and not Fallout 4. Both are atrocious and make modding (and in the slot case migrating DD) a PIA.

 

 

The dialogue in FO4 was a brutal pain. But the worst thing (which is why I think modding for FO4 never really took off) was that it was next to impossible to cleanly edit maps because of the pre-processing required.

Link to comment

You know how some modders like to put out patches for zadlibs?
(looks four posts up, cough ?)

 

Well, after speaking with @zarantha on discord, I've returned to the idea that I've talked about some time earlier, about the soft dependencies. DD kept a compatibility with FNIS sexy move, which I'd assume, is used only by pure old-school connoisseurs at this point, in the DAR age - so why not integrate a small number of mods that are actually in use right now - at least the more popular ones?

 

This is the soft-dependency mechanism for two popular mods - OSL Aroused and SLIF (there's a patch under the DD 5.2 section)

This, I think, will benefit almost everyone, those two mods won't rely on patches anymore, breaking something for their users - and it'll make zarantha's job easier not to recompile the SLIF patch every time new DD comes out.


What I've done here was:
Added two properties in zadconfig

Spoiler

;checks for OSL Aroused
Bool Property GotOSLA = False  Auto Hidden

;checks for SexLab Inflation Framework
Bool Property GotSLIF = False  Auto Hidden

edited the zadconfig's OnConfigInit event

Spoiler

Event OnConfigInit()
    libs.Log("Building mcm menu.")
    SetupPages()
    SetupDifficulties()
    SetupEscapeDifficulties()
    SetupBlindfolds()
    SetupSoundDuration()
    CheckForSoftDepends()
    SlotMaskOIDS = new int[128]
EndEvent

Function CheckForSoftDepends()
    If Game.IsPluginInstalled("OSLAroused.esp")
        GotOSLA = True         ;OSL Aroused is here
    Else
        GotOSLA = False     ;not here
    EndIf

    If Game.IsPluginInstalled("SexLab Inflation Framework.esp")
        GotSLIF = True  ;SexLab Inflation Framework is here
    Else
        GotSLIF = False ;not here
    EndIf
EndFunction

and in zadlibs, if-else'd the two small bits of code those mods change

Spoiler

Function SetNodeHidden(Actor akActor, bool isFemale, string nodeName, bool value, string modkey = "DDi")
    if Config.GotSLIF
<code from the patch i've downloaded from zarantha's post>
    else
<og DD code>
    endif

EndFunction

Function UpdateExposure(actor akRef, float val, bool skipMultiplier=false)
<...>  
        ;OSL Aroused compatibility patch
        if Config.GotOSLA                                             
            Aroused.SetActorExposure(akRef, (newVal + 1) as int)
        else             
                                            
            StorageUtil.SetFloatValue(akRef, "SLAroused.ActorExposure", newVal)
            StorageUtil.SetFloatValue(akRef, "SLAroused.ActorExposureDate", Utility.GetCurrentGameTime())
        endif
<...>

 

* I'm using Game.IsPluginInstalled() to check, because at least OSL Aroused comes in the ESL format, so Game.GetModbyName("_") != 255 would return an incorrect value for it.

 

Considering how the OnConfigInit() is called when the config menu is initialized, this should work on new game only, if I understand this correctly (though, literally every mod i've looked at for ideas did it this way, so I assumed this is the proper way of doing it).

 

Now, me and proper good coding practices are separated by at least several layers of papyrus incompetence, so if anyone who's actually good with papyrus would point where I got this wrong, I'd be grateful. I've tested the OSL Aroused part and it worked for me, but I don't have SLIF, so if anyone's willing to give this a try, that would be great.

 

I've included a dummy SLIF_Main script for easier compiling in the archive.

 

Please note - this is a vanilla 5.2 zadlibs, so it doesn't have my OAR tweaks from earlier, for example - this is purely a proposed code change, only install this if you are willing to test it  ?

DD_soft_depends_v1.zip

Edited by krzp
Link to comment
18 hours ago, naaitsab said:

For the Slots and dialogue I hope they looked more to Skyrim and not Fallout 4. Both are atrocious and make modding (and in the slot case migrating DD) a PIA.

 

From what I've seen the dialouge looks closer to New Vegas but still only has the 4 options like FO4.

Link to comment
14 hours ago, Raine_Hyd said:

From what I've seen the dialouge looks closer to New Vegas but still only has the 4 options like FO4.

Actually, there isn't a limit that I can tell.  By default, five options can be visible at the same time (when they exist), and when there are more options, you can scroll up/down to get to them.  Not sure how the backend looks like for dialogue, but it is definitely not limited.  I just had a conversation with Sarah Morgan that had eight options available in dialogue.

Link to comment
1 hour ago, DonTheDime said:

Actually, there isn't a limit that I can tell.  By default, five options can be visible at the same time (when they exist), and when there are more options, you can scroll up/down to get to them.  Not sure how the backend looks like for dialogue, but it is definitely not limited.  I just had a conversation with Sarah Morgan that had eight options available in dialogue.

Probably more like Skyrim then, but it could still use the 'scene dialogue' approach of FO4. While it has it advantages like restarting/looping certain parts but it's also a lot more time consuming to setup and the flow is quite constrictive. But we will need to wait until the CK is released to see how it's built up exactly.

Link to comment

Hey @Kimy, I wrapped up moving the equip handling to native code with significant help from ihatemykite. It's not quite release ready (still need to test and change unequip's behavior), but there are marked improvements in latency and consistency. My changes are in this branch . This is SE/AE/VR exclusive since we're reliant on reverse engineered function addresses only available in CommonLibSSE-NG.

 

Before continuing, I wanted to get your input/permission regarding the following:

  1. Generally, is it okay to continue this work? If yes:
  2. Can we host our modified scripts in that linked repo? Version controlling the SKSE plugin source is great for collaboration and it'd be helpful to do the same with the script sources.
  3. If we do manage to get a complete end to end version of this patch running, can we host it separately? Definitely open to merging our changes into 5.3 and beyond but given the scope, SE-exclusivity, and faster pace of updates I think it makes sense to field support/publish releases in a separate LL thread/over Discord until we reach a stable state.

We're not introducing changes that change DD's API or break mods dependent on it. We are planning on natively reimplementing inventory filters for food items when gagged, picking up items when gloved, container change, implementing the changes Scrab needs for Sexlab P+, reimplementing Better NPC support natively, and if possible replacing the equip/escape messagebox interface with custom Flash menus for ease of use, as well as any suggestions brought up over development.

Link to comment
On 9/1/2023 at 2:54 PM, krzp said:

This is the soft-dependency mechanism for two popular mods - OSL Aroused and SLIF (there's a patch under the DD 5.2 section)

 

What exactly is a soft-dependency? I don't use either of these mods nor did I plan on using them. Though I don't have the OAR stuff installed yet I was considering working on doing so soon. Will the lack of those mods in my load order cause problems?

Link to comment
31 minutes ago, serranna said:

 

What exactly is a soft-dependency? I don't use either of these mods nor did I plan on using them. Though I don't have the OAR stuff installed yet I was considering working on doing so soon. Will the lack of those mods in my load order cause problems?

A normal dependency is hard, it means if you don't have that mod installed and enabled the game will crash on startup.

A soft dependency allows the game to start but the mod can't access the depended mod so certain aspects are disabled.

Link to comment
19 minutes ago, serranna said:

What exactly is a soft-dependency? I don't use either of these mods nor did I plan on using them. Though I don't have the OAR stuff installed yet I was considering working on doing so soon. Will the lack of those mods in my load order cause problems?

Well, those two mods change some stuff in DD for them to function properly and, therefore, requiring their own version of one of the DD's main files - so everytime DD gets updated, those mods functionality will break, requiring their authors or the community to update the necessary files. The mechanism I proposed negates that, by implementing those into the framework itself and having a small check.

 

If you don't use those, you don't need this right now, but if this gets included - the internals will run a check first time you start a new game, see that you don't have those mods installed, and your DD should behave as regular. ?

 

I highly recommend trying OAR, though - the improvement is quite noticeable (if we're talking about the main movement animation swap, the struggles thingie is mostly an improvement on that, but with far less drastic performance benefits).

 

1 hour ago, ponzipyramid said:

Definitely open to merging our changes into 5.3 and beyond but given the scope, SE-exclusivity, and faster pace of updates I think it makes sense to field support/publish releases in a separate LL thread/over Discord until we reach a stable state.

Not that it matters much, but my vote's definitely on this to get merged into the SE mainline at some point - because SKSE magic wonders performance awesomeness ?

Link to comment
5 hours ago, GreatCroco said:

@krzp If you could make a single post with all what you have already done and a small tutorial on how user can install it, that'd be great. I think most people are not trying your changes because they don't know how to install them without breaking their game.

Haha, I have been creating them faster than I can categorize them ?  But since you've mentioned it, I have been working on updating the OAR conversion to bundle in most of the stuff I did after creating it, and improve on some thing that I've found, so it'll be easier not having to scour this thread page for page for various tweaks and add-ons. Hopefully it'll be ready soon, still need to test some things.

 

(I've installed Community Shaders recently, switched grass mods and got me some sweet Northern roads - been running all over Skyrim marvelling at fps-friendly grass shaders, and this has turned out to be terribly distracting ?)

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