Jump to content

Devious Devices Framework Development/Beta


Recommended Posts

6 hours ago, zarantha said:

 

I planned on merging into the next version. I'd like to just remove the DLL, but i don't know what all it does, so I'm a bit hesitant about that. I am looking into learning (or conning someone into doing it for me ;) ) how to make it an NG DLL. 

Was learning about the SKSE plugin creation recently. Can recommend this tutorial. It will explain how to set up environment and everything for working with CommonLibs NG. Good about it is that the created plugin will be compatible with all SE version (SE,AE,VR).

Link to comment

As far as I know the DLL with @ihatemykite patch does nothing anymore so it can be removed entirely. That would have my preference over a SKSE plugin. Or the approach of @Mister X could be used to make use of a SL function which already is a hard requirement of DD

 

You can reference the function calls by using a search tool like 'Everything' that can search in file contents of the Papyrus script sources. Last time I checked it, could only find references to it in the devicehider script.

Link to comment

There is some fighting for hand placement, but over all working. Thanks again. Even when the only DD the slave NPCs are wearing are collars, it periodically sends the following to the log regardless: 

[06/17/2023 - 04:13:55PM] warning: Assigning None to a non-object variable named "::temp48"
stack:
	[zadDevicesUnderneathQuest (1E041472)].zaddevicesunderneathscript.RebuildSlotmask() - "------------------------------" Line 197
	[zadDevicesUnderneathQuest (1E041472)].zaddevicesunderneathscript.UpdateDeviceHiderSlot() - "------------------------------" Line 230
	[zadDevicesUnderneathQuest (1E041472)].zaddevicesunderneathscript.Maintenance() - "------------------------------" Line 96
	[alias playerRef on quest zadDevicesUnderneathQuest (1E041472)].zadDevicesUnderneathPlayerScript.OnPlayerLoadGame() - "------------------------------------" Line 9

 

Link to comment
1 hour ago, Good Provider said:

There is some fighting for hand placement, but over all working. Thanks again. Even when the only DD the slave NPCs are wearing are collars, it periodically sends the following to the log regardless: 

[06/17/2023 - 04:13:55PM] warning: Assigning None to a non-object variable named "::temp48"
stack:
	[zadDevicesUnderneathQuest (1E041472)].zaddevicesunderneathscript.RebuildSlotmask() - "------------------------------" Line 197
	[zadDevicesUnderneathQuest (1E041472)].zaddevicesunderneathscript.UpdateDeviceHiderSlot() - "------------------------------" Line 230
	[zadDevicesUnderneathQuest (1E041472)].zaddevicesunderneathscript.Maintenance() - "------------------------------" Line 96
	[alias playerRef on quest zadDevicesUnderneathQuest (1E041472)].zadDevicesUnderneathPlayerScript.OnPlayerLoadGame() - "------------------------------------" Line 9

 

 

Try the patch.

 

Either this one 
https://www.loverslab.com/topic/69936-devious-devices-framework-developmentbeta/?do=findComment&comment=4017930

 

Or this one:

https://www.loverslab.com/topic/69936-devious-devices-framework-developmentbeta/?do=findComment&comment=4110031

 

Link to comment
On 6/6/2023 at 2:39 PM, 912s4dd said:

I'll post a test file here. 
This package includes esp and mesh modifications.

To test compatibility with various other mods, I've replaced 6 outfits from the existing leather-straitjacket series.
(For future merges, new Armor and ArmorAddon will need to be created).


Only 3BA-CBBE bodies are supported for now. 
I didn't work on alternative textures, so there will be texture errors except for the black color. 

 

To install it, you can use MO2 or any other tool and turn the bodyslider.
I have included the "TL_version" name so you should be able to find it. 
 

https://mega.nz/file/lAhSjajI#IXP61rNxfbwym7HnBRZp6y9_8V9JA7qUWgEGEJPOlWY

바슬2.PNG

Looks epic! Any chance for a UNP version? Like to test it aswell.

Link to comment

@Kimy

 

