WHAT ARE PLUGINS?
Plugins are files ending on .ESP or .ESM. In 2017 a new filetype ending on .ESL has been introduced by Bethesda for the Creation Club, it’s essentially a smaller ESP. Plugins edit Skyrim SE’s master files or add new records.
ESP versus ESM
The most common plugin is the Elder Scrolls Plugin (ESP) and it’s used for the majority of mods. ESPs can be created using the Creation Kit or xEdit and may contain all kinds of data for cells, wordspaces, NPCs, their behaviour and appearance, game rules, quests with their different stages and dialogue, and so on.
Elder Scrolls Master plugins (ESM) are always loaded on top of your load order, before your ESPs. An ESP always requires at least one ESM which is commonly Skyrim.esm, one of the five official master files. The other four are Update.esm, Dawnguard.esm, HearthFires.esm and Dragonborn.esm, and they contain all data added by the three DLC and various updates. All five master files together are essentially the skeleton of the game, to be filled out by assets such as textures, scripts, et cetera.
Assets are often packed in Bethesda Softworks Archives (BSA) which require an ESP / ESM with the exact same name to be loaded into the game. Skyrim’s assets are packed in 18 BSAs located inside your Data folder. You can read more about assets and mod order here.
Plugin limit and ESLs
You can load up a maximum of 255 ESPs / ESMs (including the five master files) into the game. If you exceed that limit, Skyrim SE will crash on launch.
Elder Scrolls Light plugins (ESL) are the exception here due to them being smaller and having a lower formID budget, which is why they are often used for smaller mods, patches or empty plugins that load a BSA. You can load as many as 4096 ESLs.
Plugins may also depend on plugins that are added by other mods. If a plugin’s master file (the ESP / ESM it depends on) is not in your load order or not loaded before the dependant plugin, your game will also crash on launch.
THE RULE OF ONE
The data inside the plugins is saved in the form of records and each of them has a unique formID. Such records function like layers and only the one on the top can be read – it covers up all those below. If one of the layers below the one on top edits the same record, a conflict arises.
This is also called The Rule of One.
Assuming we are loading the official five master files in the correct order – Skyrim.esm / Update.esm / Dawnguard.esm / HearthFires.esm / Dragonborn.esm – the third DLC’s plugin (Dragonborn.esm) would be on top of our stack. If we open up those five ESMs in xEdit and take a look at the individual records, we won’t have to search long before we find a conflict.
As you can see above, there are three layers – Skyrim.esm, Update.esm and Dawnguard.esm all edit this record. The first of the three (the one loaded at the top) is Skyrim.esm and it adds two keywords in its own layer. Next comes Update.esm with a new layer and it includes both Skyrim.esm keywords but adds a third one. And finally Dawnguard.esm has its own layer in which only one of the two original keywords is included and it also did not incorporate the new keyword added by Update.esm.
This is a conflict.
How do we fix that? By creating a new layer. The entire record gets copied into a new plugin that is placed ‘on top of the stack’, meaning it is loaded below / after the five official master files. This new plugin now adds the new layer into which we can drag (copy) all relevant edits to resolve the conflict.
Fortunately for us, the Unofficial Skyrim Special Edition Patch already did this as we can see when we open it in xEdit.
Core plugins / layers
It should now be obvious why it is important to load plugins in a specific order to have our ‘layers’ arranged the way we want them. The default ‘layers’ from the five official ESM files should be placed at the very bottom with the Unofficial Skyrim Special Edition Patch placed on top of them.
Remember that ESM files are always loaded at the top of your load order (the bottom of your ‘stack of layers’). The USSEP’s plugin is an ESMified ESP so you can place it directly below the five official master files. In your load order it looks like this:
005 Unofficial Skyrim Special Edition Patch.esp
This is your base – all the game’s data with some specific layers fixed by the USSEP. Any mod you install, must be placed below the USSEP here which means it overwrites your base layers.
Load order and patches
Most people are discouraged by the complexity of plugins and xEdit, so they prefer to rely on the mod author’s instructions and patches made by others. There’s nothing wrong with that! It’s the ‘casual’ approach and requires the least amount of time and effort – at least so long as you do read the mod descriptions and keep your mod list short, otherwise you will break your game or produce countless bugs and issues with no idea how to fix them.
When that happens, people usually ask for support in one of the modding forums. They will then be told to use LOOT – the Load Order Optimization Tool. Technically, there is nothing wrong with that either – LOOT accesses a master list with priority rules (determining where specific plugins should be placed) and is also capable of analyzing your plugins themselves.
After running LOOT, you will probably be advised to create a Merged Patch with SSEEdit which automatically merges all conflicted records together. And finally, you ‘should’ use Wrye Bash (yet another mod manager) to create something called a Bashed Patch to merge the leveled lists.
To LOOT Or Not To Loot
LOOT is not perfect. It doesn’t have rules for every plugin available and it does make mistake. To ensure that a long load order does not contain any critical conflicts, you would still need to go through all your plugins by hand – even after running LOOT – in order to create your custom conflict resolution patch.
The xEdit Merged Patch is also semi-useful for a long plugin list because it is automated and (1) doesn’t catch all conflicts or (2) doesn’t always resolve them the way it should. The same goes for the Bashed Patch which additionally relies on some tags (RELEV, DELEV, etc) which are not always pre-added by the author.
If you let the Merged Patch handle conflict resolution, you will still have to go through it, fix some things and resolve leftover conflicts in your other plugins. Same thing goes for the Bashed Patch – while it is fairly reliable, you’re still gonna want to adjust it by hand for a long and complicated mod list. Often it merges leveled lists together in such a way that – for example – causes NPCs to have the wrong or too many items in their inventory.
In short, LOOT, Merged Patch and Bashed Patch won’t fix everything by themselves.
Eventually you’ll probably invest just as much time in adjusting your load order and creating patches by hand as you would if you never used any of these tools. This is why I don’t even bother anymore with installing LOOT and Wrye Bash, but instead optimize my load order by hand and do the conflict resolution myself. For a relatively short load order with around 40-50 plugins or less, LOOT and the two automated patchers will most likely do the trick, but anything larger requires more time and effort.