Updated hosted docs.

This commit is contained in:
WrinklyNinja
2014-03-07 20:16:12 +00:00
parent 9903773c91
commit 41f0b7d87d
12 changed files with 96 additions and 209 deletions
-4
View File
@@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>BOSS Metadata Syntax</title>
<meta http-equiv="refresh" content="0;URL=LOOT%20Metadata%20Syntax.html">
-4
View File
@@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>BOSS Readme</title>
<meta http-equiv="refresh" content="0;URL=LOOT%Readme.html">
+25 -15
View File
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>LOOT Metadata File Syntax</title>
<title>LOOT Metadata Syntax</title>
<style>
body {
font:10pt/1.5 Helvetica,sans-serif;
@@ -47,9 +47,9 @@ h3{
</style>
<!-- LOOT
A plugin load order optimiser for games that use the esp/esm plugin system.
A load order optimisation tool for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.
Copyright (C) 20122013 WrinklyNinja
Copyright (C) 20122014 WrinklyNinja
This file is part of LOOT.
@@ -68,7 +68,7 @@ h3{
<http://www.gnu.org/licenses/>.
-->
<h1>LOOT Metadata File Syntax</h1>
<h1>LOOT Metadata Syntax</h1>
<h2>Contents</h2>
<ol>
@@ -95,7 +95,7 @@ h3{
</ol>
<h2 id="intro">Introduction</h2>
<p>With LOOT, the metadata file syntax is what its masterlists and userlists are written in. If you know YAML, good news: the metadata file syntax is essentially just YAML 1.2. If you don't know YAML, then its <a href="https://en.wikipedia.org/wiki/YAML">Wikipedia page</a> is a good introduction. All you really need to know is:
<p>The metadata syntax is what LOOT's masterlists and userlists are written in. If you know YAML, good news: the syntax is essentially just YAML 1.2. If you don't know YAML, then its <a href="https://en.wikipedia.org/wiki/YAML">Wikipedia page</a> is a good introduction. All you really need to know is:
<ul>
<li>How lists and associative arrays (key-value maps) are written.
<li>That whitespace is important, and that only normal spaces (ie. no non-breaking spaces or tabs) count as such.
@@ -130,7 +130,7 @@ h3{
<code class="box">globals:
- type: say
content: 'You are using the latest version of LOOT.'
condition: 'version("LOOT", "1.0.0.0", ==)'
condition: 'version("LOOT", "0.5.0.0", ==)'
plugins:
- name: 'Armamentarium.esm'
tag:
@@ -214,7 +214,7 @@ display: 'OBSE v18+'
<thead><tr><th>Key Name<th>Required<th>Notes
<tbody>
<tr><td><code>str</code><td>&#x2713;<td>The actual message content string. Double-quoted URLs will be hyperlinked in the LOOT report. See <a href="#links">URL Hyperlinking</a> for details.
<tr><td><code>lang</code><td>&#x2713;<td>The language that <code>str</code> is written in, given as an ISO 639-3 language code. The languages LOOT supports are given in <a href="#lang">Language Codes</a>.
<tr><td><code>lang</code><td>&#x2713;<td>The language that <code>str</code> is written in, given as a POSIX language code. The languages LOOT supports are given in <a href="#lang">Language Codes</a>.
</table>
<p>LOOT handles messages and languages as follows:
@@ -297,7 +297,13 @@ nav: 0
<tbody>
<tr><td><code>name</code><td>string<td>&#x2713;<td>Can be an exact plugin filename or a regular expression plugin filename. If the period that precedes the file extension has been escaped (eg. <code>\.esp</code>, <code>\.esm</code>), the string is treated as a regular expression, otherwise it is treated as an exact filename.
<tr><td><code>enabled</code><td>boolean<td>&#x2717;<td>Enables or disables use of the plugin object. Used for user rules, but no reason to use it in the masterlist. If unspecified, defaults to <code>true</code>.
<tr><td><code>priority</code><td>integer<td>&#x2717;<td>Modifies plugin position relative to others that change one or more of the same records, but which are otherwise unrelated (ie. neither plugin lists the other as a master, requirement, or in its <code>after</code> list). A plugin with a higher priority value will load after a plugin with a lower priority value. Value can be anything in the range <code>-2000000000</code> to <code>2000000000</code>, and if unspecified defaults to <code>0</code>.
<tr><td><code>priority</code><td>integer<td>&#x2717;<td>Modifies plugin position relative to others that change one or more of the same records, but which are otherwise unrelated (ie. neither plugin lists the other as a master, requirement, or in its <code>after</code> list). Plugins that don't change any of the same records are not compared, unless:
<ul>
<li>One of the plugins is a "dummy" plugin, containing only a header record.
<li>One of the plugins has a priority greater than or equal to 1,000,000. In this case, only the modulo (ie. remainder when divided) with 1,000,000 is used when comparing plugin priority values &endash; the rest is only used to signify that the plugin should be compared against all others.
</ul>
<p>For example, <code>priority: 153000352</code> and <code>priority: 352</code> have equal values when compared, but a plugin with the first priority will be compared against all others, while a (non-dummy) plugin with the second priority will be compared against only those it conflicts with.
<p>A plugin with a higher priority value will load after a plugin with a lower priority value. Value can be anything in the range <code>-2000000000</code> to <code>2000000000</code>, and if unspecified defaults to <code>0</code>.
<tr><td><code>after</code><td>file list<td>&#x2717;<td>An unordered list of plugins that this plugin must load after, but which are not dependencies. Used for resolving specific compatibility issues and by user rules for specifying custom plugin positions.
<tr><td><code>req</code><td>file list<td>&#x2717;<td>An unordered list of files that this plugin requires to be present. This plugin will load after any plugins listed. If any of these files are missing, an error message will be displayed. Intended for use specifying implicit dependencies, as LOOT will detect a plugin's explicit masters itself.
<tr><td><code>inc</code><td>file list<td>&#x2717;<td>An unordered list of files that this plugin is incompatible with. If any of these files are present, an error message will be displayed.
@@ -329,7 +335,7 @@ msg:
<h2 id="links">URL Hyperlinking</h2>
<p>File <code>display</code> strings and message <code>content</code> strings (including the strings in localised content structures) that contain recognised URLs have them displayed as hyperlinks in the LOOT report.
<p>File <code>display</code> strings and message <code>content</code> strings (including the strings in localised content structures) that contain recognised URLs have them displayed as hyperlinks in the LOOT report.
<p>URLs must begin with <code>file:</code>, <code>http:</code> or <code>https:</code>, and be written according to the following subset of <a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a> syntax. Note that LOOT does not recognise additional Markdown syntaxes to those given below.
<p>For labelled URLs, the syntax is <code>[<var>label</var>](<var>url</var>)</code>. A single optional space may be included between the closing square bracket and the opening parenthesis, ie. <code>[<var>label</var>] (<var>url</var>)</code>.
<p>For unlabelled URLs, the syntax is <code>&lt;<var>url</var>&gt;</code>. The URL shall be used as its own label.
@@ -347,7 +353,7 @@ both get displayed as
<p>Condition strings can be used to ensure that data is only acted on by LOOT under certain circumstances. They are very similar to boolean conditional expressions in programming languages such as Python, though more limited. Their <a href="https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form">EBNF</a> grammar is:
<code class="box">[ negator ], function, { junctor, [ negator ], function } ;</code>
<p>The <code>[ negator ], function</code> grammar is referred to as a condition, and two conditions joined by an operator, ie. <code>condition, operator, condition</code> is referred to as a compound condition.
<p>Unlike BOSS, which LOOT is based on, LOOT caches the results of condition evaluations, so performance is not really an issue. A regular expression check will still take longer than a file check though, so use the former only when appropriate to do so.
<p>LOOT caches the results of condition evaluations, so performance is not really an issue. A regular expression check will still take longer than a file check though, so use the former only when appropriate to do so.
<h3 id="cond-function">Functions</h3>
<p>There are several conditions that can be tested for using the functions detailed in the table below.
@@ -433,14 +439,18 @@ both get displayed as
<h2 id="lang">Language Codes</h2>
<p>LOOT supports the following languages and language codes:
<table>
<thead><tr><th>Language<th>ISO 639-3 Code
<thead><tr><th>Language<th>POSIX Code
<tbody>
<tr><td>English<td>eng
<tr><td>Spanish<td>spa
<tr><td>Russian<td>rus
<tr><td>Chinese<td>zh_CN
<tr><td>English<td>en
<tr><td>French<td>fr
<tr><td>Polish<td>pl
<tr><td>Brazilian Portuguese<td>pt_BR
<tr><td>Russian<td>ru
<tr><td>Spanish<td>es
</table>
<h2 id="license">License</h2>
<p>This document is part of the LOOT documentation.<br>
Copyright (C) 20122013 WrinklyNinja<br>
Copyright (C) 2012&mdash;2014 WrinklyNinja<br>
See the file <q>LOOT ReadMe.html</q> for copying conditions.
+71 -186
View File
@@ -55,15 +55,14 @@ h3{
var {color:#8B4513;}
.teamTableBody td:not(:first-child) {text-align:center;}
tr.inactive {color:#888;}
dt {margin-bottom:0.5em; margin-top:1em; font-style:italic;}
dd {margin-bottom:0.75em;}
</style>
<!-- LOOT
A plugin load order optimiser for games that use the esp/esm plugin system.
A load order optimisation tool for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.
Copyright (C) 20122013 WrinklyNinja
Copyright (C) 20122014 WrinklyNinja
This file is part of LOOT.
@@ -100,14 +99,12 @@ h3{
<li><a href="#contrib">Contributing To LOOT</a>
<li><a href="#translate">Translating LOOT</a>
<li><a href="#credits">Credits</a>
<li><a href="#project">Project Members</a>
<li><a href="#license">License</a>
<li><a href="#appendix">Appendices</a>
<ol>
<li><a href="#appendix-intro">Introduction To Load Orders</a>
<li><a href="#appendix-dirty">Dirty Edits, Mod Cleaning &amp; CRCs</a>
<li><a href="#appendix-permissions">File Permissions</a>
<li><a href="#appendix-diff">Differences between BOSS and LOOT</a>
</ol>
<li><a href="#history">Version History</a>
</ol>
@@ -125,11 +122,9 @@ h3{
<h2 id="install">Installation &amp; Uninstallation</h2>
<blockquote class="warning">LOOT is incompatible with BOSS, which should be removed. Any existing BOSS user rules must be manually recreated in LOOT's user interface. Some plugins sorted correctly in BOSS may be sorted incorrectly by LOOT until their metadata has been recorded. Please <a href="#contrib">notify the team</a> if you observe any load order issues.</blockquote>
<p>LOOT requires the <a href="http://www.microsoft.com/en-gb/download/details.aspx?id=40784">
Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be installed either using its automated installer or manually. To install LOOT manually:
<p>LOOT can be installed either using its automated installer or manually. To install LOOT manually:
<ol>
<li>Install the <a href="http://www.microsoft.com/en-gb/download/details.aspx?id=40784">Visual C++ Redistributable for Visual Studio 2013 (x86)</a>.
<li>Extract the downloaded archive to a location of your choice.
</ol>
<p>If LOOT was installed using the installer, then use the uninstaller linked to in the Start Menu to uninstall LOOT. If LOOT was installed manually:
@@ -147,25 +142,26 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
</figure>
<p>Clicking the <q>Edit Metadata</q> button will open LOOT's <a href="#usage-custom">metadata editor</a>, where you can make changes to the metadata LOOT uses to sort plugins, the messages that get displayed for plugins, and any Bash Tag suggestions LOOT makes.
<p>Clicking the <q>Sort Plugins</q> button will begin the <a href="#usage-sort">plugin sorting process</a>. This will sort your plugins, allow you to make any changes to the load order it produces, then display a report that details the results of LOOT's activity.
<p>Clicking the <q>View Last Report</q> button will display the <a href="#usage-log">report</a> generated the last time LOOT sorted your plugins.
<p>Clicking the <q>View Last Report</q> button will display the <a href="#usage-log">report</a> generated the last time LOOT sorted your plugins for the current game.
<p>The <q>File</q> menu provides menu items for sorting plugins, viewing the debug log and the last report LOOT generated, and quitting LOOT. The menu's <q>Redate Plugins</q> option is provided so that Skyrim modders may set the load order for the Creation Kit. It is only enabled for Skyrim, and changes the timestamps of the plugins in its Data folder to match their current load order. A side effect of changing the timestamps is that any Steam Workshop mods installed will be re-downloaded.
<p>The <q>Edit</q> menu provides menu items for accessing LOOT's metadata editor and the <a href="#usage-settings">settings window</a>.
<p>The <q>Game</q> menu allows you to change which game LOOT is running for. Games that LOOT cannot find are greyed out, and the the one LOOT is running for is marked with a dot to its left. To change the active game, simply select another game in the list.
<p>The <q>Game</q> menu allows you to change which game LOOT is running for. Games that LOOT cannot find are greyed out, and the the one LOOT is running for is marked with a bullet point. To change the active game, simply select another game in the list.
<p>The <q>Help</q> menu provides a link to this readme and an about page that contains the version of LOOT being run, some legal information and a link to the <a href="http://loot.github.io">project homepage</a>.
<h3 id="usage-sort">Sorting Plugins</h3>
<figure>
<img src="images/confirm.png">
<figcaption>Editing LOOT's calculated load order.</figcaption>
<figure class="slideshow">
<img alt="LOOT confirmation dialog" src="images/confirm-1.png">
<img alt="LOOT confirmation dialog with editing panel visible" src="images/confirm-2.png">
<figcaption style="padding-top:480px;">Viewing &amp; editing LOOT's calculated load order.</figcaption>
</figure>
<p>Clicking the <q>Sort Plugins</q> button in the main window will begin the sorting process.
<p>Provided that masterlist updating <a href="#settingsUpdateMasterlist">is enabled</a> and that a masterlist repository URL <a href="#settingsMasterlistURL">is set</a>, LOOT checks for updates to its masterlist and downloads any that are available. If there are any syntax errors in the latest masterlist (due to human error by its maintainers), the updater rolls back one version at a time until it finds a version that works. If any other errors are encountered, updating is cancelled.
<p>During the sorting process, LOOT extracts information from each of the plugins installed in the game's Data folder and combines this information with any relevant metadata provided by the masterlist and userlist. It then uses the combined data to build a directed graph of all the interactions between all the installed plugins. A topological sort is then carried out on the graph to produce a list of plugins in their optimal load order, according to LOOT's criteria. If a cycle is detected (eg. A depends on B depends on A), then sorting is cancelled as it becomes impossible to generate a load order that satisfies all conditions.
<p>If successful, the calculated load order is then displayed in the dialog shown above, which allows the user to edit the load order before it is applied. Multiple plugins may be selected and moved at once. Plugins which are empty (ie. only contain a header record) are displayed in <span style="color: #7A7A7A;">grey text</span>, and plugins that are not empty and load BSAs are displayed in <span style="color: #008EDB;">blue text</span>. If <q>OK</q> button is clicked, it is then applied, and any edits made are recorded in the userlist for re-application when LOOT next sorts the game's plugins. If the <q>Cancel</q> button is clicked, then the load order and any edits made are discarded.
<p>LOOT then generates a report and displays it either in a new window or in your default browser, according to the value of the <a href="#settingsViewReports">relevant setting</a>. Any errors encountered during the sorting process will be displayed in this report, including those due to graph cycles, missing dependencies or installed incompatible plugins. See the next section for more information on the report.
<p>LOOT is able to sort plugins ghosted by <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr>, and can extract Bash Tags and version numbers from plugin descriptions. Provided that they have the <code>Filter</code> Bash Tag present in their description, LOOT can recognise filter patches and so avoid displaying unnecessary error messages for any of their masters that may be missing.
<p>First, LOOT downloads and applies any masterlist updates available, if the <a href="#settingsUpdateMasterlist">relevant setting</a> is enabled. If the latest update cannot be parsed (eg. due to typos), then LOOT will roll back until it finds a version that works.
<p>LOOT then sorts your plugins according to a combination of data from the plugins themselves, and any masterlist and userlist entries they may have. If a cyclic interaction is detected (eg. A depends on B depends on A), then sorting will fail.
<p>If sorting is successful, the calculated load order is then displayed in the dialog shown above. "Dummy" plugins (ie. only contain a header record) are displayed in <span style="color: #7A7A7A;">grey text</span>, and other plugins that load BSAs are displayed in <span style="color: #008EDB;">blue text</span>.
Clicking on a plugin in the list will display the editing panel, where its load order related metadata can be edited. The <q>Show only conflicting plugins</q> checkbox filters the plugin list so that only plugins which can be validly added to the <q>Load After</q> list and either contain conflicting records or (if the selected plugin loads a BSA) load BSAs that <i>may</i> contain conflicting resources. The checkbox must be ticked before plugins can be added to the <q>Load After</q> list, which is done by drag 'n' dropping them from the plugin list, and it must be unticked to select another plugin for editing. The priority value is explained <a href="#editingPriority">below</a>.
<p>If the <q>Apply</q> button is clicked, LOOT does one of two things: if no edits were made, then it immediately applies the load order; but if edits were made, then it repeats the sorting process with the new edits applied. If the <q>Cancel</q> button is clicked, then the load order and any edits made are discarded.
<p>LOOT then generates a report and displays it either in a new window or in your default browser, according to the value of the <a href="#settingsViewReports">relevant setting</a>. Any errors encountered during the sorting process will be displayed in this report. See the next section for more information on the report.
<p>LOOT is able to sort plugins ghosted by Wrye Bash, and can extract Bash Tags and version numbers from plugin descriptions. Provided that they have the <code>Filter</code> Bash Tag present in their description, LOOT can recognise filter patches and so avoid displaying unnecessary error messages for any of their masters that may be missing.
<p>While reading very large plugins, such as the game's main master file, LOOT may appear to stop responding: this is not an issue. The time it takes for LOOT to sort your load order depends primarily on the size of the masterlist being used, the total size of the files in your load order, and the number of plugins in your load order. The first run is likely to be longer than subsequent runs as LOOT needs to download the full masterlist, rather than just the changes made by updates. In testing, it was found that sorting ~90 plugins with a total size of ~350 MB and a 5 MB masterlist takes around 15 seconds, though performance will vary with computer hardware.
@@ -177,7 +173,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
</figure>
<p>LOOT's results report can be displayed either in LOOT's own report viewer, or in your default web browser, according to the value of the <a href="#settingsViewReports">relevant setting</a>.
<p>The report is comprised of three main sections:
<p>The report is comprised of two sections:
<ul>
<li>The <q>Summary</q> tab gives information on the versions of LOOT and the masterlist used, whether masterlist updating is enabled, and breaks down the numbers of each message type in the Summary and Details tabs. It also notifies you if there have been no changes in the <q>Details</q> tab since you last ran LOOT for the same game. Finally, the <q>Summary</q> tab is also where any global messages supplied in the masterlist and any errors encountered during sorting are displayed.
<li>The <q>Details</q> tab lists the plugins LOOT sorted in their new load order, along with any messages LOOT has provided for them. LOOT will also display the plugin's <abbr title="Cyclic Redundancy Check">CRC</abbr> value and extract its version if found in the plugin's description field. If LOOT suggests any Bash Tags to be added, they will be displayed in <span style="color:green;">green text</span>, while any Bash Tags to be removed will be displayed in <span style="color:red;">red text</span>.
@@ -211,13 +207,19 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
<tr><th>Field<th>Description
<tbody>
<tr><td>Enable User Changes<td>If this is checked, LOOT will use the metadata you supplied when sorting the current plugin. Otherwise, your metadata will be ignored.
<tr><td>Priority<td>This is a very rough control for determining how far up or down the load order a plugin should go. Plugins with equal priority will be compared as normal by the sorting algorithm, but plugins with a larger priority value will load later in the load order than plugins with a smaller priority value, unless the former depends on the latter or the latter is explicity told to load after the former. Plugins have a default priority of <code>0</code>.
<tr><td id="editingPriority">Priority<td>Modifies plugin position relative to others that change one or more of the same records, but which are otherwise unrelated (ie. neither plugin lists the other as a master, requirement, or in its "load after" list). Plugins that don't change any of the same records are not compared, unless:
<ul>
<li>One of the plugins is a "dummy" plugin, containing only a header record.
<li>One of the plugins has a priority greater than or equal to 1,000,000. In this case, only the modulo (ie. remainder when divided) with 1,000,000 is used when comparing plugin priority values &endash; the rest is only used to signify that the plugin should be compared against all others.
</ul>
For example, priorities of 153,000,352 and 352 have equal values when compared, but a plugin with the first priority will be compared against all others, while a (non-dummy) plugin with the second priority will be compared against only those it conflicts with.
<p>A plugin with a higher priority value will load after a plugin with a lower priority value. Plugins have a default priority of 0.
<tr><td>Requirements<td>This is a list of files that are required by the current plugin for it to function correctly. LOOT will display an error message if any of the listed files are missing.
<p>Any file, not just plugins, can be listed here, and each file has three sub-fields:
<ul>
<li>The <var>filename</var> is the path, relative to the game's Data folder, of the file to be checked for. This sub-field is required.
<li>The <var>display name</var> is optional, and if specified will be used instead of the <var>filename</var> in any error messages that are displayed if a problem is encountered relating to the file.
<li>The <var>condition</var> is the optional condition string that is used to determine if the file should be checked for. If left blank, the file will always be checked for. Condition strings are a relatively advanced part of LOOT's functionality, and their syntax is covered in the <a href="LOOT%20Metadata%20File%20Syntax.html">Metadata File Syntax</a> documentation.
<li>The <var>condition</var> is the optional condition string that is used to determine if the file should be checked for. If left blank, the file will always be checked for. Condition strings are a relatively advanced part of LOOT's functionality, and their syntax is covered in the <a href="LOOT%20Metadata%20Syntax.html">Metadata Syntax</a> documentation.
</ul>
<p>Note that listing a plugin's masters as requirements is pointless, as LOOT already checks them.
<tr><td>Incompatibilities<td>This is a list of files that are incompatible with the plugin. LOOT will display an error message if any of the listed files are found.
@@ -232,7 +234,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
<li>The <var>language</var> is the language LOOT runs in that the message will be displayed for. For example, if the message language is set to <q>English</q> and LOOT is running in German, then the message will not be displayed. If left unspecified, the message will be shown no matter what language LOOT is running in.
</ul>
<p>If a message's condition determines that it should not be displayed, then it will not be displayed, no matter the language. However, if a message's condition determines that it should be displayed, but the language is specified and doesn't match the language LOOT is running in, the message will not be displayed.
<tr><td>Bash Tags<td>A list of Bash Tags. These are used by the <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr> utilities when generating a Bashed Patch. LOOT's metadata includes Bash Tag addition and removal suggestions, and any Bash Tags that came with the plugin are also displayed.
<tr><td>Bash Tags<td>A list of Bash Tags. These are used by Wrye Bash when generating a Bashed Patch. LOOT's metadata includes Bash Tag addition and removal suggestions, and any Bash Tags that came with the plugin are also displayed.
<p>As LOOT can suggest Bash Tags be added or removed, it is possible for the same Tag to appear twice, being suggested for addition and removal. In such cases, removal overrides addition.
<p>Each Bash Tag has three sub-fields:
<ul>
@@ -247,10 +249,10 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
<tr><th>Context Menu Command<th>Description
<tbody>
<tr><td>Copy Name<td>Copies the selected plugin's filename to the clipboard.
<tr><td>Copy Metadata As Text<td>Copies the selected plugin's current metadata, as it appears in the userlist, to the clipboard. This makes it easier to share your metadata changes with the LOOT team, as they can then paste this text directly into the masterlist, and also avoids any typos being introduced. If posting the text in an online forum that supports BBCode (as most forums do), be sure to wrap it in <code>[code]</code> tags, eg. <code>[code]copied text[/code]</code>, so that the spaces are not removed by the forum software.
<tr><td id="editorCopyMetadataAsText">Copy Metadata As Text<td>Copies the selected plugin's current metadata, as it appears in the userlist, to the clipboard. This makes it easier to share your metadata changes with the LOOT team, as they can then paste this text directly into the masterlist, and also avoids any typos being introduced. If posting the text in an online forum that supports BBCode (as most forums do), be sure to wrap it in <code>[code]</code> tags, eg. <code>[code]copied text[/code]</code>, so that the spaces are not removed by the forum software.
<tr><td>Remove All User-Added Metadata<td>This removes all saved user-added metadata from the selected plugin, <b>and</b> any unsaved data added to the plugin since the Metadata Editor window was opened.
</table>
<h3 id="usage-settings">Editing Settings</h3>
<figure>
<img src="images/settings.png">
@@ -299,7 +301,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
<dl>
<dt>No change in load order.
<dd>Make sure that you aren't using another utility to <q>lock</q> your load order.
<dt>Some plugins have the wrong or no version number given in the LOOT Log.
<dt>Some plugins have the wrong or no version number given in LOOT's report.
<dd>No solution.
<dt>You get an error message of the form <q>There is a problem sending the command to the program.</q>
<dd>Windows sometimes does this when it tries to open files in their default application. If you're sure that you have a default program for HTML files set, restarting your computer generally fixes the issue.
@@ -311,15 +313,11 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
<h2 id="contrib">Contributing To LOOT</h2>
<p>User contribution of additions and corrections to LOOT's masterlists are vital to the upkeep of LOOT. Please let us know what you know!
<p>General discussion and the submission of questions, suggestions and metadata takes place in LOOT's official threads for <a href="http://forums.bethsoft.com/topic/1434397-rel-boss-for-oblivion/">Oblivion</a>, <a href="http://forums.bethsoft.com/topic/1472899-relz-boss-for-skyrim/">Skyrim</a>, <a href="http://forums.bethsoft.com/topic/1282711-relz-boss-for-fo3-thread-4/">Fallout 3</a> and <a href="http://forums.bethsoft.com/topic/1313081-rel-boss-for-fallout-new-vegas/">Fallout: New Vegas</a> (note that some of these threads might say they're for BOSS due to the legacy of the software - that's okay!).
<p>General discussion and the submission of questions, suggestions and metadata takes place in LOOT's official threads for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas. These are linked to at the bottom of <a href="http://loot.github.io">LOOT's homepage</a>.
<p>Information on dirty plugins is very welcome, but for such information to be useful we require:
<ul>
<li>The plugin filename.
<li>The number of records removed (the ITM count) as shown by TES4Edit/TES5Edit/FO3Edit/FNVEdit or <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr> (not the number of records processed).
<li>The number of records undeleted (the UDR count) as shown by TES4Edit/TES5Edit/FO3Edit/FNVEdit or <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr> (not the number of records processed).
<li>The CRC of the dirty plugin. Make sure that the CRC is of the dirty file, not the file after cleaning. The CRC may be calculated using <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr> or 7-zip, with other sources being unverified as correct. In the case of 7-zip, the <q><em>CRC checksum for data</em></q> is the one required.
</ul>
<p>Information on dirty plugins is very welcome, but for such information to be useful we require at least the filename and the CRC of the dirty plugin. The CRC may be calculated using Wrye Bash or 7-zip, with other sources being unverified as correct. In the case of 7-zip, the <q><em>CRC checksum for data</em></q> is the one required. In addition to the CRC, the number of records removed (the ITM count) and/or undeleted (the UDR count) are also welcome.
<p>If you wish to submit metadata, the easiest way to do so is to add the metadata to your own LOOT install (either during sorting or in the Metadata Editor), and use the <a href="#editorCopyMetadataAsText">Copy Metadata As Text</a> feature to easily get it in a form that you can then post in the official forum threads.
<h2 id="translate">Translating LOOT</h2>
@@ -329,7 +327,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. LOOT can be install
<li>Masterlist messages can be translated, but translations must be submitted to the masterlist maintainers for addition.
<li>The languages LOOT supports is hardcoded, so LOOT must be updated to include new translations.
</ul>
<p>Translations can be submitted for inclusion into LOOT as an issue in <a href="https://github.com/loot/loot/issues">LOOT's code issue tracker</a>, by posting it in one of LOOT's official threads (see <a href="#contrib">Contributing To LOOT</a>), or by contacting one of the LOOT team directly (see <a href="#project">Project Members</a>).
<p>Translations can be submitted for inclusion into LOOT in the <a href="https://github.com/loot/loot/issues/20">relevant issue tracker entry</a>, by posting it in one of LOOT's official threads (see <a href="#contrib">Contributing To LOOT</a>), or by contacting one of the LOOT team directly (see <a href="#project">Project Members</a>).
<p>To translate LOOT's installer:
<ol>
<li>Download the <a href="https://github.com/loot/loot/blob/master/src/installer.nsi">installer script</a>.
@@ -343,9 +341,12 @@ To translate the LOOT application:
<li>Download <a href="https://github.com/loot/loot/blob/master/resources/l10n/template.pot">LOOT's translation template file</a>.
<li>If you are updating an existing translation, download the relevant translation file for the language you're interested in:
<ul>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/zh_CN/LC_MESSAGES/loot.po">Chinese</a>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/fr/LC_MESSAGES/loot.po">French</a>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/pl/LC_MESSAGES/loot.po">Polish</a>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/pt_BR/LC_MESSAGES/loot.po">Brazilian Portuguese</a>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/ru/LC_MESSAGES/loot.po">Russian</a>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/es/LC_MESSAGES/loot.po">Spanish</a>
<li><a href="https://github.com/loot/loot/blob/master/resources/l10n/zh/LC_MESSAGES/loot.po">Simplified Chinese</a>
</ul>
<li>Open Poedit and select <q>File->Preferences</q>, then in the <q>Editor</q> tab ensure that the checkbox for the <q>Automatically compile .mo file on save</q> setting is checked. Click <q>OK</q> to close the preferences window.
<li>If you are starting a new translation, select <q>File->New catalogue from POT file...</q> and choose the template file you downloaded. In the <q>Catalog properties</q> dialog, just click <q>OK</q> without changing anything.
@@ -365,77 +366,21 @@ To translate the LOOT application:
<h2 id="credits">Credits</h2>
<p>As LOOT is very much a community project, credit is due to a very large number of sources and people outside of the LOOT Team. Some people have gone out of their way and provided continuing, expert and detailed help - <b>thank you very much</b>!
<p>In addition to the above data-related support, the following are credited with application-related support:
<p>LOOT is developed by a team on <a href="https://github.com/loot/">GitHub</a>. An up-to-date list of team members past and present may be viewed on the <a href="https://github.com/loot/loot.github.io/wiki/Team-Members">project wiki</a>. Unless otherwise noted, project members can be contacted on the <a href="http://forums.bethsoft.com/index.php">Bethesda Softworks Forums</a> or on <a href="http://forums.nexusmods.com/">The Nexus Forums</a> via the private messaging system.
<p>LOOT's masterlists were largely converted from <a href="http://boss-developers.github.io">BOSS</a>'s masterlists, and so credit is due to the very large number of sources and people who have contributed to them.
<p>In addition, the following are credited with application-related support:
<ul>
<li><a href="http://www.darkcreations.org">Dark Creations</a>: For hosting BOSS's Bugzilla bug tracker that was previously used by BOSS to collect anonymous unrecognised plugin reports. Particular thanks to its administrators Andalaybay and Xae for offering to host the tracker and helping to work around Firefox and Bugzilla bugs encountered.
<li>Surazal: For extensive testing of v1.6&ndash;2.1 prior to release and for providing the inspiration for many features through his BOSS Masterlist Manager macro for Microsoft Word.
<li>myk002: For extensive testing and code contributions during development of v1.6&ndash;2.1.
<li>Hickory: For extensive testing and for providing the icon used by the executables.
<li>Scharesoft: For the installer/uninstaller German translation.
<li>Ysne58: For testing and keeping the thread links on BOSS's Nexus site pages up to date.
<li>For testing and feedback prior to releases: The Beta Testing &amp; Analysis Guild at <a href="http://tesalliance.org/forums/">TES Alliance</a>, AndalayBay, dAb, dj2005, Dubiousness, hyno111, Invader, matter2003, NightStar, olminator, saebel, Telyn, wiz0floyd, wormheart, Zanderat and zone22.
<li>Icon: jonwd7
<li>Polish translation: Łukasz Niemczyk
<li>Chinese translation: bluesky404
<li>French translation: Kaos
<li>Spanish translation: Sharlikran
<li>Russian translation: Tokc.D.K.
<li>Brazilian Portuguese translation: Kassane
<li>Beta testing: Too many to list, thank you all!
</ul>
<p>LOOT is written in C++ and makes use of the <a href="http://www.davekoelle.com/alphanum.html">Alphanum</a>, <a href="http://www.boost.org/">Boost</a>, <a href="http://github.com/WrinklyNinja/libespm">libespm</a>, <a href="http://github.com/libgit2/libgit2">libgit2</a>, <a href="http://github.com/WrinklyNinja/libloadorder">libloadorder</a>, <a href="http://code.google.com/p/pugixml/">PugiXML</a>, <a href="http://www.wxwidgets.org/">wxWidgets</a> and <a href="http://code.google.com/p/yaml-cpp/">yaml-cpp</a> libraries. LOOT's reports are written in HTML5/CSS3/Javascript and make use of <a href="http://github.com/inexorabletash/polyfill">Polyfill.js</a> to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found <a href="licenses/Licenses.txt">here</a>.
<h2 id="project">Project Members</h2>
<p>Since June 2009, LOOT (previously BOSS) has been a collaborative project, first on <a href="http://code.google.com/p/better-oblivion-sorting-software/">Google Code</a> and now on <a href="https://github.com/loot/">GitHub</a>. In alphabetical order, the project members are:
<table>
<thead>
<tr><th colspan="3">Member<th rowspan="2">Admin<th rowspan="2">Code<th colspan="4">Contributes To Masterlist
<tr><th>GitHub<th>Bethesda<th>Nexus<th>Oblivion<th>Skyrim<th>Fallout 3<th>Fallout: New Vegas
<tbody class="teamTableBody">
<tr><td>Aellis-BOSS<td colspan="2">Aellis<td>&#x2713;<td><td><td>&#x2713;<td><td>
<tr><td>egocarib<td>egocarib<td>-<td><td><td><td>&#x2713;<td><td>
<tr><td colspan="3">Freso<td><td><td><td>&#x2713;<td><td>
<tr><td colspan="2">ineedbettername<td>-<td><td><td><td>&#x2713;<td><td>
<tr><td colspan="3">LotteryDiscountz<td><td><td><td>&#x2713;<td><td>
<tr><td colspan="3">niveuseverto<td><td><td><td><td><td>&#x2713;
<tr><td>noxwyll<td colspan="2">iyumichan<td>&#x2713;<td><td><td><td><td>&#x2713;
<tr><td colspan="3">PacificMorrowind<td>&#x2713;<td><td>&#x2713;<td><td><td>
<tr><td colspan="3">Sharlikran<td><td><td><td>&#x2713;<td><td>
<tr><td colspan="2">SilentSpike<td>SilentSpike69<td><td><td><td>&#x2713;<td><td>
<tr><td>TokcDK<td colspan="2">Tokc.D.K.<td><td><td>&#x2713;<td>&#x2713;<td><td>
<tr><td>William-Imm<td>William Imm<td>WilliamImm<td><td><td>&#x2713;<td>&#x2713;<td><td>
<tr><td colspan="3">WrinklyNinja<td>&#x2713;<td>&#x2713;<td><td><td><td>
</table>
<p>Members who have since left the project are credited below:
<table>
<thead><tr><th rowspan="2">Ex-Member<th rowspan="2">Admin<th rowspan="2">Code<th colspan="4">Contributed To Masterlist
<tr><th>Oblivion<th>Skyrim<th>Fallout 3<th>Fallout: New Vegas
<tbody class="teamTableBody">
<tr><td>AliTheLord<td><td>&#x2713;<td>&#x2713;<td>&#x2713;<td>&#x2713;<td>
<tr><td>Arkangel<td><td><td><td>&#x2713;<td><td>
<tr><td>Arthmoor<td>&#x2713;<td><td>&#x2713;<td>&#x2713;<td><td>
<tr><td>Calen Ellefson<td><td><td><td>&#x2713;<td><td>
<tr><td>Desidemona<td><td><td><td>&#x2713;<td><td>
<tr><td>Gabba<td><td><td>&#x2713;<td><td><td>
<tr><td>Leandro Conde<td><td>&#x2713;<td><td><td><td>
<tr><td>Loucifer<td><td><td><td><td><td>&#x2713;
<tr><td>lucascomamala<td><td><td><td>&#x2713;<td><td>
<tr><td>Malonn<td><td><td><td><td><td>&#x2713;
<tr><td>Peste<td><td><td><td>&#x2713;<td><td>
<tr><td>Psymon<td><td><td>&#x2713;<td><td><td>
<tr class="inactive"><td>Random007<td>&#x2713;<td>&#x2713;<td>&#x2713;<td><td><td>
<tr><td>Red Eye<td><td><td><td><td><td>&#x2713;
<tr><td>RiddlingLynx<td><td><td>&#x2713;<td><td><td>
<tr><td>scrapperrm<td><td><td><td>&#x2713;<td><td>
<tr><td>Skyline<td><td><td><td><td><td>&#x2713;
<tr><td>Space Oden69<td><td><td><td><td>&#x2713;<td>
<tr><td>Televator<td><td><td><td><td>&#x2713;<td>
<tr><td>Torrello<td><td><td><td>&#x2713;<td>&#x2713;<td>
<tr><td>Vacuity<td><td><td>&#x2713;<td><td><td>
<tr><td>Valda<td><td><td><td><td>&#x2713;<td>&#x2713;
<tr><td>ZiggyX200<td><td><td>&#x2713;<td>&#x2713;<td><td>
<tr><td>Zoe.Alice.Kahala<td><td><td><td>&#x2713;<td><td>
</table>
<p>Unless otherwise noted, project members can be contacted on the <a href="http://forums.bethsoft.com/index.php">Bethesda Softworks Forums</a> or on <a href="http://forums.nexusmods.com/">The Nexus Forums</a> via the private messaging system.
<h2 id="license">License</h2>
<p>LOOT is distributed under the <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License v3.0</a>, aside from the documentation, which is distributed under the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License v1.3</a>. The full texts of the licenses are included with LOOT in the accompanying <a href="licenses/GNU%20GPL%20v3.txt">GNU GPL v3.txt</a> and <a href="licenses/GNU%20FDL%20v1.3.txt">GNU FDL v1.3.txt</a> files.
@@ -444,7 +389,7 @@ To translate the LOOT application:
<p>LOOT has been specifically designed to prevent it being locked into the LOOT Team's official masterlist repositories. Nevertheless, the LOOT Team appeals to the community to avoid the distribution of unofficial masterlists, as this would only hamper the effort to create one set of stores for load order information. Any issues with a masterlist are best brought to the attention of the LOOT Team so that they may be remedied.
<p>GNU Free Documentation License Version 1.3 Notice:
<blockquote>Copyright (C) 2012-2013 WrinklyNinja<br />
<blockquote>Copyright (C) 2012&mdash;2014 WrinklyNinja<br />
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
@@ -454,43 +399,35 @@ A copy of the license is included in the file named "GNU FDL v1.3.txt".</blockqu
<h2 id="appendix">Appendices</h2>
<h3 id="appendix-intro">Introduction To Load Orders</h3>
<p>This appendix provides a general overview of load ordering in the games LOOT supports for those who are unfamiliar with the concept. For simplicity, <q>the game</q> will be used when the text refers to any of the games that LOOT supports.
<p>Mod plugins for the game are files that end in <code>.esp</code> or <code>.esm</code>. These files are created by the game's official editing tools, or by third party modders' tools. They contain various data entries, which can either be brand new additions or changes to the entries added by another plugin, including the game's main master file (Oblivion.esm, Skyrim.esm, Fallout3.esm or FalloutNV.esm depending on the game). These entries cover almost all aspects of what is in the game, eg. NPCs, items, races, interiors, worlds, quests, etc.
<p>When the game is run, it loads each of the plugins you have installed one by one. The order in which it loads them is, unsurprisingly, what is referred to as the load order. The load order is important for two reasons:
<p>Mod plugins for the game are files that end in <code>.esp</code> or <code>.esm</code>. These files are created by the game's official editing tools, or by third-party modders' tools. They contain various data <em>records</em>, which cover almost all aspects of what is in the game &ndash; NPCs, items, races, interiors, worlds, quests, etc. &ndash; and can either be new or changes to the records added by another plugin.
<p>When the game is run, it loads each installed plugin one by one in a certain <em>load order</em>. The load order is important for two reasons:
<ul>
<li>Dependency resolution.
<li>Conflict resolution.
<li>If one plugin changes a record added by another plugin, the former must load after the latter. If it doesn't, the game will crash on launch.
<li>The game can only apply one version of a record, so if multiple plugins contain the same record, the last-loaded plugin's version overrides all others. This is known as the <em>rule of one</em>, and it holds true for almost all record types. Some overrides can cause problems in-game, and a good load order is one that arranges plugins to avoid such problems.
</ul>
<p>A plugin which changes the entries added by other plugins is dependent on those other plugins, and the game requires all of the latter plugins to be loaded before the former. If they aren't, the game will crash on launch.
<p>The game can only apply one version of any one entry (this is known as the <q>rule of one</q>). Therefore, when more than one plugin changes the same entry, the load order is used to decide which plugin's changes are applied. Put simply, the last loaded plugin's changes are applied. The one exception to the <q>rule of one</q> is that the contents of cells (the physical space in which your character moves) can be changed by any number of plugins, so different plugins can add objects to cells, move them around or remove them and all will see their changes applied by the game.
<p>By changing the load order, you can change which plugins override and which are overridden, and so reduce detrimental conflicts. You cannot actually reduce how much is overridden through load order alone, but it is often the case that some overrides are acceptable while others cause problems in game. Setting a good load order is the process by which you seek to maximise the former instead of the latter.
<p>Further compatibility between mods is then possible through the use of patches, which are made to address incompatibilities between specific mods, and through the use of Wrye Bash, which can create a <q>Bashed Patch</q> that allows you to select between types of changes for different mods. For example, two mods change a piece of armour, but one changes how it looks and the other changes its effectiveness: through load order alone you could only ever get one change, but using Wrye Bash you can get both, because they change different things in the same armour entry.
<p>There are a few hardcoded rules that trump load order in many cases:
<p>There are a few hardcoded rules related to load order:
<ul>
<li>Master plugins always load before non-master plugins.
<li>Master plugins always load before non-master plugins. The difference between the two plugin types isn't really relevant, except that a plugin's type is decided by a setting inside it, and not by its file extension (even though <code>.esm</code> stands for Elder Scrolls Master).
<li>There is a limit of 255 active plugins that can be loaded by the game. This isn't strictly a load <em>order</em> thing, but is worth mentioning.
<li>In Skyrim, <code>Skyrim.esm</code> always loads before all other plugins.
<li>In Skyrim, if <code>Update.esm</code> is present, it is always loaded. If it has no load order position set, it loads after all other master plugins. That might sound a bit odd, but thanks to Skyrim's load order mechanism, it is possible for it to have no set load order position, even though it is always loaded.
<li>In Skyrim, if <code>Update.esm</code> is present, it is always loaded. It loads after all other master plugins, unless it has another position explicitly set.
</ul>
<p>A plugin's position in the load order is often displayed by mod managers as a hexadecimal number, from 00 to FE (0 to 255 in decimal). The plugin with position 00 loads first, and the plugin with position FE is loaded last. Hexadecimal numbers are used to display the load order positions of plugins because these numbers form the first two digits of the code that the game uses to reference the entries that the plugin adds, so knowing the numbers allows modders and mod users to determine from which plugin an entry is from.
<p>That's all that you as a mod user <em>need</em> to know about load orders. If you want to find out more about the actual mechanism by which the game decides the load order, read on.
<p>Oblivion, Fallout 3 and Fallout: New Vegas all share the same mechanism for deciding load order. Skyrim, since the 1.4.26 patch, uses a different mechanism.
<p>Load order for Oblivion, Fallout 3 and Fallout: New Vegas is decided by the modification date timestamps of the mod plugins. The active plugin with the earliest date loads first, with plugins being listed in descending date order (earliest to latest). It's a bad idea for a plugin that isn't the game's main master file to load first.
<p>Skyrim's mechanism uses the order that plugins are listed within its <code>plugins.txt</code> file as its load order (from top to bottom). This file is the one in which the list of active plugins is stored, so only active plugins can be strictly said to have a load order.
<p>A plugin's position in the load order is often displayed by mod managers as a hexadecimal number, from 00 to FE (0 to 255 in decimal). The plugin with position 00 loads first, and the plugin with position FE is loaded last. Hexadecimal numbers are used to display the load order positions of plugins because these numbers form the first two digits of the code that the game uses to reference the records that the plugin adds, so knowing the numbers allows modders and mod users to determine from which plugin a record is from.
<h3 id="appendix-dirty">Dirty Edits, Mod Cleaning &amp; CRCs</h3>
<p>Dirty edits are often a side-effect of mod creation, and are often due to bugs in the utilities Bethesda has provided to create mods, rather than bad practice by mod authors. Dirty edits can cause a wide range of issues, including incorrect game settings, missing content, broken quests and crashing to desktop. The more dirty edits there are in a mod, and the more mods with dirty edits you use, the more likely you are to experience issues.
<p>Thankfully there is a way to remove dirty edits from mods relatively easily, a process known as <i>mod cleaning</i>, using TES4Edit (for Oblivion), FO3Edit (for Fallout 3), FNVEdit (for Fallout: New Vegas) or TES5Edit (for Skyrim). A detailed set of instructions and information on mod cleaning can be found on the CS Wiki's <a href="http://cs.elderscrolls.com/constwiki/index.php/TES4Edit_Cleaning_Guide">TES4Edit Cleaning Guide</a> (the page also largely applies to Fallout 3, Fallout: New Vegas and Skyrim). <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr> can also scan plugins for dirty edits and return their ITM and UDR counts, though at the time of writing it cannot clean plugins itself.
<p>The problem of dirty edits is largely a problem of ignorance on the part of mod authors and users alike of the problems dirty mods can cause. As such, there are community efforts to raise awareness of dirty edits and cleaning. LOOT plays a key role in these efforts, as it holds the complete list of all known dirty mods, and it uses this information to provide notification messages to users for any dirty mods they have installed.
There are three key pieces of information that are used to accurately describe and identify an unclean mod. They are:
<p>Thankfully there is a way to remove dirty edits from mods relatively easily, a process known as <i>mod cleaning</i>, using TES4Edit, FO3Edit, FNVEdit or TES5Edit (for Oblivion, Fallout 3, Fallout: New Vegas and Skyrim respectively). Detailed instructions and information on mod cleaning are available for <a href="http://cs.elderscrolls.com/constwiki/index.php/TES4Edit_Cleaning_Guide">Oblivion</a> and <a href="http://www.creationkit.com/TES5Edit_Cleaning_Guide_-_TES5Edit">Skyrim</a>, with the process being largely the same for the others.
<p>The problem of dirty edits is largely a problem of ignorance on the part of mod authors and users alike of the problems dirty mods can cause. As such, there are community efforts to raise awareness of dirty edits and cleaning. LOOT plays a key role in these efforts, as it holds the complete list of all known dirty mods (as does BOSS), and it uses this information to provide notification messages to users for any dirty mods they have installed.
<p>LOOT identifies and describes unclean plugins using four key pieces of information. They are:
<ul>
<li><i><abbr title="Identical To Master">ITM</abbr> Count</i>: ITM records are a type of dirty edit where a mod has overwritten something in the game without actually changing anything. If another mod lower in the load order makes an intentional change to that thing, it will have its effect cancelled out by the ITM record, which can cause problems. The ITM count is the number of ITM records found and corrected in the mod plugin.
<li><i><abbr title="Cyclic Redundancy Check">CRC</abbr> value</i>: CRC values are a highly accurate way of identifying files based on their contents, as if the contents change, so does the CRC value. LOOT identifies an unclean plugin by comparing the installed plugin's CRC value against the CRC values for known unclean versions of that plugin. This identification method has the limitation that it can't detect unclean plugins that aren't already known as such, and won't detect unclean but edited plugins, but it's a lot faster than actually checking for dirty edits in the plugin.
<li><i><abbr title="Identical To Master">ITM</abbr> Count</i>: ITM records are a type of dirty edit where a mod has overwritten something in the game without actually changing anything. If another mod higher up in the load order makes an intentional change to that thing, it will have its effect cancelled out by the ITM record, which can cause problems. The ITM count is the number of ITM records found and corrected in the mod plugin.
<li><i><abbr title="Undeleted and Disabled Reference">UDR</abbr> Count</i>: Deleting records is a significant cause of crashes and game bugs. UDRs are records that the mod deleted from the game or from another mod that have been corrected safely by undeleting them and disabling them instead, which has the same intended effect without causing issues. The UDR count is the number of deleted reference records found and corrected in the mod plugin.
<li><i>CRC</i> or <i>Checksum</i>: A file's CRC is a highly accurate way of identifying it, and is a number calculated from the file's contents. If the contents of a file changes, so will its CRC. LOOT uses CRCs to check if a user's mods are dirty by checking their CRCs against pre-determined CRCs of known dirty mods. This lets LOOT give precise notification messages for any dirty mods it detects. LOOT can calculate the CRCs of all your installed plugins if run from the GUI with the <q>Display File CRCs</q> option enabled.
<li><i>Deleted Navmesh Count</i>: Like deleting records, deleting navmeshes can cause crashes. However, these cannot be automatically corrected, and require manual cleaning. Navmeshes don't exist in Oblivion, so this information doesn't apply.
</ul>
<p>However, not all unclean mods have all or any of these pieces of information. For unclean mods whose ITM and UDR counts have not been reported, LOOT cannot give them. For unclean mods whose CRCs have not been reported, LOOT cannot give precise notification and so prints a message whether or not the user has cleaned their mod.
<p>LOOT and the modding communities rely on user contribution of this information to progress. For information on how to contribute, see the <a href="#contrib">Contributing To LOOT</a> section below. If you find that a mod is dirty, you should also report this to the mod's author so that they can fix it.
<p><b>Note:</b> TES4Edit et al. will include a variety of <em>junk records</em> in the ITM count for a plugin, such as new empty cells that are automatically generated by the Construction Set and are almost impossible to remove. These junk records are non-harmful, and LOOT will inform users when a mod contains these to avoid confusion. This is also the source of any discrepancies between the counts produced by TES4Edit and those produced by <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr>. The latter's counts are more technically accurate, but both are acceptable for use.
<p>There is also another type of unnecessary edit, known as a wild edit, that can also cause problems. These edits are neither Identical To Master edits nor deleted records, so cannot be automatically cleaned. Cleaning must be manually done in TES4Edit/FO3Edit/FNVEdit. LOOT can still check for plugins with these edits if the CRCs of the plugins with wild edits are known, and it can provide notification of these edits and some information on fixing them if they are reported in an official LOOT thread.
<p>In addition to the above, there is another type of dirty edit known as a <em>wild edit</em>. These are any edit that is unrelated to the purpose of the mod, and so provide unnecessary opportunity for conflicts with other mods that do need to change the same thing. It can be difficult to tell if an edit is a wild edit, and so they cannot be automatically cleaned. LOOT can still notify users of wild edits and link to information on fixing them if the CRCs of plugins with wild edits are reported, along with details on what needs cleaning.
<p>LOOT and the modding communities rely on user contribution of this information to progress. For information on how to contribute, see <a href="#contrib">Contributing To LOOT</a>. If you find that a mod contains dirty edits, you should also report this to the mod's author so that they can fix it.
<p><b>Note:</b> TES4Edit et al. will include a variety of <em>junk records</em> in the ITM count for a plugin, such as new empty cells that are automatically generated and are almost impossible to remove. These junk records are non-harmful, and LOOT may inform users when a mod contains these and no true ITMs to avoid confusion.
<h3 id="appendix-permissions">File Permissions</h3>
<p>If you are running Windows Vista or a later version of Windows, LOOT (and other modding programs) may be prevented from working correctly by the UAC security feature. There are four common workarounds to this problem:
@@ -509,64 +446,12 @@ There are three key pieces of information that are used to accurately describe a
<li>In the <q>Properties</q> window, select OK to exit. You should now have Full Control permissions over your chosen folder.
</ol>
<h3 id="appendix-diff">Differences between BOSS and LOOT</h3>
<p>LOOT is an almost complete redesign and rewrite of BOSS v2. As part of its development, many features present in BOSS have been changed or removed, and the table below provides an overview of these changes.
<table>
<thead>
<tr><td>Feature / Component<td>BOSS<td>LOOT
<tbody>
<tr><td>Plugin sorting mechanism<td>BOSS scans the game plugin folder for plugins, and arranges those found in the order that they appear in the masterlist. This order is then altered according to any user rules present in the userlist.<td>LOOT scans the game plugin folder for plugins, reads their contents, and uses this data on their masters and the records they change in conjunction with any additional metadata supplied by the masterlist and userlist to calculate the optimal load order according to its sorting algorithm. The load order produced is generally different to that provided by v2.
<tr><td>Masterlist updating<td>BOSS downloads a masterlist and inserts into it version information that is scraped from Google Code.<td>LOOT uses Git to update masterlists, benefiting from a more robust mechanism with support for differential updates (reducing the amount of data that needs to be downloaded) and rolling back revisions in case of parsing errors.
<tr><td>Masterlist structure &amp; syntax<td>Uses a custom file format.<td>Uses YAML 1.2, with custom condition string syntax modelled after Python's condition expressions.
<tr><td>Userlist structure &amp; syntax<td>Uses a custom file format, different from the masterlist format.<td>Uses the same format and syntax as the masterlist.
<tr><td>Morrowind support<td>Technically supports Morrowind, though its masterlist is near-empty.<td>Does not support Morrowind. Morrowind mod users are advised to use <a href="https://code.google.com/p/mlox/wiki/Mlox">mlox</a>.
<tr><td>Program file locations<td>All BOSS's files are stored in the BOSS folder first installed.<td>LOOT stores any files it creates (reports, masterlists, userlists, settings) in the <code>%LOCALAPPDATA%\LOOT</code> folder.
<tr><td>Game selection on first run.<td>BOSS asks the user to select a game from a list.<td>LOOT selects the first game detected.
<tr><td>File CRC calculation<td>File CRC calculation is optional.<td>File CRC calculation is always-on, as it no longer presents any significant additional performance impact.
<tr><td>Log / Report format<td>The BOSS Log can either be generated as plain text or as HTML.<td>The LOOT Report can only be generated as HTML.
<tr><td>Perform trial run<td>BOSS can perform a trial run, in which it displays the load order it would set, but does not set it.<td>The option to perform a trial run has been removed, as equivalent functionality is provided by cancelling sorting at the confirmation dialog.
<tr><td>Update masterlist only<td>BOSS can be run to update a game's masterlist without then sorting any plugins, even if that game is not installed.<td>LOOT can only update a masterlist as part of the sorting process, and cannot run for games that are not installed. This is because LOOT's updating process no longer inserts version information into the masterlists, and so the exact same masterlists that LOOT uses can now be downloaded from LOOT's online repositories using a web browser, removing the need for LOOT to include this functionality.
<tr><td>Undo changes<td>It is possible to run BOSS to undo its changes back one run or two.<td>It is no longer possible to undo load order changes through LOOT. Instead a confirmation dialog is provided to allow users to make sure that LOOT will set a load order they want, and to give them a last-minute opportunity to backup their existing load order, perhaps using a mod manager of their choice.
<tr><td>Optionally suppress Log / Report display<td>BOSS allows the user to stop the BOSS Log being automatically displayed after sorting.<td>The LOOT Report is always displayed after sorting, as it is more important for the user to verify that the automated sorting process completed successfully and correctly.
<tr><td>Nehrim support<td>BOSS provides first-class support for Nehrim alongside Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.<td>LOOT supports Nehrim as an Oblivion-derived game instance, and the Nehrim and Oblivion masterlists have been merged. This is due to LOOT's generalised support for Total Conversion mods across the games it supports. In practice Nehrim support appears the same.
<tr><td>User rules<td>BOSS allows the user to customise its output by providing user rules for specifying relative plugin positions and for adding to or replacing the messages attached to mods.<td>LOOT allows the user to add to any metadata provided by the masterlist.
<ul>
<li>It is no longer possible to precisely set a plugin's load order position. LOOT can be told that a plugin A has to load after another plugin B, but where exactly after B that plugin A is positioned is decided by the sorting algorithm.
<li>It is no longer possible to specify a plugin A to load before another plugin B, though a similar effect may be produced by loading B after A.
<li>It is no longer possible to sort or insert into groups, as groups no longer exist.
<li>It is no longer possible to replace messages provided by the masterlist.
<li>Knowledge of message syntax is no longer required to add new messages.
<li>It is now possible to provide conditions for user-added messages.
</ul>
<tr><td>Updating the program<td>BOSS includes an update checker and a semi-automated update process.<td>LOOT no longer includes an update checker or a semi-automated update process. This is because new releases are announced in the masterlists anyway, and the semi-automated update process is not as efficient as using the installer.
<tr><td>Manual editing of user rules / metadata<td>BOSS allows the user to open the userlist file for manual editing from the GUI.<td>LOOT only provides the GUI metadata editor for editing the userlist. Users may still edit the userlist file manually, but it must also be located manually.
<tr><td>Proxy Support<td>BOSS includes support for proxies, allowing users to specify the proxy hostname and port number and provide authentication details.<td>LOOT no longer includes any proxy support, as the proxy support in BOSS was reported broken a few times and it was deemed not worth fixing due to very low usage.
<tr><td>Log / Report content<td>The BOSS Log includes the following sections:
<ul>
<li>Summary
<li>User Rules
<li>Script Extender Plugins
<li>Recognised Plugins
<li>Unrecognised Plugins
</ul>
<td>The user rules and script extender plugins sections have been removed as user metadata cannot fail to be applied, and the script extender plugins information was deemed irrelevant. The recognised and unrecognised plugins sections have been combined into one Details section, as there is no longer any such thing as an unrecognised plugin.
<tr><td>Log / Report Filters<td>The HTML BOSS Log includes a large number of filters to selectively hide content.<td>The number of filters has been reduced, as some are no longer applicable:
<ul>
<li>LOOT no longer labels active plugins as such, so the active label filter has been removed.
<li>Requirement and incompatibility messages no longer exist (instead warnings are displayed if the relevant files are missing / present), so their corresponding filters have been removed.
<li>The hide clean plugins filter has been removed as it was misleading, since the plugins hidden were not necessary clean.
</ul>
<tr><td>Log plugin submission<td>BOSS allows users to submit unrecognised plugins from the HTML BOSS Log.<td>As there is no longer any such thing as an unrecognised plugin, the submission system has been removed.
<tr><td>Log display customisation<td>BOSS allows users to customise the colour scheme used by the BOSS Log.<td>LOOT does not allow customisation of the colour scheme used by the LOOT report. However, the styling is now provided by a static stylesheet instead of being dynamically generated within the report every time LOOT is run, so this static stylesheet can be edited to achieve the same effect.
<tr><td>Command line interface<td>BOSS provides a command line interface.<td>LOOT does not provide a command line interface, as the greater need for user interaction makes it unwieldy.
</table>
<h2 id="history">Version History</h2>
<p>Only the history of LOOT is given, as BOSS's version history is irrelevant due to the complete redesign that occurred. The masterlists are updated far too frequently for their changes to be concisely recorded here, but a full history of changes to them may be viewed by browsing the GitHub repositories.
<p>Only program history is recorded here. The masterlists are updated far too frequently for their changes to be concisely recorded here, but a full history of changes to them may be viewed by browsing the GitHub repositories.
<h3>1.0.0 - <i>Day Month 2014</i></h3>
<h3>0.5.0 - <i>Day March 2014</i></h3>
<ul>
<li>LOOT is completely redesigned from scratch from BOSS v2 and almost completely rewritten. See <a href="#appendix-diff">Differences between BOSS and LOOT</a> for an overview of the changes.
<li>Initial release.
</ul>
<script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 32 KiB