The next phase of SLp+; SL+; will be incompatible with this current version of DD for 2 reasons:

  1. The device filter uses non-blocking hooks to alter the playing animation that is playing; the problem here is that due to them being non blocking, SL will already have started animating by the time this filter does anything. With SL+ however, this kind of behavior is no longer allowed as most data becomes read-only ones the thread leaves the setup phase
  2. SL+ introduces a in Cpp stored new registry to optimize the animation search and quality, which means that the sslBaseAnimation class becomes redundant and and only operates as a proxy for the underlying animations in the native side of things. While the usage of this class is still possible, the registration of new animations onto it through a papyrus interface (like DD does it) is no longer possible

 

Both of these issues are not fixable whilst keeping LE compatibility, so Id like to offer/ask for permission to make these patches on my own behalf and host them separately

 

I also want to offer that I could take this one step further and create a "DD+" style patch instead (not right away, but sometime in the future once SL+ has cooled down), having permission to do this would allow me to (for example):

  • Allow SL+s registry to incorporate DD bindings, making the device filter of DD mostly unnecessary which can noticeably improve performance/quality of SL while DD is installed
  • Overhaul the Device Hider at a native level, freeing the slot it currently uses (?) and allowing changes to take place on a per-frame basis and potentially strengthening the criteria at which the filter is active/hiding devices, such as only hiding devices, not any items in that slot. This may also improve compatibility with other mods, and can significantly speed up DDCs in-furniture placement.. and reducing the papyrus overhead created by it in turn
  • Disallowing un-equipment of DD items on a native level, which would get rid of most of the overhead and incompatibility issues created through papyrus calls such as "RemoveAllItems" or "UnequipAllItems" as well as any iteration of "Equip" and "unequip" papyrus functions, potentially even from other SKSE (c++/dll) mods

The only thing Id require from you is an "ok" and a github account that I can fork the Papyrus code from and forward changes you make that arent related to the things Im doing :)

 

Edited by Scrab
Link to comment
7 hours ago, Scrab said:

[snip]

 

This is the first time I have heard of your project (I still don't follow the SE side of things much), but looks impressive! :)

 

As DD's requiring vanilla SexLab and not SLp+, I think the suggestion to offer required changes to DD as a separate patch makes the most sense for now. The only thing I am asking for is that DD features remain intact in the sense they need to behave the same way they would without having SLp+ installed.

 

I stopped using GitHub for DD a while ago, when the project became too large to host on a free instance. People now send me code contributions directly and I merge them to the code base manually. I know, crude... But it works! :D

Link to comment

imho, SSE (and AE) are mature enough that DD should start the transition (with the next big patch?). SSE simply offers stuff that benefit the whole mod that vanilla simply can't offer. Be it performance or finally being rid of decades old mods with bad programming habits that make the whole game unstable.

I'm currently at 1.2k mods in SSE, of which 500 have a plugin (thanks to the ESPFE's) and the game has never crashed once and the script-lag is barely noticable, whereas in Oldrim with less than half of the mods DCL was lagging by ~5-10 seconds for a trap.

 

Yes, you would be cutting off a portion of the community, and I get that's not desireable. But the gains are worth it in my eyes.

Link to comment
13 minutes ago, GreatCroco said:

Yes, you would be cutting off a portion of the community, and I get that's not desireable. But the gains are worth it in my eyes.

I'm one of those whom you're advocating to "cut off".  Let's consider the fallout.  Devious Devices is a framework.  Every LE mod that uses this framework would be affected.  Quite a few significant mods on this site are developed on LE and then ported to SE.  Cutting off those mod authors, and the players who enjoy their mods, is a pretty big "FU" to all of them.  You have SE and AE versions of these mods.  Don't begrudge the rest of the community their LE versions.  Let's all just coexist and get along.

Link to comment
5 hours ago, HexBolt8 said:

I'm one of those whom you're advocating to "cut off".  Let's consider the fallout.  Devious Devices is a framework.  Every LE mod that uses this framework would be affected.  Quite a few significant mods on this site are developed on LE and then ported to SE.  Cutting off those mod authors, and the players who enjoy their mods, is a pretty big "FU" to all of them.  You have SE and AE versions of these mods.  Don't begrudge the rest of the community their LE versions.  Let's all just coexist and get along.

