Jump to content

Photo

[IMPORTANT] Load Order and You


  • Please log in to reply
53 replies to this topic

#1
wrinklyninja

wrinklyninja

    Old hand

  • Members
  • PipPipPip
  • 579 posts
Load Order and You

Introduction

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

In Oblivion, Nehrim, Fallout 3, Fallout: New Vegas and early versions (pre-1.4.26) of Skyrim, load order is decided by the relative timestamps of plugins in the game's Data directory. An installed plugin's load order is therefore an intrinsic property of that plugin.

In Skyrim v1.4.26, a new textfile-based load order system was introduced, in which load order is decide by the order in which plugins are listed in "plugins.txt". This brought with it a fundamental change, in that load order is no longer an intrinsic property of a plugin. This has the result that inactive plugins do not have any load order.


The Solution

The solution agreed on by Lojack (Wrye Bash), Kaburke (Nexus Mod Manager), WrinklyNinja (BOSS) and Dark0ne (owner of the Nexus sites) was that total load order would 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.

Modding utilities would then perform their changes on "loadorder.txt", updating "plugins.txt" to reflect any changes to active plugin load order as required. This provides a common store for the total load order in lieu of the plugin timestamps used by the other games. There are of course a few more technical details to it, but that's the basics.


What This Means For... Mod Makers & Users

The bad news: Any utilities that you use to manage load order may stop having any effect. This is because nothing currently released knows about the change in load order system. In time, utilities may be updated to handle the text-based system as their programmers become aware of it. Until then, Skyrim's launcher is the only way to change load order. Also be aware of the current limitations of the solution, given above.

One very important thing is that if you have a utility that can handle the text-based system, do not use Skyrim's launcher to set load order. This is because it doesn't know about the total load order, so if you change the load order through it, only the active load order changes and synchronisation between the two is lost. The only way for a utility to re-sync the two load orders is to undo the changes you made in the launcher.

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 needing updating, and have patience while the programmers do their thing.

If you want to manually set your load order, 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.
  • 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 Programmers

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

The good news: I've already done a lot of the work for you. The BOSS API supports both the timestamp-based and text-based load order systems through the same interface, so you don't need to worry about the differences, and includes all the functions required for querying and changing load order and activation status. The BOSS API will be included in the v2.0 release of BOSS, but if you PM me I'll send you a copy if v2.0 hasn't been released yet.

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 as that contains the information on the textfile-based load order standard. If BOSS v2.0 hasn't been released yet, PM me and I'll send you a copy of the readme.


Utility Compatibility List

All known modding utilities that make use of load order in their functionality are listed below, with their compatibility status with regards to the text-based load order system. The three possible states are:

Compatible: The latest release of the utility is fully compatible with both the text-based load order system and the timestamp-based load order system.
Compatibility In Progress: The utility author(s) is (are) working on adding compatibility for the text-based load order system, but the latest release is not yet compatible.
Incompatible: The utility is not compatible with the text-based load order system and the author(s) has (have) either stated that they will not be adding compatibility, or are not known to have made any statement on whether they're working on compatibility or not.

BOSS - Compatible
Wrye Bash - Compatibility In Progress
Mod Organizer - Compatibility In Progress
Nexus Mod Manager - Compatible
Oscape - Compatibility In Progress
TesModManager - Compatible


Final Notes

Please remember to have patience if you're waiting on someone to do something in relation to this issue, eg. users waiting on programmers, or programmers waiting on me to fix an API bug. Everyone who can do anything about this situation is pretty busy, and these things take time to get done right.

Also please don't hate on Bethesda for changing the system. It's better than the old one, and the issues that it brought up are because we're too smart for our own good, coming up with ways to bend the rules (eg. Bashed Patches), so it's wrong to think that Bethesda need to cater for the situations in which they arise.

It's probably a good idea if people post below any utilities that use load order in some way that aren't listed above, so that I can add them to the compatibility list.

Finally, spread the word. If someone's having trouble setting the load order, let them know that it might be to do with this. If you know of a modding utility not listed above that changes or uses load order in any way, let the author(s) know about this. Please be polite while doing so though, I don't want to end up reading verbal abuse resulting from this instruction. When letting utility authors know, don't demand they update their utility, just post a note saying that it doesn't work any more and link to this thread.

Related links:
Thread #1 on the BethSoft forums
Thread #2 on the BethSoft forums
This thread on the Nexus forums
News item for the issue on Skyrim Nexus

Edited by wrinklyninja, 27 March 2012 - 11:37 AM.


#2
Fouracres

Fouracres

    Enthusiast

  • Members
  • PipPip
  • 147 posts
Thank you for the early warning.

May I presume to dare to suggest "list-order" or "list-stamped" or "load-list" as possible terms for the new system (hyphens optional).

Cheers, and thank you for all the hard work you do for the community.

#3
SluggoV2

SluggoV2

    Enthusiast

  • Members
  • PipPip
  • 111 posts
I look forward to seeing this implemented! Thanks

#4
Pow_R_Toc_H

Pow_R_Toc_H

    Old hand

  • Supporter
  • PipPipPip
  • 641 posts
Does this mean our current load order will be forcibly changed when the patch goes live, or will it remain as it is?

#5
WizardOfAtlantis

WizardOfAtlantis

    Catching and Eating Butterflies around Whiterun since '11

  • Premium Member
  • 1,499 posts
WrinklyNinja, thank you very much for all of your hard work! Posted Image

#6
gsmanners

gsmanners

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,333 posts
So, even if you don't use mod loader utilities (like me), you just create a plain text file with the list of esm/esp files in loadorder.txt (in the same folder as plugins.txt). Seems pretty straight-forward to me.

#7
Tannin42

Tannin42

    Old hand

  • Premium Member
  • 766 posts
FYI: Mod Organizer has always written the plugin.txt in load order, so plugins should already be loaded in the correct order without an update.
An update that uses the loadorder.txt and doesn't save file times is in the works.

#8
wrinklyninja

wrinklyninja

    Old hand

  • Members
  • PipPipPip
  • 579 posts

Does this mean our current load order will be forcibly changed when the patch goes live, or will it remain as it is?

I replied to this in the news post, but to state it again here:

AFAIK it will be changed forcibly. That is to say, Skyrim won't do anything to it, but it won't recognise it from your timestamps any more. It seems to list active plugins in alphabetical order by default, so it would probably change it to that. I didn't really look into the issue, I was more concerned about the long-term consequences.

If you want, you could back up your load order and then restore it again after the patch is released and utilities have been updated to be compatible.

So, even if you don't use mod loader utilities (like me), you just create a plain text file with the list of esm/esp files in loadorder.txt (in the same folder as plugins.txt). Seems pretty straight-forward to me.

If you don't use non-Bethesda utilities that use load order in any way, you don't need a loadorder.txt. If you really feel like making a loadorder.txt manually though, it's as you've said, but the file has to be encoded in UTF-8.

Edited by wrinklyninja, 27 February 2012 - 07:22 AM.


#9
pascaliedema

pascaliedema

    Fan

  • Members
  • PipPipPip
  • 263 posts
perhaps "list-based" is a good name

#10
Bezrider

Bezrider

    Stranger

  • Members
  • Pip
  • 1 posts
How about "Syncplug" as a name, as it will be synchronising the plugins :biggrin:




3 user(s) are reading this topic

1 members, 2 guests, 0 anonymous users


    Jacotheman
Page loaded in: 0.919 seconds