Skyrim's Load Order SystemIntroductionLoad ordering is the method used to determine how conflicts between mod plugins (.esp, .esm files) should be decided. If two plugins alter the same game data, then the changes made by the plugin loading later will override those made by the plugin loading earlier. This "rule of one" results in a list of plugins, with those earlier in the list having any conflicting changes overriden by those later in the list. This list is the load order of the plugins.
A game will only load the plugins that are active. Up to 255 plugins, including the game's .esm file, can be active at any one time. Active plugins are listed in the game's "plugins.txt" file, which is stored in the user's local application data folder. Nevertheless, it is useful when working with load orders to consider the load order of all plugins, even if only some of them will actually be loaded. This is both because it is easier to display a single list of plugins than a list and an unordered set, and because modders have engineered methods that allow the changes made by inactive plugins to be loaded by another plugin (eg. Wrye Bash's Bashed Patch). When any such methods are being used, the load order of inactive plugins decides which plugins override others, similar to as if they were active.
Skyrim uses a different system to that used in previous games, introduced in Skyrim v1.4.26, in which load order is decide by the order in which plugins are listed in "plugins.txt". This differs from the load order system of previous versions of Skyrim and Morrowind, Oblivion, Fallout 3 and Fallout: New Vegas, which used the relative timestamps of plugins in the game's Data directory. As such, many third-party utilities that interact with load order have had to be updated to work with the new system.
Some utilities have already been updated: others have yet to be updated. It's a good idea to check if the utilities you use need updating or not, and whether updates are available.
What This Means For... Mod Makers & UsersThe bad news: Any utilities that you use to manage load order may not have any effect, depending on whether or not they support the new system. Skyrim's launcher can be used to manage the load order of active plugins if all else fails.
The good news: Nothing changes when it comes to making or using mods, it's just business as usual. Just bear in mind the point about the utilities you use to manage load order may needing updating, and if that is the case, have patience while the programmers do their thing.
If you want to manually set your load order instead of using Skyrim's launcher, the instructions below may be of use:
- Open your plugins.txt in a text editor. plugins.txt is found in your local application data folder. On Windows Vista/7, this is C:\Users\[username]\AppData\Local\Skyrim\plugins.txt. This is a hidden folder, so you will either need to type it into your Windows Explorer address bar or change the relevant viewing settings.
- In plugins.txt, list the plugins you want active in the load order that you want them in. Each plugin goes on a separate line. Master files should go before non-master files. Merged or imported plugins are not active plugins, so should not be listed in plugins.txt.
- If you also have a loadorder.txt in the same folder as plugins.txt, then update it so that the plugins in plugins.txt are in the same order in both files.
- Save the edited file(s) and quit.
- Don't try to then edit your load order through the Skyrim launcher. It has been reported to reset your load order if you set it up manually.
What This Means For... Mod Utility ProgrammersThe bad news: Your utilities will no longer function when it comes to load order (both getting and setting) until you update them to support the current system. As well as that, the major change in the new system is that inactive plugins no longer have a position in the load order, which makes it very difficult to both represent those plugins in a meaningful way, and also causes problems with techniques that use inactive plugins such as Bashed Patch merging and importing.
The good news: Lojack (Wrye Bash), Kaburke (Nexus Mod Manager) and WrinklyNinja (BOSS) have developed a standard (known as textfile-based load ordering) that utilities can follow to avoid issues with the new load order system. Total load order is to be stored in a "loadorder.txt" file, itself stored in the same location as "plugins.txt". "plugins.txt" would be kept in synchronisation with "loadorder.txt" so that the order of plugins that the game loaded was the same for both files, but the latter would allow the load ordering of inactive plugins.
A full description of the standard can be found in the BOSS API Readme, with the BOSS API being a full implementation of the standard that also supports the timestamp-based system used by earlier games through the same interface. The BOSS API also includes various functions for querying and changing load order and activation status, so is convenient for those who want to avoid having to write their own code to handle the different systems. Note that the BOSS API is licensed under the GNU GPL v3.0 license, so your utility's license will have to comply with that to use the API. If your utility's license is such that you cannot use the API, it's still worth looking at the BOSS API's readme for the information on the textfile-based load order standard. The BOSS API is included in the download packages for BOSS v2.0 and later.