On the other hand SE is a lot more stable (well for a Bethesda game) and supports more advanced mods/tweaks. And runs a lot better. If you check the popularity on Nexus and here you can see that it's has steadily tanked in the last few years. If you check SteamDB the average active playercount of SE is also 10 times more than LE. So to put it very crude, this would affect only 10% of the players. And yes there are also a lot of pirated players but does give a indication on how LE as lost popularity.

 

A probably direct cause of his is that most new big projects like OAR are SE only. Developing for LE is a pain as that version of the CK is a dog, that is the main reason I stopped modding for LE permanently beginning of this year and switched to SE/CK64. It also hinders progress like this example of the SL+ patch or the earlier proposed adoption of OAR. So we need 2 dev versions or a patchfest. Instead of fully integrating it to it's full potential.

 

With most if not all frameworks ported from LE to SE or a better alternative I honestly can't really find a good reason to stick with LE. It's just showing it's age at this time. And that's coming from a advocate of LE for many years. At some time I think we should conclude that LE is just no longer being maintained/targeted by most modders and shift the focus to SE. Keeping both alive is not beneficial imho, especially if one one of them is getting into the niche playerbase realms.

Link to comment
27 minutes ago, naaitsab said:

Developing for LE is a pain as that version of the CK is a dog, that is the main reason I stopped modding for LE permanently beginning of this year and switched to SE/CK64.

I've actually had the opposite experience. I tried switching over to the SE creation kit a while ago and found it absolutely agonizing. The SE CK seemed to take 5 times as long to load, had multiple infuriating bugs with script compilation when trying to launch it through MO2, and there's no easy way to backport SE mods to LE. This combined with the abysmal launch times for SE and the lack of good enbs made me go back to playing on LE.

Link to comment

I had no intention of having this become some kind of LE/SE debate (yet again);

 

If I had any interest in further dividing the LE/SE playbase (more than I already do) I wouldnt have phrased myself above with the intention of a patch that only addresses the affected areas. Oh dear, oh dear

Link to comment

Oh also on the note of DDs development;

 

In SLUTS there is an issue with devices not being equipped properly during the equipment of the pony outfit; That can be avoided by waiting 100ms between each equipment but when equipping 10ish devices that stacks up quickly to a whole second downtime

Im not sure what creates this issue, but perhaps some kind of "batch equipment"/"unequipment" function would be useful here, assuming you cant fix w/e is going on with spamming singular un/equips, it might be workable if you knew what devices are to be equipped in the future?

Edited by Scrab
Link to comment
7 hours ago, HexBolt8 said:

Let's all just coexist and get along.

There's an argument there, though, that co-existing means intentionally sticking to inferior technologies wherever possible, therefore hurting the more modern game users by depriving them of a better running game with more features, no? So LE users are sort of holding SE/AE users hostage in that sense. ?

 

For example, after trying @Scrab's P+, I can't even look at a regular SL anymore, even in it's current development state it's MILES ahead, and is such a big QoL improvement, it is alone worth upgrading. Or take OAR. It's got a lot of quality upgrades over DAR, and that tech can be used to improve DD's abilities a ton - but, due to lack of OAR on LE, we are going to be stuck with DAR forever in that scenario.

 

I'm all for max compatibility, but at some point legacy support greatly hinders potential.

Link to comment
9 hours ago, Code Serpent said:

I've actually had the opposite experience. I tried switching over to the SE creation kit a while ago and found it absolutely agonizing. The SE CK seemed to take 5 times as long to load, had multiple infuriating bugs with script compilation when trying to launch it through MO2, and there's no easy way to backport SE mods to LE. This combined with the abysmal launch times for SE and the lack of good enbs made me go back to playing on LE.

I had exactly the opposite ;) and running CK64 with the dll fixes is a blessing compared to LE. The only issue I have is that I can't get the faces as nice as I did in LE but that's something I can live with as it gives me back way better frametimes and stability. But it's not a matter of mine or your personal experience in my opinion, it's a bigger discussion based on facts. LE popularity is decreasing year over year. That's a given nobody can deny.

 

Whilst I can see the benefits of keeping both versions alive, if a SE framework is function and performance wise (OAR and SL+) getting hindered by keeping LE supported it's a whole other story. As @krzp points out at some point legacy software is turning into a ball and chain situation, hindering progress. When that time comes in my opinion it's time to let go of the old stuff and move on. Which might bring a tear to some users eyes. But in the end helps progress and make stuff happen that otherwise might never have been created.

 

