Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
If its a compacted mod data _ESLEverything.json file anyone can upload it, no need to ask me. It would be best to upload it with your ESLified plugin, with the permission of the original author.
I have included a file called "StringResources.json". This is to be used for language translations. You may upload your translations of "StringResources.json" and only "StringResources.json" and it is up to you to update it when I update the main program. Unless xEdit changes its output do not edit 2 values: "xEditSessionFilter" and "xEditCompactedFormFilter". They both are filters for xEdit's log files.
File 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.
MergifyBashTags adds Bash Tag merging for merged plugins. Wrye Bash doesn't pick up merged mods bash tags because zMerge does not get and add them to the plugin, instead it will read the disabled plugins bash tags as if they were enabled.
This will read:
- loots master list of tags
- your personal loot meta data
- all merged plugin headers
- and custom bashTags folder inside the data folder
Then it will combine those together and output to the BashTags folder for each merged mod.
ESLify Everything will run MergifyBashTags at the end.
Set "AutoRunMergifyBashedTags" to true in the AppSettings if you want it to AutoRun or it will prompt you at the end.
Or you can edit and use the "Run MergifyBashTags.bat" file to run MergifyBashTags, Just make sure to set it as a exicutable in MO2
If a merge does not contain any mods that have any Bash Tags set then it will not output anything.
## Tweaks and Additions
- Added a small amount of extra logging
- Added Dynamic Armor Varients support
Version 4.5.3
Added Dynamic Armor Variant support
Version 4.5.2
- Fixed ESLifyEverythingScriptESLifyErrorLog log reader to read the script name correctly.
- Fixed the GitHub separator for the list of script names
Version 4.5.0
# Created and added a tool to format Script ESLify bug reports.
1. Run ESLify Everything proceed to Script ESlify.
- If you already have an issue please re-run ESLify Everything anyway.
3. Execute as normal and if there are failed scripts let it finish Script ESLify.
- If it the Papyrus Compiler starts looping infinitely, close PapyrusCompiler.exe with Task Manager and continue on to the end of the program.
4. After closing ESLify Everything run the new exe called "ESLifyEverythingScriptESLifyErrorLog.exe"
5. Allow it to process everything and it will generate a folder called "GeneratedErrorReports", open it
6. Then select the newest dated folder and open it
7. There should be 2 files one says "GitHubReport.txt" and "NexusReport.txt"
- Most Script errors will be as a result of it being decompiled so it is best to post on Orvids Champollion page. I will see it eventually, I track and watch the GitHub for changes. Do not double post to me and Orvid.
- If you are going to post it on GitHub open the "GitHubReport.txt" and copy all of it. Then go to the ESLify Everything's GitHub or Orvid's Champollion GitHub and add a new comment to an existing issue that matches yours or make a new issue
- If you are sure it is something wrong with ESLify Everything and you wish to post the bug on my nexus page. open the "NexusReport.txt", copy all of it, open a new comment and click [bbcode] in the top right corner, and paste the text from "NexusReport.txt".
Version 4.4.2
## Fixes and Imporvments
- Added a disable for MergedPluginFixer pauses, in DevAppSettings
- The error output for the Papyrus Compiler is actually output as debug console output I have now redirected it properly to the console so now debug information is printed properly for failed scripts. It will no longer look as if its just hanging there hopefully. #14 #15
- Changed Voice ESLify to read and write bytes insisted of copy #13
Version 4.4.1
# Champollion Update
Please delete your current Champollion folder at ESLifyEverything\Champollion
I have changed the needed Champollion version to [Orvid's Campollion](https://github.com/Orvid/Champollion), now included inside ESLify Everything
[Nikitalita](https://github.com/nikitalita) graciously allowed me to include it.
# Other Changes
- Updated Mutagen to 4.0.0, this updated contains the fix for #2
- Fixed not fully starting up data when using "-IgnoreScripts" and ignoring scripts inside OutputFolder
- Fixed compiler not using the set papyrus flag
Version 4.3.4
- Added defualt variable initialization for Global Variables and Properties #11
- Added new CMD Argument: -IgnoreScripts
Version 4.3.1
Fixed line FormID detection inside Script ESLify
Version 4.3.0
# Bug Fixes & Improvements
- Hopefully fixed undetectable forms inside the Plugin handles, costs a bit off speeds and performance by a small amount probably still unnoticeable
- Removed unnecessary check for if the HashSet containing string
- Sidestepped FormLink iteration if mod was already edited and just remaps links based off of master references
- Implemented additional DevLoging pauses
- Implemented console counter for the one by one script decompile
- Added Build Merges to run if startup was invalid but the DataFolder still existed correctly
- Added split load order and active load order for Mods merged mods BSAs so that the BSA
- Added a pause after SubPluginCompactor and before finalizing data.
Version 4.2.0
Added Icon's to executables, too easily identify them.
# Bug Fixes
- Fixed issue with mods changing forms during update
- Fixed SubPluginCompactor not editing plugins because they had a master that required it
# Additions and Improvements
- Extra safety check to make sure merged plugins do not get edited by the SubPluginCompactor and only get edited via the MergedPluginFixer
- Reimplemented CMD arguments removed -i and -import, added -c and -check. Same system just changed to check.
- Further simplified and optimized Cell and Worldspace handling, I did a dumb previously
- Added auto check new CompactedModData in the SubPluginCompactor
- This removes the menu item and immediately adds it to the selected plugins list
# Only for Modders
Added a hidden "NotCompactedData" modifier for Compacted Mod Data files
- This will force ESLify Everything to skip the check for if it is compacted.
- This is not for regular users to implement this is strictly for mod authors
- Skipping this check can and will lead to errors in plugins and Data Files, unless properly used.
Version 4.1.1
4.1.0 Upload was not working properly
Version 4.1.0
Extra safety check to make sure merged plugins do not get edited by the SubPluginCompactor and only get edited via the MergedPluginFixer
Reimplemented CMD arguments removed -i and -import, added -c and -check. Same system just changed to check.
Further simplified and optimized Cell and Worldspace handling, I did a dumb previously
Version 4.0.0
# MergedPluginFixer
Compaction for plugins that were merged together
- There is an issue I started noticing if you merge plugins that required a eslified plugin zMerge would loose the FormLinks that relate to eslified mod.
- You should allow ESLify Everything to always check the plugins you merged together
- You can disable the auto run for the MergedPluginFixer by setting "AutoRunMergedPluginFixer": false, in the AppSettings.json
# Improvements & Optimizations
- Simplified Mutagen Cell handling, it should be much more accurate. This changed most
- Removed Dual import dictionaries and made FaceGen and Voice CompactedModData ignore inside there own ESLify sections
- Added setting for enabling and disabling multiple default output folders for Plugins.
- "OutputPluginsToSeperateFolders": true will output each folder without a Custom Output Location to a [plugin name]_ESlEverything folder inside MO2 mods folder
# Bug Fixes
- Fixed check for if the CompactedModData dictionary has a plugin name with different case then what is stored
- Added missing reference types in Cells that were missing previously
- Added Check for if your using @mods identifier without having MO2Support active, Will default back to the output folder if not using MO2support
Version 3.12.0
Added a extra check for if startup fails but the xEdit Log exists then ESLify Everything will parse and output any data from the log without needing to clear the scripts folder.
Added a one by one compile failsafe for failed scripts
- Papyrus Compiler just stops for no reason and does not close, keeping ESLify Everything from doing anything
- You must end the Papyrus Compiler's task in Task Manager manually if it just stops working
Improved detection for detecting that the plugin was changed.
- Probably slower but overall it will be much more accurate.
- No longer needs to duplicate the plugin to check whether it was changed. The Equals still isn't implemented on SkyrimMod in Mutagen.
- Proportional to the size of the plugin there should be half the needed allocation.
Version 3.11.0
Create Json is now included inside of the main file
# Fixes
Moved the merge imports up to above Data Files. It was really meant to only ignore FaceGen and Voice.
Added a process to open an explorer window at the scripts folder to clear the .pex files more conveniently.
Fixed Recompactor not having Load Order Data, Moved Load Order import to above CompactedModData import.
# New Feature
Added Custom Plugin output locations
- Run ESLifyCreateJson.exe or download the CustomPluginOutputLocations.json
- Place it inside of the Properties folder and edit it
- First is the plugin name with extension
- Second is the file path.
Version 3.10.0
Changed the import sequence of CompactedModData and CompactedMergeData to merge the 2 imported dictionaries, instead of have 2 sets of data. Then it clears the unneeded data.
- This is meant to reduce memory usage
Fixed Load Order import, to only import active plugins as well as missing master file during plugin output
- If a master file doesn't exist it wont even start to check it
Added a failsafe for failed decompiling of the script folder.
- If Champollion crashes to soon then there is no logging on when or what has already been decompiled
- If it falls to this it will decompile one by one
- This takes a long time but the BSA scripts and the loose scripts need to be decompiled
Version 3.9.0
Added logging for Champollion, BSA Browser data and the Papyrus Compiler
Added check to exclude empty mod data from plugins added to a merge
Now it will always import everything for Scripts and Plugins
- I separated the Imports into 2
1- One for importing everything to run over Scripts and plugins
2- for only running new ones on FaceGen, Voice and Data Files.
Version 3.8.0
# Added command line arguments
Command line arguments are going to be used mostly to bypass setting restrictions I feel are necessary.
- Current Arguments -help and -import
- More will be added as needed
- See this article for more information: https://www.nexusmods.com/skyrimspecialedition/articles/4645
Version 3.7.0
# Finally implemented NiflySharp.
No longer does the xEdit Script "_ESPFEEverythingFaceGenFix.pas" need to be run after every.
Thank you to [Jampi0n](https://github.com/Jampi0n) for showing me how to iterate and change nif texture paths.
As well as allowing me to include his [NifWrapper.cs](https://github.com/Jampi0n/Skyrim-NifPatcher/blob/main/NifPatcher/NifWrapper.cs) class in ESLify Everything.
Version 3.6.0
# Impovement
No longer will all CompactedModData be run each time. Once it has been run once and being updated it will no longer be added to the list of CompactedModData to be run.
- This can be disabled by setting "ImportAllCompactedModData" to true, then all valid CompactedModData and MergeCaches will be added.
- Setting "ImportAllCompactedModData" to true will disable "AutoRunESLify"
Version 3.5.3
Fixed a crash on empty data files.
Version 3.5.2
### Sound Record Distributor now supports yaml files, has been added to ESLify Everything's filter
# Bug Fixes and Improvements
- When importing CompactedMergeData it was not setting the CompactedModData for the merge to ignore.
- Please set CompactedModDatas that are related to a Merge to ignore by changing the extension to .ignore or deleting the file
- Merges with more then 10k new records will no longer be imported they will still be cached, you can enable large merges by setting "EnableLargeMerges" to true in settings
- Turned VoiceESLifyModData and FaceGenEslifyModData into async methods to attempt to help prevent freezing on large merges.
- Large merges are still not wholly recommended.
Version 3.5.1
Added check/replace for GetModByName in Script ESLify
Version 3.5.0
# Small Changes
- New "SperatorData" property "TrimStart" this will trim the FormID so that there are no 0's if a mod relies on all 6 digits of the FormID
- Prepared AppSettings.json for additional MO2 support
# Added Sound Record Distributor support
Version 3.4.0
# Bug Fixes and Tweaks
- Added build parameter to the Output of plugins to hopefully fix the HITME error on worldspaces.
- Removed unnecessary Hashing in the plugin handlers
# ESLify Split
ESLify Split is for splitting records out of the plugin to a new plugin and allowing ESLify Everything to resolve any possible references to them inside data files or plugins requiring the mod.
- This can not be done to any record at any time.
- This can actually be fairly dangerous
- Please only use this feature if you are an advanced mod user who knows how to check errors and problem solve
See this article for more details: https://www.nexusmods.com/skyrimspecialedition/articles/4627
Version 3.3.1
Added forgotten check for if the plugin still exists before importing the CompactedModData
Added a fix for decompiled decimal values to remove any hex before the 6 that are apart of the FormID
On my part I did not know that the fidCache.json contained the original formIDs for everything and then the map.json only contained the changed FormIDs. Its now properly imported
- fidCache.json is now required
Version 3.3.0
# Minor Changes Additions and Fixes
- Implemented DevLogging
- It is disabled by default, to enable you need to add the DevAppSettings.json to the main directory and set logging to true
- This is unneeded for most users this is only to help me the Author find issues
- Fixed accidental duplication of dialogue topics
# zMerge Support
Now ESLify Everything will attempt to detect any zMerges in the Data Directory.
- This is not meant to process any merges made by the community and shared on Nexus.
- ESLify Everything will not be able to know what they changed after they merged it unless they updated the Merge.json and Map.json
ESLify needs the entire folder that zMerge outputs inside the data Directory.
Folders should be set up like this inside the data directory
```
DataDirectory\MyMerge.esp
DataDirectory\merge - MyMerge\merge.json
DataDirectory\merge - MyMerge\map.json
```
- The fidcache.json and the .txt are not needed
You can further compact the merge and it will parse the map.json and the CompactedModData together and cache the combined data. So you won't loose any data.
- The Recompactor can not and will not edit the merge or check whether its valid. You must redo all the steps each time.
Version 3.2.3
# Tweaks and Changes
- Moved base data storage and GloablaFunctions into a separate Library to be used for multiple purposes in other ESLify Projects of mine
- This change doesn't help anyone other then me and other Mod Authors
- Made it so the program will check the folder where the plugin would be outputted prior to the asking if you would like to try to recompact the plugin
- Tweaked the filter for already contained FormIDs to check for both Original and Compacted IDs
Version 3.2.2
Fixed FormKey Remap to the new system of replacing the ModKey in plugin handling
Version 3.2.1
Fixed issue with trying to remove extra hex when it is not needed
Version 3.2.0
# Bug Fixes
- Racemenu ESLify log lines were still using Custom Skills Framework log lines
- Racemenu ESLify was outputting all jsot files after one was changed
# Tweaks
- Made it so the Enumeration methods use the Data File Connection Object instead of each variable as a method argument
- More an improvement for me it makes it much easier to update, but probably adds much better readability for anyone looking at the source code
- New settings option to disable the Compiler inside of Script ESLify
# Increased functionality
- Now the Form Keys inside of Data Files can be changed as a whole instead of just the FormID
- In the next full build I plan to implement handling Merged Plugins and ESLifying Merged plugins
- Data File Connections do not need to be updated with the new SeparatorData property it will just try to change the direct substring. Or you can set the property as null.
- If anyone has created a Data File Connection for personal use or not should add the SeparatorData property to help prevent accidentally changing multiple FormIDs when its not needed
### SeparatorData contents
"SeparatorData": {
"FormKeySeparator": "", : This is the char or string that separates the FormID and the Plugin Name
"IDIsSecond": false, : True\False True means the FormID comes after the separator, and it needs to do extra processing
"ModNameAsString": false, : True\False the name of the mod is constrained inside of a string value
"ModNameStringCharater": "\u0022" : A Unicode char that surrounds a string
- Fixed logging error with AppSettings.json reader, it was outputting that the plugin editor was disabled even though it was not disabled after the initialization sequence.
- Added a catch to catch an error with manually added source code to "ExtractedBSAModData\Source\Scripts"
- Fixed a issue with the SubPluginCompactor not detecting plugins with corresponding masters
# New Additions and Improvements
- ESLify Everything won't import a Compacted Mod Data file if the Mod plugin does not exist
- Implemented Custom Ignored Plugins that wont be packaged with base. Create a file called "CustomIgnoredPugins.json" inside the Properties folder and format it with a property called "CustomIgnoredPugins" as a list or download the empty template from Nexus. This was made so that updates will not overwrite the base "IgnoredPugins.json" that users may add to to prevent ESLify Everything's SubPluingCompactor from checking things like the base plugins and Auto Patcher plugins and Manual Patches. Like Synthesis and Bashed Patches.
- Added warning for when new MO2 folders are made
- Simplified SubPluginCompactor menu, no longer is it just the escape code you can also now pick option 2 and it will only check the selected CompactedModData.
Version 3.0.4
Fixed a bug with the xEdit log reader, after compacting a plugin with a bracket, this thing [ , inside the plugin name.
Make sure to look over and redo any compacted mod data with a bracket, this thing [ , in the file name, if you are updating to 3.0.4 from any prior version
Version 3.0.3
Fixed xEdit auto run, when Running SE
Version 3.0.2
Reduced Iteration in plugin handling section. Because I didn't think it would slow down as much as it did with my 50ish Compacted Mod Datas.
Version 3.0.1
Hotfix for crash in the new Compacted Mod Data output and import paths.
Version 3.0.0
Patch notes are here: https://www.nexusmods.com/skyrimspecialedition/articles/4568
Version 2.2.0
# Added support for more Data Files
- Racemenu Presets, Internally coded
- CoMap MapMarker json files
Version 2.0.0
# General Additions
- Redid some logging
- Added a menu for Mod added data file's
- Added Auto Run for the xEdit Script at the end if any FaceGen files needed to be adjusted for the new compacted forms.
=
# Reworked eslifing data files
Now new data file types added by mods can be created without the need for the author add new code.
Instead using one of my file json types you can easily define how it needs to read a file and what it should look for.
Note: Some data file structures are not supported yet and others are to specific and/or random for it to be modularized, like Custom Skills Framework.
Custom Skills Framework is still handled with internal code.
# Current supported file and storage types
### Basic File Types
=
- Single File: This will direct to a single file, like Auto Body's "morphs.ini".
- Direct Folder: This run over all files with a specific file name to filter, Perfect for SPID type files, but not DAR because it will need to be in multiple places inside of meshes.
- Data Subfolder: This will go to a specific folder to start then contains another filter for what folders to look in, then finally search for specific file name filters, Perfect for the complexity of DAR and SKSE INI files.
=
### Complex File Types
- Toml: This is meant to handle .toml files with there array structures. File search is the same as Direct folder, but the way it searches for what forms need to change is more complex.
# Added support for more Data Files
- Precision
- True Directional Movement
- POISE - Stagger Overhaul
Version 1.10.0
# Reworked BSA Extraction
ESLify Everything will now cache BSA data for FaceGen and Voice
- Records plugin names linked to FaceGen and Voice
- Records the last time the .bsa file was edited
1. The first time you update it will run through all of your .bsa files minus Skyrim's base bsa files.
2. Then, every subsequent time you run ESLify Everything it will compare the previous last change time with the current last change time. If they are different it will reimport the data.
It will only attempt to extract data when it has detected previously that the bsa contains data for the mod you are running the respective voice Eslify on.
If it detects that there is a new .bsa file ESLify Everything will auto run Script Eslify
Version 1.9.5.1
# New Requirements
Creation Kit, for Papyrus Compiler and the Scripting Flg file.
Champollion, placed inside of the correct folder.
# Updated the AppSettings.json to include more functionality
I chose that Script Eslify would need to have an Ouput Folder to function properly without the lose of Data
In order to recompile scripts I needed the TESV_Papyrus_Flags.flg, I am unsure if Skyrim AE or Fallout 4 uses different flg files, so its included as a setting
Changed the names of Settings to better reflect what is needed, also the output order but that's irrelevant.
# Script ESlify
Now ESLify Everything will extract scripts from BSAs to "ExtractedBSAModData" in the order of your Load Order
Then it will Decompile those scripts using Champollion, then Decompile the loose scripts into "ExtractedBSAModData"
Then it will iterate through all of the scripts to find any forms that need to be replaced with the new compacted forms.
Finally, it will attempt to compile the changed scripts, outputting to the OutputFolder.
If a script fails to compile you need to report it so I can try to find out why, see Extra Directions of GitHub readme.md or 1.9.0 article about what needs to be reported to me for.
Version 1.7.0
Fixes
-Actually fixed the AppSettings.json generation.
New
- Now ESLify Everything will import all of the Compacted Mod Data, then it will read your load order. Then compare it with your compacted mods and attempt to extract FaceGen and Voice Files matching the compacted mods, to the "ExtractedDataFiles" folder located inside of ESLify Everything root folder. This needs to apply to all BSA's in case a mod overwrites the FaceGen Data or Voice files in a different BSA. This will not overwrite loose files inside of Skyrim's Data folder and the loose files will overwrite the BSA files in the output folder.
-- It is ok to delete the "ExtractedDataFiles" between each run of ESLify Everything.
-- BSA file Extraction is handled via command line argumentation using BSA Browser, You are not required to download this, AlexxEG allowed me to include the command line execution inside of my package.
Version 1.6.0
Added Support for Custom Skills Framework and Custom Skills Framework Extended
Small optimization was made, removing redundant code.
AppSettings will no longer be packed with updates, instead for first time users, need to run it for a few seconds and the a default AppSettings.json file will be made, then they will be able to edit there settings.
Version 1.5.0
# Redid some logic and logging data
- Optimized and modularized DAR and SPID iterators
- DAR will now run in Async format
- DAR and SPID can be reused for different levels of automation
- More error logging
- At the end of code it will tell you if any FaceGen Data was generated and to run the xEdit Script.
# Added support for more Data Files
- Base Object Swapper
- KID
- FLM
- Animated Object Swapper
- ENB Lights For Effect Shaders
- AutoBody
- Payload Interpreter
- SKSE INI files
Donations
Both straight donations and premium membership donations accepted
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.
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 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.
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.