Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

WigOnTheRun

Uploaded by

WigOnTheRun

Virus scan

Some manually verified files

About this mod

Eslifies all Form Data in files.

Requirements
Permissions and credits
Mirrors
Changelogs
Donations
Notice: Someone previously asked for a way to track any mods that are capable of being ESLified and what does not work when ESLified. While I do not believe any mod is not capable of being ESLified besides what simply can not be and what has actual problems within Skyrim's engine. I have now made a list of mods that the community and I can add to. The List is here. Post to this forum here, so submit your findings.

Source Code on GitHub: https://github.com/Michael-wigontherun/ESLifyEverything

Overview

Many plugins do not need to be regular esp. The only reason they are still a regular esp is that the modder left and didn't open permissions, or they are required by things like DAR and SPID so no one wants to compact and update the SPID or DAR files. One of the exceptionally amazing ideas Bethesda had was to link Voice lines and FaceGen data to the formID instead of a file path inside the form, so larger follower mods are never going to be Eslified when they absolutely should be. A few years ago I created separate programs to handle Eslifing Voice lines and FaceGen data but it could not fix the texture path inside the NIF file. Then MaskedRPGFan created ESPFE Follower - Eslify facegen and voices, which worked for some and others not really at all. There is one major issue with it, it can't handle multiple files. And one minor issue is it uses entirely xEdit scripting API, which is using a Language called Pascal. Nothing wrong with that of course, it is effective as a scripting language for xEdit's needs. However, it is slow and lacks many features, so expecting it to handle everything that Skyrim modding has and needs Eslified would be time-consuming and sloooooooooow.

This should help people who don't know what ESLifing is and how to determine if a mod is capable.
ESLify (A Guide to ESL Flag Your Plugins And Maintain Your Plugin Limit)

This is no longer needed in 1.9.5.1+
This will help you find what scripts do not rely on a specific form
Bethesda Pex Disassembler


Description

ESLify Everything is a .Net 6 program that reads the data outputted by xEdit when it compacts forms using the Right click->Compact FormIDs for ESL. 

Extracts FaceGen and Voice Data Files from the necessary BSA's then eslifies the files without overwriting loose files. Then overwrites those files with the loose file versions, in order to ensure no data is lost.

Currently Eslifies
  • Recompacts plugins and Updates Sub Plugins
  • Voice Files, Internally coded
  • FaceGen data, Internally coded
  • SPID, Base Object Swapper, KID, FLM, Animated Object Swapper
  • Dynamic Animation Conditions
  • ENB Lights For Effect Shaders
  • AutoBody
  • Payload Interpreter
  • SKSE INI files
  • Custom Skills Framework and Custom Skills Framework Extended, Internally Coded
  • Papyrus Scripts, Internally coded
  • Precision files
  • True Directional Movement files
  • POISE - Stagger Overhaul files
  • RaceMenu Presets, Internally Coded
  • CoMap
  • VSU
  • Sound Record Distributor
  • Dynamic Armor Variants
Message me via Nexus comments on this mod, or making a new issue on this mod's Github.

Quote from MaskedRPGFan's ESPFE Follower - Eslify facegen and voices, because its a good summery of what ESLify is doing and why its done.
FAQ:

Which mods should not be converted?
SkyUI_SE.esp, RaceMenu.esp, RaceMenuPlugin.esp and FNIS.esp. The general rule is not to convert any mods whose RecordIDs are used in scripts. Also, do not convert any mods in the current game or just start a new game.

What is ESPFE, ESL, ESP?
Normal ESP and ESM plugins have a limit of 256. (But Skyrim.ESM, Update.ESM, etc take up some of those).

ESLs are "light" plugins. They contain 2048 or fewer records. They have a limit of 2048. ESLs are loaded, along with ESMs, before ESPs in your load order.

ESPFEs are ESPs, but they are "flagged" as an ESL. They are basically just normal ESPs, but with less than 2048 records and do not contribute to the 256 limit. ESPFE record numbers start with 800, so to convert ESL to ESPFE you need to renumber the records.

Why I need to rename files? (meshes, textures, voice files)
When you convert ESP to ESPFE, you need to renumber the records. Facegeom meshes, facetint textures and voice files will not work because their names depend on records, this script will automatically rename all these files.

Why I need to edit facegeom nif files?
Facegeom (nif) meshes have built-in texture (facetint) paths. When you renumber an NPC record, you also need to change the path to the texture.

What is a SEQ file?
The SEQ file contains information about "Start Game Enabled" quests. If your mod contains new quests that must be running from the very get-go, you need to create a SEQ file telling the game about it, otherwise the quest might not run, fail to run scripts, fail to enable dialog or mess up in many other ways.

ESLify Everything does many more then just FaceGen and Voice files, see the above Currently ESlifies for the extra data this can prosses if its found.

A few edits to the quote is ESPFEs are ESLs that don't act like master files. and the numbering system is the same between ESL and ESPFE, they both can only contains FormIDS between 800 and FFF. You could quite literally change the file extension of the compacted .esp file to .esl and it would work perfectly fine. DO NOT DO THIS THOUGH. If it requires another mod that is a regular esp, it will then force them both to be loaded at the top of the your load order, causing at best them to load at the top, at worst they will be overwritten by other mods and not work as intended.

Directions

Download ESLify Everything from my Github

Inside of these
Version 4.0.0+ directions: Article

ESLify Split - Directions: Article

ESLify Everything zMerge Support: Article

Additional Features list: Article

Extra Notes

Releases are on Github

Source Code on GitHub: https://github.com/Michael-wigontherun/ESLifyEverything

Credits
MaskedRPGFan for allowing me to copy some of his code inside ESPFE Follower - Eslify facegen and voices specifically the CreateFaceMesh procedure
ElminsterAU and the xEdit team for SSEEdit 
AlexxEG for allowing me to including BSA Browser command line exe, to extract BSA data
Jampi0n for showing me how to use NiflySharp and allowing me to include his NifWrapper.cs class file.
Orvid's Champollion team They have fixed many things in Champollion, as well as allowing me to include it in the download.

Tools used
Visual Studio 2022
Visual Studio Code
NotePad++