Jump to content

Feature request: SKSE dependency tracking


HomerSparkle

Recommended Posts

The most common SKSE-dependence of mods are all the mods that uses MCM.

 

MCM means SkyUI, but despite SkyUI depends directly on SKSE/SKSE64 it does not contain a DLL. This means even if SSE is updated the moment SKSE64 is updated SkyUI will work without doing anything apart for updating SKSE64.

 

All the mods using MCM that therefore depends on SKSE but does not have any other dependencies will also work despite the mods aren't updated.

 

Only mods using DLL or depends on another mod using DLL are problematic and possibly don't work for some time after SSE is updated.

Link to comment
Share on other sites

I was hoping that maybe at least the ESMs/ESPs referenced SKSE.

 

Campfire and Frostfall do.

 

Lanterns of Skyrim and RaceMenu don't.

 

Campfire and RaceMenu writes to the SKSE directory during install.

 

Frostfall and Lanterns of Skyrim don't.

 

I'm not giving up. :sweat:

Link to comment
Share on other sites

OK, I've found a common thread.

 

Every mod that uses SKSE, which I've examined so far, contains a "scripts" directory in the BSA. I'm fairly certain that mods which don't use SKSE will have no such directory (Ed. sadly this is not necessarily true).

 

Now, if I could just find a BSA tool that works entirely on the command line, has a switch to only list the contents to stdout (a la any other archiver), and can return a sane exit code when asked to grep for a directory object type named "scripts" in the root directory ... job done.

Link to comment
Share on other sites

On the other hand, SKSE is only an extender (extended functions). Scripts can merely use the vanilla script engine (Papyrus), and don't necessarily have anything to do with SKSE.

 

I'd have to parse the PEX files, or the PSCs if available, to actually look for references to SKSE.

 

The good news is that the Papyrus compiler does not remove or obfuscate symbols during compilation, therefore the strings references will be present and parsable, even in the absence of source files.

Link to comment
Share on other sites

The most common SKSE-dependence of mods are all the mods that uses MCM.

 

MCM means SkyUI, but despite SkyUI depends directly on SKSE/SKSE64 it does not contain a DLL. This means even if SSE is updated the moment SKSE64 is updated SkyUI will work without doing anything apart for updating SKSE64.

 

All the mods using MCM that therefore depends on SKSE but does not have any other dependencies will also work despite the mods aren't updated.

 

Only mods using DLL or depends on another mod using DLL are problematic and possibly don't work for some time after SSE is updated.

Great idea. Because those are the ones that require an update if SKSE is updated.

Link to comment
Share on other sites

OK, I've found a common thread.

 

Every mod that uses SKSE, which I've examined so far, contains a "scripts" directory in the BSA. I'm fairly certain that mods which don't use SKSE will have no such directory (Ed. sadly this is not necessarily true).

 

Now, if I could just find a BSA tool that works entirely on the command line, has a switch to only list the contents to stdout (a la any other archiver), and can return a sane exit code when asked to grep for a directory object type named "scripts" in the root directory ... job done.

 

 

AFAIK ALL BSAs contain a scripts directory, Script Extender or no.

Link to comment
Share on other sites

Took me a while to check this, because as it turns out most of the mods in my load order are just loose files, but I've found at least one BSA that does not contain a scripts directory, namely the Unofficial High Definition Audio Project.

 

Where there's one there will be others.

 

But in any case, as I've said, the mere presence of this directory might just mean that vanilla scripts are used. To discover if SKSE is actually referenced, and therefore presumably needed (or at least optional), I'd need to iterate through the scripts with a parser until a reference to SKSE is found.

 

At this stage, with my limited knowledge of SKSE and Papyrus in general, I have to assume that:

  1. If no scripts are present then neither vanilla Papyrus nor SKSE are used (directly by the mod)
  2. If no reference to SKSE is discovered then SKSE is not used (again, directly by the mod)
  3. The mere existence of the term "SKSE" in a PEX or PSC is enough to assume dependency

Any or all of the above might not be true. I just don't know enough about the process to say for sure, but it's an educated guess.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...