Jump to content

Better NPC Support for Devious Devices


Recommended Posts

5 hours ago, greenmango12 said:

Can some one teach me DD basic...

 

so I just make NPC wear DDassets Yoke or Armbinder, >> then I expect,,  they show bound pose like ZAZ do...

 

but how I try it,, it seems not work....  This mod will slove this issue?  if you do same thing, (Add item menu >> pick  yoke and Arm binder from DDa,  then equip them for NPC,, (just use EFF dialogue for follower),,  they equip item, but not pose at all... (so their hand are free move)

 

At current I only install DD frame works.. (base 3 esm) not activate other DD patch etc... then install and activate this mod..

 

====
And after I activate this mod,, then I make NPC equip armbinder,,

they do not show bound pose (as same as before) ,, but the item seems gone away ^^;.

 

I check her equipment, but there is no armbinder anymore, as if it is removed from skyrim world..

 

is it intended?  

 

 

As you point out these are all DD questions, not about my mod. In any case, when picking with AddItemMenu you need to pick from DD integration or from DD expansion, NOT from DD assets. You can pick the keys with AddItemMenu, too, from DD integration. Also unless you know what you are doing I strongly discourage you from adding or removing stuff using the console, you will most probably break DD's logic when doing that. Use the "trade" menu when dealing with followers, or if you experiment with non-followers then use the "openactorcontainer 1" console command to give them devices/take devices from them.

 

Oh, one more, when adding devices using AddItemMenu they will often not work correctly because the game never had a chance to attach the script. This can often be worked around by dropping the item and then picking it up again, putting the item into the game world (not inside a chest or NPC inventory) will force the game to re-evaluate the item.

 

BTW what my mod does is, mainly it prevents the devices from "breaking" when you go through loading screens or when you enter combat with followers.

Link to comment
Spoiler
5 hours ago, Kharos said:

you need to pick from DD integration or from DD expansion, NOT from DD assets. You can pick the keys with AddItemMenu, too, from DD integration. Also unless you know what you are doing I strongly discourage you from adding or removing stuff using the console, you will most probably break DD's logic when doing that. Use the "trade" menu when dealing with followers, or if you experiment with non-followers then use the "openactorcontainer 1" console command to give them devices/take devices from them.

 

Oh, one more, when adding devices using AddItemMenu they will often not work correctly because the game never had a chance to attach the script. This can often be worked around by dropping the item and then picking it up again, putting the item into the game world (not inside a chest or NPC inventory) will force the game to re-evaluate the item.

 

BTW what my mod does is, mainly it prevents the devices from "breaking" when you go through loading screens or when you enter combat with followers.

 

Thanks all kind guide, and forgive me to ask about DD ^^;  I really did not know about DD, but tried to use them as same as other wearable mods.  Now I understand more.. so I think it seems better to install mod which generate DD items correctly, , as @Taki17 mentioned.   

 

Link to comment
3 hours ago, Krynn said:

Sorry, my English is not the best... what settings could I change in the mod so that it runs a little faster? I noticed after the installation that it loads a lot longer when I enter a new place in the city as an example.

 

Not sure if I can help. The mod has a scanner quest that tries to find NPCs with devices; when it finds them, it runs a rather costly script to fix them. There are two options for changing performance, but you need to try if they help in your case:

  • "Scan for NPCs every: 8 seconds"   <- increase this to make the scanner run less frequent, try 12 or 16
  • NPCs to process/3 seconds: 3"   <- reduce this to make the mod slow down when fixing NPCs, try 2 or 1

I cannot promise that these help, if your computer is old or your game has a very large number of NPCs then this mod may cost you some time.

Edited by Kharos
Link to comment
8 hours ago, Kharos said:

 

Not sure if I can help. The mod has a scanner quest that tries to find NPCs with devices; when it finds them, it runs a rather costly script to fix them. There are two options for changing performance, but you need to try if they help in your case:

  • "Scan for NPCs every: 8 seconds"   <- increase this to make the scanner run less frequent, try 12 or 16
  • NPCs to process/3 seconds: 3"   <- reduce this to make the mod slow down when fixing NPCs, try 2 or 1

I cannot promise that these help, if your computer is old or your game has a very large number of NPCs then this mod may cost you some time.

 

Well, old... about ~ 5 years, but that's probably old in this high-end PC era we live in.
I had to uninstall the mod unfortunately, the settings to 2 or 16 to set has unfortunately brought nothing, without your mod runs the game with me now again a lot faster.
Too bad and thanks!

 

 

Link to comment
2 hours ago, Krynn said:

 

Well, old... about ~ 5 years, but that's probably old in this high-end PC era we live in.
I had to uninstall the mod unfortunately, the settings to 2 or 16 to set has unfortunately brought nothing, without your mod runs the game with me now again a lot faster.
Too bad and thanks!

 

 

 

Ok, that's not really old for Skyrim, not sure why it is causing such a notable slow-down...

Link to comment
40 minutes ago, valentinian said:

Given the various SE-related script changes, is it safe to update directly from 0.5.1 to 0.6 in an ongoing SE save?  Or will it require a new game?

 

Upgrading should work in theory. Make sure to re-visit the MCM options page, there are some changes.

Link to comment
  • 2 weeks later...
On 7/8/2020 at 11:01 PM, Kharos said:

I have a collection of fully automated build scripts. The main script (build.sh) will compile all papyrus scripts, merge the resulting .pex files with the package file tree that contains the other files, copy-paste the version number into the FOMOD info.xml file, and build a ready-to-install .7z archive containing everything. This takes about 10 seconds. Installing the resulting build with MO2 takes about another 10 seconds.

 

In other words, for changes that don't require me to touch the .esp I never even open creation kit (saving a lot of sanity), and I can very rapidly make changes and test them.

Hey NOW I get what you are saying lol

Link to comment
2 hours ago, donttouchmethere said:

Hey NOW I get what you are saying lol

 

?

 

Unfortunately making sure that all the .psc dependencies (and their dependencies) are in the Data\scripts\Source folder is a lot of work on a new installation. I wonder if I could somehow make stubs and include them in my repo to solve that issue ?. Not sure if anybody has tried something like that?

Link to comment
4 hours ago, Kharos said:

Unfortunately making sure that all the .psc dependencies (and their dependencies) are in the Data\scripts\Source folder is a lot of work on a new installation.

After my first tentative steps into the shady milieu of programming, my first idea was to collect all psc in one big folder as a compilation resource. In the process, I stumbled across the hint that this might have a negative effect on the compilation process.
I still feel giddy from the impromptu stop against that wall.

 

4 hours ago, Kharos said:

I wonder if I could somehow make stubs and include them in my repo to solve that issue

Is a stub a way to selectively grab only the needed psc for one specific compiling process or a way to list needed psc for a specific mod?

I could imagine the collection of all those psc is quite a task.

 

4 hours ago, Kharos said:

Not sure if anybody has tried something like that?

No one who is still alive or at least responsive. ?

 

 

Wait, what is a stub again? Some possible outcomes ^^: https://www.urbandictionary.com/define.php?term=stud

Edited by donttouchmethere
Link to comment
1 hour ago, donttouchmethere said:

Is a stub a way to selectively grab only the needed psc for one specific compiling process or a way to list needed psc for a specific mod?

I could imagine the collection of all those psc is quite a task.

 

Ok, so here is the problem. In my scripts I am using some DD scripts (calling functions in them). So the papyrus compiler requires the source code (.psc) of these DD scripts to verify that the function that I am calling exists and that I am calling it with the right number and type of arguments. The compiler is looking at the whole source code of these scripts, even though I am only calling a small number of functions. There are parts in these scripts that are using other scripts... so I have to include these other scripts too, even though I am not using them (not even indirectly)... and these in turn use even more scripts, and so on :flushed:.

 

So because of that I end up with a very large number of .psc files that need to be in the Skyrim Data\scripts\Source folder for the papyrus compiler, even though I am only using a small number of them in my mod. Some of these psc files are from soft dependencies of DD, so they are from mods that I do not even have installed. Some of these mods were actually hard to hunt down. Anybody who wants to build my mod has to do the same.

 

I am wondering if I could instead make an "edited" version of these DD .psc files that only contain the definition of the functions that I am using, with a (mostly) empty body. And then include this edited version as part of my github repo and point the papyrus compiler at these files, such that it is no longer necessary to find a large number of .psc files and copy them into the Skyrim folder. Not sure if it will work though, depends on how exactly the Papyrus compiler is working.

 

See https://en.wikipedia.org/wiki/Method_stub , of course the stub would only be used for compilation, when you actually install the mod it would then use the "real" file from DD (which is a compiled .pex file, not a .psc file).

Link to comment
27 minutes ago, Kharos said:

Some of these mods were actually hard to hunt down. Anybody who wants to build my mod has to do the same.

Some documentation about the needed psc would be already a great step forward. >.<

27 minutes ago, Kharos said:

I am wondering if I could instead make an "edited" version of these DD .psc files that only contain the definition of the functions that I am using, with a (mostly) empty body.

That would be a giant leap forward ^^

27 minutes ago, Kharos said:

Not sure if it will work though, depends on how exactly the Papyrus compiler is working.

That might be the last thing we ever heard of you. o.o

27 minutes ago, Kharos said:

See https://en.wikipedia.org/wiki/Method_stub , of course the stub would only be used for compilation, when you actually install the mod it would then use the "real" file from DD (which is a compiled .pex file, not a .psc file).

Thanks for the details. If I ever want to fake a progger, I'll come back to you =D

Also a great excuse for any unfinished script project.

 

 

(I even bought a ski mask and a banana to impress visitors!)

Spoiler

 

 

 

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

Some documentation about the needed psc would be already a great step forward. >.<

That would be a giant leap forward ^^

That might be the last thing we ever heard of you. o.o

Thanks for the details. If I ever want to fake a progger, I'll come back to you =D

Also a great excuse for any unfinished script project.

 

 

(I even bought a ski mask and a banana to impress visitors!)

  Reveal hidden contents

 

As far as I am aware these are the scripts required for DD (on the SSE version, never tried AE and I don't have access to LE):

- CK scripts (you should be prompted to extract them the first time you start the CK)

- Skse scripts (you can find them on the SKSE page I think)

- Racemenu (you can use the version on Nexus for SSE, but you need to extract the BSA, otherwise the compiler might not work)

- SexLab (scripts are inlcuded in the installation)

- SkyUI source script, from here -> https://github.com/schlangster/skyui

- ConsolUtilSSE from here -> https://github.com/Ryan-rsm-McKenzie/ConsoleUtilSSE. IMPORTANT: The repo has undergone some changes after AE, you need to download the correct version for your installation

 

These four might or might not be required for DD. They are required for Deviously Cursed Loot tho (and bathing in skyrim took a while to figure out, and I still don't get why it's needed, but eh)

- Bathing in Skyrim, from Nexus. Both LE and SE version seem to work

- Skooma Whore, from here

- Fnis Sexy moves, from Nexus

- Aradia Devious Device, from here

 

This is what I had install to recompile scripts from both DD and cursed loot. Might be missing something since I use SME(FT), which includes modding utilities and some script source. Some possibilities include JContainers, PapyrusUtils (but should be included in SexLab iirc), Papyrus Extender and Fuz Ro D'oh, but I never tried without them and I have no idea if they are actually required. Hope this helps!

 

Sorry Kharos for the post not really in line with your mod, I figured it would be better to answer directly here. If you want (or mods think it's better) I can move the conversation to somewhere else :)

Link to comment
2 hours ago, RandomPufferFish said:

As far as I am aware these are the scripts required for DD

Are you sure that's all?

For LE I need source scripts from around 16 sources.

In your list are many mods missing which would cause warnings during compiling of various scripts for DD 5.1 LE.

 

DD 5.1 (LE) source file details here:

Spoiler

 

 

Edited by donttouchmethere
Link to comment
1 hour ago, donttouchmethere said:

Are you sure that's all?

For LE I need source scripts from around 16 sources.

In your list are many mods missing which would cause warnings during compiling of various scripts for DD 5.1 LE.

You didn't just copied that list from SE DD support topic? o.O

DD 5.1 source file details here:

  Reveal hidden contents

 

 

I did not recompile all DD scripts, just a few where I knew there were bugs and/or things I wanted to change (namely zadBQ00 and ZadLibs) and those I listed + SME(FT) were enough. Keep in mind that I am on SSE so thing like NiOverride are included in RaceMenu.

I did forget SL Aroused tho, good catch (saw in your list).

 

I did however recompile several other scripts from other mods (deviously Cursed Loot, Key anticheat, More Devious Starts, Deviously Vanilla, and Devious Carriages Continued I think) and I never had any issues with my setup, so I think the list above is somewhat complete.

 

If I have time in the next few days I'll try to deactive mods that I did not install manually and were part of SME(FT) and report back, but no guarantees!

 

EDIT: I saw a post by Zarantha in the "complete research history", they sure know better than I do regarding DD internals. From my limited experience:

MFG fix might be an additional requirement. I install it by default with DD, so I might not have noticed the need for it.

XP32 LE was definitely not needed on my side, but it might be that I just did not compile the script that required it

FNIS, same as above. I am sure Sexy Moves is needed, but you need to install FNIS base and run it anyway. If source are needed you will have those for sure

UI extension: I thought I mentioned it, my bad. It's one of the mods installed with SMEFT

 

 

 

 

Edited by RandomPufferFish
Link to comment
55 minutes ago, RandomPufferFish said:

NiOverride are included in RaceMenu

It's included in the offical Racemenu on LE too, but not as source file in the loose racemenu source scripts.

55 minutes ago, RandomPufferFish said:

If I have time in the next few days I'll try to deactive mods that I did not install manually and were part of SME(FT) and report back, but no guarantees!

No hurry I'm still on LE and don't see that change so quickly.

But I would add a SE section for "source list for compiling specific mod scripts for SE" (my blog category names keep getting worse) if you have some tasty detailed information to share.

If I'm on it already I could could squeeze that SME(FT) thing in there too. Guess it a requirement for your compiling adventures anyways, right.

Edited by donttouchmethere
Link to comment
7 minutes ago, donttouchmethere said:

It's included in the offical Racemenu on LE too, but not as source file in the loose racemenu source scripts.

Mmm I'm not super sure. I think I remember getting an error about NetImmerse before extracting the Racemenu BSA which went away after extracting. I will doublecheck and let you know!

7 minutes ago, donttouchmethere said:

No hurry I'm still on LE and don't see that change so quickly.

But I would add a SE section for "source list for compiling specific mod scripts for SE" (my blog category names keep getting worse) if you have some tasty detailed information to share.

Sure, I'll let you know!

7 minutes ago, donttouchmethere said:

If I'm on it already I could could squeeze that SME(FT) thing in there too. Guess it a requirement for your compiling adventures anyways, right.

It's super great, link here (it's a wabbajack list): https://eziothedeadpoet.github.io/SME-FT-/. Takes care of all tools and base mods right away.

Edited by RandomPufferFish
Link to comment
Version 0.7 beta 2
- Prevent submissive PAHE slaves from struggling
- Prevent afraid PAHE slaves from struggling
- Small improvements to handling of contraptions
- Changes to build system: Use stubs for most dependencies

 

Skyrim LE:

Better NPC Support for Devious Devices 0.7 beta 2.7z

 

Skyrim SE:

Better NPC Support for Devious Devices 0.7 beta 2 SE.7z

 

This is a somewhat experimental release. I changed the build system, in the newest branch it should no longer be necessary to copy a gazillion third party script sources into the Skyrim data/Scripts/Sources folder. Instead there is a "stubs" folder with stubs that contain just the functions that are used by my mod; my build script tells the papyrus compiler to use these stubs instead. This is a new procedure so we will have to find out if things are still working correctly. I expect that they will (and that the papyrus compile only uses the stubs for "validation" and will "link" with the real files at run time) but I guess that there is no way to be sure other than trying it out.

 

Edited by Kharos
Link to comment
21 hours ago, sath81 said:

Can this be compacted / ESLified?

 

If you know how to do it, you can try to take the SE edition,  compact it, and make it an esl. There should not be any hardcoded form ids in the scripts. But I have never actually tried that, so it is possible that you find issues...

Link to comment
  • 2 weeks later...

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