But to close it off, for me the time has come to kill off LE, remove it from my PC and stop coding on it and supporting my mods running on it. If other users want to keep using it, great by all means. But I find it a bit hard to see cases that are mangling process to, again said very crude, keep only the ever decreasing 10% supported.

Link to comment

You guys do realize that Kimy is one of members of the community you're proposing to throw overboard, right?  The one who spends countless hours bringing us enhancements to Devious Devices.  For free.  Suggesting that here on her own discussion topic.

Link to comment

I think we all appreciate the time and effort Kimy has put into the project, that's not up for debate. But I fail to see why that is relevant in an open discussion about a future direction. Aside from using the guilty-card as an argument, which never works well to keep a discussion open and constructive. The main reason I've known DD to be developed only on LE is to keep it compatible with LE. Which on it's own is/was a perfectly fine reason for many years. But as LE players are dwindling and SE getting more and more SE-only mods that can fix some long-very long standing bugs/issues in DD. It seems to me to be a perfectly reasonable matter to put on the table for discussion. As long as we keep it clean and don't start throwing mud.

 

I'm going to repeat myself, so to close if off with a suggestion. It would be nice if we could think of a consensus situation like having a custom SE version that ships with certain changes built-in, And is maintained by SE players/modders. Instead of a LE->SE conversion with a bunch of 3rd party patches for things like OAR and SL+. Which seems undesirable for the majority of Skyrim players.

Link to comment
1 hour ago, HexBolt8 said:

You guys do realize that Kimy is one of members of the community you're proposing to throw overboard, right?  The one who spends countless hours bringing us enhancements to Devious Devices.  For free.  Suggesting that here on her own discussion topic.

It is her mod, she can absolutely do whatever she wishes with it - but why is there even a discussion topic, if not to discuss the proposals for the future of the framework? I don't understand. We aren't telling her what to do, we are offering our opinions? 

 

DD had no problems breaking older mods in the past by overhauling it's mechanics for a more efficient way of doing things, what's so different about this suggestion?

 

Even if the newer DD versions do move on to SE/AE, the older ones are not going anywhere - so if I would want to play mods made in 2014, I can just install one of the older versions and be happy? Or, if the mod is abandoned and well liked, someone can take a stab at creating a compatibility patch...

Link to comment

I never tried developing using CK64, so I have no useful input on what's better.

 

About the LE/SE thing: It's not that I haven't considered finally making the switch over to SE. I can see that traffic in the DD/DCL LE threads is waaaay down and traffic in the SE threads is waaaay up, which seems to support the point that LE is slowly but steadily getting crowded out in favor of SE. I guess most mod authors have pondered if and when to start developing not only for SE (via porting) but -on- SE, and I know a lot of them already made the switch, so a lot of major mods are no longer actively maintained on LE, the most prominent being SexLab itself. To be honest, I am lacking numbers on how many DD content mods are still developed using the "development on LE, port to SE" approach. I would be interested in more information about this, so assuming that DD content creators are following this thread, please, by all means, post your approach/opinion here!

 

Advantages I can see from remaining on LE:

- Nobody is getting left behind, no matter which Skyrim version they're using.

- LE CK might suck, but it's not that I am not used to its quirks after all these years, SE CK probably has OTHER quirks for me to stumble over, haha!

 

Advantages I can see from making the switch to SE:

- Access to new features available only on SE, e.g. new SexLab functionality, OAR etc.

- No more delays caused by porting

- Me not having to read as many support threads! :D

 

It's unfortunately not a clear win for either solution. Both have their ups and downs. In favor of switching you could argue that any new features I might add to DD at this point would likely make use of SE-exclusive functionality anyway, so it's not that remaining LE content mods and LE users would lose out big time here. They could still use the latest LE DD version, and it's not that I couldn't back-port serious bugfixes to the LE version. I have zero plans to make another API-breaking DD release, so the impact on LE content mods might be marginal?

 

In the end...I am not sure. Feel free to let me know what you guys think!  :D

Link to comment
27 minutes ago, Kimy said:

OAR etc.

