Jump to content

Feature request: SKSE dependency tracking


HomerSparkle

Recommended Posts

Taking a quick look on MO2's filtering-options that does include filtering for "contains script extender" and "contains script extender files".

 

Only the mods including DLL-files and located at

data\SKSE\plugins\

 

are listed as "contains script extender", while "contains script extender files" also include one extra mod that contains only an ini-file also located under

data\SKSE\plugins\

 

Despite SkyUI definitely relies on SKSE, this mod only contains esp + bsa and is not listed as "contains script extender". The bsa doesn't seem to include a SKSE-directory.

Link to comment
Share on other sites

It looks like MO2's filters are inadequate, because they're not checking the actual contents of the BSAs for scripts.

 

Of course, Vortex doesn't have this ability either. Currently.

 

I just checked the SkyUI BSA, and although it doesn't contain an skse\plugins directory (no DLLs) it does contain a scripts directory (with no source directory, sadly), and ski_main.pex (and presumably others, I haven't checked yet) contains references to SKSE (e.g. "ERR_SKSE_VERSION_RT" and "The Skyrim Script Extender (SKSE64) is not running. SkyUI will not work correctly!").

 

Given my understanding thus far, this is what I expected. There are four ways to use scripts in Skyrim:

  1. Use only vanilla Papyrus functions, so there are no SKSE scripts and no SKSE plugin DLLs
  2. Use only SKSE base functions (and potentially also vanilla Papyrus functions), so there are no SKSE plugin DLLs but there will be scripts referencing SKSE
  3. Use SKSE functions extended by additional SKSE plugins, so there will be both at least one SKSE plugin DLL provided (by this or some other mod), and one or more scripts referencing both SKSE base functions and the additional functions provided by the plugin(s) (and potentially also using vanilla Papyrus functions)
  4. No scripts of any kind are used (except potentially FOMOD, which is only relevant during installation, and has nothing to do with either Papyrus or SKSE)

Actual examples of the above, respectively:

  1. FNIS uses only vanilla Papyrus functions, there are scripts but none referencing either SKSE or SKSE plugins
  2. SkyUI uses only SKSE base functions (and possibly vanilla Papyrus functions), SKSE scripts only without any plugins
  3. Frostfall and Campfire use PapyrusUtil.dll, an SKSE plugin, along with scripts that reference both this plugin's extended functions and SKSE's base functions (and presumably Papyrus vanilla functions). Note that although Frostfall uses PapyrusUtil.dll, it does not actually provide it, it's in a separate mod called "PapyrusUtil SE - Modders Scripting Utility Functions", and confusingly also packaged with Campfire (file conflict)
  4. CBBE uses no scripts at all. Meshes, textures and XMLs only (including FOMOD XMLs)

So in summary:

NEEDS_SKSE=0
   if [ -d data/scripts ] ; then
      if [ -f data/scripts/*.pex ] ; then
         if grep -q SKSE data/scripts/*.pex ; then
            NEEDS_SKSE=1
         fi
      fi
   fi

Excuse my Linux-ese :smile:

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