Speaking of OAR and DAR, I've been trying to contact you on the DAR/OAR thing, but haven't heard from you - maybe we can discuss it here?

 

I have both the DAR and OAR conversions ready (for SE, though, haven't worked on LE yet) , so I would like to offer my assistance in getting it included into DD.

Edited by krzp
Link to comment
8 minutes ago, Kimy said:

I never tried developing using CK64, so I have no useful input on what's better.

 

CK64 has a number of very nice exe level fixes that I find very nice. It also seems to be a lot more stable when loading cells and the random crashes which where my main goal to stop on LE are next to all gone. But I would suggest just giving it a go and trying it. As every ones mileage may vary.

 

8 minutes ago, Kimy said:

In the end...I am not sure. Feel free to let me know what you guys think!  :D

The dwindling intrest in LE on here and the Nexus is what mainly drove me to SE. I was a quite strong advocate for LE over SE but in the end I think it's time to let it go. The shift in intrest just gives SE more options to play with so to speak. Having a more potent engine also helps with fixes like Papyrus speed increases or animation fixes. And nearly all LE frameworks are ported or surpassed. Only a few niche mods are still on LE only, mostly bound to animation converters sadly being scarce. 

 

The easiest way would be to choose the biggest playerbase and just leave LE but I think that at the current numbers that might still be a hard pill to swallow for many. Maybe in a year of 2, especially with Starfield etc around it might be a different story.

 

But to make a suggestion that could fit both "camps". As there are some LE modders present, what would your stance be to officially move to SE, implement all the fixes like SL+ and OAR (at this time but more can come). And let the LE modders keep the LE version up to date by implementing scripts changed and devices that are for both versions. SE only code like SL+ of course should stay on SE and vice-versa. So in essence swap the current situation around. Member X gives you a working new LE version and you upload that to the download page. Instead of you now, you make a LE post, someone makes a SE conversion and you post that on the SE download page. To reduce the 'pages to check' it would probably be wise if the "LE team" would monitor the LE thread(s) for bugs on the LE version.

Link to comment

I'm old enough to pontificate on things in a way that the end of what I write may not follow on too well from where I started, but bear with me while I set out what may be just my own marginally demented thinking.

 

Long ago there were two main Frameworks on LE

 

One gave great promises as to future development.  It may still be moving forward, but I never bother looking any more

 

The second has moved on, because one person, not alone, but aided and abetted by a very positive team of helpers, has stuck with us, and been in it for the long haul, to actually give us something useful and useable.  There are a number of other major modders, who have also stuck with the game, who have founded a whole raft of mods based on that, and are also still moving on, toiling through the heat of the day. 

 

That persistence, and their trying to make something available that most people can use to play out what is merely a game, a fantasy, is what has made the difference in the past, and current progress, of those frameworks (and believe me that there are bits in the current frameworks and mods that I positively loathe, but my own  compromise in that regard is that they are functions etc there for others, so live with it)

 

Other people have come to LL, thrown their stones in the pond, and run away again, leaving half baked, badly functioning stuff - still better than I could even aspire to, but often useless, nonetheless

 

And then. not to be at all overlooked, there are also those other stalwarts who have kindly done us all a huge favour, much appreciated, who have quietly translated those great platforms and mods to SE and AE for us

 

Now the latter are definitely an improvement on LE.  And there are definitely good, major new developments in the pipeline 

 

But until we can see anyone put a degree of commensurate effort into those, over a considerable period of time, with the certainty that they will still be there in five or six years time - by which time, at my age, I fully expect to be dead - I'd be a bit careful about casually throwing the present baby out with the bathtub

 

So, there's cause, and room to stick together

 

And whoever would have thought that Jack Nicholson would be the good guy?

 

 

 

Link to comment

One reason why people stick with LE that I haven't seen here for some reason is simply that several of the mods I like to use have ceased to exist.

 

Some got taken down by the authors for random dramas they had over them, and some are simply to obscure for me to remember where they came from (and no, googling their names didn't help), and some are old versions of mods that got ruined (at least for me) by their own future versions, which also cannot be found anymore on the internet.

 

So I have the LE version of the mod (often, the only version of the mod), because I downloaded it when it existed. If I switch to SE I would have to completely give up on it, and I don't want to. That's all there is to it.

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