forked from TES5Edit/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
depreciated-mod-cleaning.html
215 lines (215 loc) · 19 KB
/
depreciated-mod-cleaning.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
---
layout: navigation
title: xEdit Cleaning and-Error Checking
---
<head>
<title>Miax's Tome of xEdit</title>
</head>
<div class="toc">
<div class="global">
<h2>Main Table of Contents</h2>
<ul class="first">
<li><a href="index.html">1. Introduction</a></li>
<li><a href="2-overview.html">2. Overview</a></li>
<li><a href="3-modgroups.html">3. ModGroups</a></li>
<li><a href="4-conflict-detection-and-resolution.html">4. Conflict Detection and Resolution</a></li>
<li><a href="5-mod-cleaning-and-error-checking.html">5. Mod Cleaning and Error Checking</a></li>
<li><a href="6-managing-mod-files.html">6. Managing Mod Files</a></li>
<li><a href="7-mod-utilities.html">7. Mod Utilities</a></li>
<li><a href="8-fo3edit-faq.html">8. FO3Edit FAQ</a></li>
<li><a href="9-appendix.html">9. Appendix</a></li>
<li><a href="10-cheat-sheets-and-quick-reference-charts.html">10. Cheat Sheets and Quick Reference Charts</a></li>
<li><a href="11-Scripting-Functions.html">11. Scripting Functions</a></li>
<li><a href="12-Scripting-Resources.html">12. Scripting Resources</a></li>
<li><a href="13-tutorials.html">13. Tutorials</a></li>
<li><a href="14-xEditVersionInfo.html">14. xEdit Version Info</a></li>
</ul>
</div>
<!--/.global-->
<div class="local">
<h3>Section Table of Contents</h3>
<ul class="second">
<li><a href="#s_5-1">5.1 Preface</a></li>
<li><a href="#s_5-2">5.2 Overview</a></li>
<li>
<a href="#s_5-3">5.3 Mod Cleaning Process</a>
<ul class="third">
<li><a href="#s_5-3-1">5.3.1 Quick(auto)Clean Method</a></li>
<li><a href="#s_5-3-2">5.3.2 Sorting Master File Load Orders</a></li>
<li><a href="#s_5-3-3">5.3.3 Using Clean Masters to purge un-used Master File References</a></li>
<li><a href="#s_5-3-4">5.3.4 Listing Master File References from a Specific Plugin</a></li>
</ul>
</li>
<li><a href="#s_5-4">5.4 Checking For Reference Errors</a></li>
<li><a href="#s_5-5">5.5 Checking for Circular Leveled Lists</a></li>
<li><a href="#Apendix-A">Apendix A: Types of Dirty Edits</a></li>
<li><a href="#Apendix-B">Apendix B: Mod Cleaning (Abridged Version)</a></li>
<li><a href="#Apendix-C">Apendix C: Removing "Identical to Master" Records"</a></li>
<li><a href="#Apendix-D">Apendix D: Un-deleting and Disabling References</a></li>
<li><a href="#Apendix-E">Apendix E: What is the mod cleaning process anyway?</a></li>
<li><a href="#Glossary">Glossary</a></li>
</ul>
</div>
<!--/.local-->
</div>
<!--/.toc-->
<section id="_Toc237480264">
<h1>5. Mod Cleaning and Error Checking</h1>
<!--/.content-->
<div id="Appendix">
<div id="Apendix-B">
<h1>Appendix B</h1>
<p>This method is depreciated and preserved as historical information only. Do not ask questions about it. Please refer to the current cleaning method <a href="#s_5-3">5.3 Mod Cleaning Process</a>.</p>
<h2>Mod Cleaning (Abridged Version)</h2>
<p class="img"><img src="img/cleaning-select-none.jpg"></p>
<p>Right click on the Module Selection window and choose, Select None</p>
<p class="img"><img src="img/cleaning-select-onlyone.jpg"></p>
<p>Check only the mod you wish to clean</p>
<p class="img"><img src="img/cleaning-select-finished.jpg"></p>
<p>Wait for xEdit to finish loading</p>
<p class="img"><img src="img/cleaning-select-applyfilter.jpg"></p>
<p>Apply the filter for cleaning</p>
<p class="img"><img src="img/cleaning-select-waitforfilter.jpg"></p>
<p>Wait for the filter to be applied</p>
<p class="img"><img src="img/cleaning-select-itm.jpg"></p>
<p>Choose Remove "Identical to master" records</p>
<p class="img"><img src="img/cleaning-select-udr.jpg"></p>
<p>Choose Undelete and Disable References</p>
<p class="img"><img src="img/cleaning-select-result.jpg"></p>
<p>Results are displayed on the Messages Tab</p>
<p class="img"><img src="img/cleaning-select-save.jpg"></p>
<p>Close xEdit to save the plugin</p>
</div>
<div class="level-nav">
<a href="#Apendix-A" class="drkbtn">Previous Section</a>
</div>
<!--/.level-nav-->
<div id="Apendix-C">
<h1>Appendix C</h1>
<p>This method is depreciated and preserved as historical information only. Do not ask questions about it. Please refer to the current cleaning method <a href="#s_5-3">5.3 Mod Cleaning Process</a>.</p>
<h2>Removing "Identical to Master" Records</h2>
<div class="content">
<p>Keep in mind this method is depreciated and should not be used.</p>
<div class="p-img">
<p class="img"><img src="img/cleaning-select-applyfilter.jpg"></p>
<p>There are two ways to apply the filter for cleaning. One way is to right click in the Navigation treeview and choose "Apply Filter for Cleaning". Many guides will suggest this option. There is no difference in using "Apply Filter for Cleaning" or using "Apply Filter" but both will be shown so you have a better understanding of what is happening and the filter process.
<p>Clicking on the, "Apply Filter" button from the <a href="2-overview.html#s_2-3-2">Navigation treeview</a> context menu will present the Filter window once again.</p>
<p class="img"><img src="img/image118.jpg"></p>
<p>This time choose the Mod Cleaning settings as shown below:</p>
<p class="img"><img src="img/image131.jpg"></p>
</div>
<div class="p-img">
<p>As before the status of the filtering process is shown in the upper-right menu bar, and once complete the log-file output is shown in the <a href="2-overview.html#s_2-3-5">Messages Tab</a>. This filter will load only the data that needs to be cleaned from the mod. The screenshot below again shows how the output may look from this step – which should take just a few seconds:</p>
<p class="img"><img src="img/image132.jpg"></p>
</div>
<div class="p-img">
<p>With the Mod Cleaning filter applied, Golly! It's time to get out the <a href="http://www.mrclean.com/en_US/magic-eraser.do">Mr. Clean</a> and make this puppy sparkle with goodness! Grab the mop by Left-clicking on the mod that you want to clean, in our case <a href="https://www.nexusmods.com/fallout3/mods/867">BetterCaravans</a> (A). Splash the <a href="http://www.mrclean.com/en_US/magic-eraser.do">Mr. Clean</a> on by Right-clicking the shiny white space beneath the mod your cleaning (B), and spin that mop into action by clicking on, ‘Remove "Identical to Master" records' (C) – and watch as xEdit puts the shine on that puppy!</p>
<p class="img"><img src="img/image134.jpg"></p>
</div>
<div class="p-img">
<p>You will be presented with the Warning screen, press, "Yes" when prompted:</p>
<p class="img"><img src="img/image136.jpg"></p>
</div>
<p>As xEdit completes the mod-cleaning process, you can see the output in the Messages Tab, which shows you every record that is being removed along with its hex ID number. Once complete, you get a line of text reading, [Removing "Identical to Master" records done] – along with statistics on the number of records processed and removed as well as the elapsed time (A).</p>
<div class="p-img">
<p>The screenshot below illustrates the output:</p>
<p class="img"><img src="img/image138.jpg"></p>
</div>
<p>The final output is also printed in the bottom status bar (B) for your viewing pleasure. With this, the first step in the mod cleaning process is complete and we will move on to the next step which is in <a href="#s_5-3-2">5.3.2 Un-deleting and Disabling References</a>.</p>
</div>
<!--/.content-->
<div class="level-nav">
<a href="#s_5-3" class="drkbtn">Previous Section</a>
<a href="#s_5-3-1" class="drkbtn">Top of this Group</a>
</div>
<!--/.level-nav-->
</div>
<!--/.level-3-->
<div id="Apendix-D">
<h1>Appendix D</h1>
<p>This method is depreciated and preserved as historical information only. Do not ask questions about it. Please refer to the current cleaning method <a href="#s_5-3">5.3 Mod Cleaning Process</a>.</p>
<h2>Un-deleting and Disabling References</h2>
<div class="content">
<p>The next step in the cleaning process is to Undelete and Disable References from the mod being cleaned. The, "Undelete and Disable References" function scans through the mod and the master files it depends upon, looking for any records that you may have deleted by accident. If it finds some, it will un-delete them and then set the reference to, "disabled" so that it will never be seen in-game nor affect your mod.</p>
<div class="p-img">
<p class="img"><img src="img/image142.jpg"></p>
<p>This ensures that if another mod tweaks/changes the item you deleted, that the item will still be in the files (just disabled), and thus won't cause Fallout3 to crash. If your mod file loads with the item deleted and another mod tries to change it, Fallout3 will crash! L These are among the more serious conflicts that can occur and the reason why it is important for mod authors to run this function as part of the mod cleaning process. The screenshot below illustrates how to activate it:</p>
</div>
<p>Note that you must Right-click on the mod in the <a href="2-overview.html#s_2-3-2">Navigation treeview</a> to pull the right context menu. In this case you do not want to click on open-space.</p>
<div class="p-img">
<p class="img"><img src="img/image144.jpg"></p>
<p>The screenshot below shows the results, which show the log-file output in two places (A and B) in the <a href="2-overview.html#s_2-3-5">Messages Tab</a> and on the lower status bar:</p>
</div>
<p>Now we know for sure that other mods will not run into missing references that were a consequence of changes made in the mod your cleaning. With the second step in the cleaning process complete, it's time for the final step.</p>
</div>
<!--/.content-->
<div class="level-nav">
<a href="#s_5-3-1" class="drkbtn">Previous Section</a>
<a href="#s_5-3-2" class="drkbtn">Top of this Group</a>
</div>
<!--/.level-nav-->
</div>
<!--/.level-nav-->
<div id="Apendix-E">
<h1>Appendix E</h1>
<h2>What is the mod cleaning process anyway?</h2>
<p>This method is depreciated and preserved as historical information only. Do not ask questions about it. Please refer to the current cleaning method <a href="#s_5-3">5.3 Mod Cleaning Process</a>.</p>
<p>The mod cleaning process involves cleaning a mod file of duplicate/un-necessary records and un-deleting objects in the masters that were inadvertently deleted - setting them to disabled instead. We also check for errors as well as looped level lists. The itemized cleaning process is:</p>
<ol>
<li>Identifying and removing records in a mod file that is identical to those in the master files, which user useless in a mod-file and can cause conflicts with other mods. Removing these from your mod file is a primary goal of this process.</li>
<li>Identifying any records in the master files that was marked as deleted, which xEdit un-deletes and marks as, "disabled" instead. This ensures that any change made to that object by other mods won't cause crashes or conflicts, which can happen if a modder accidentally deletes a base object, which is modified by another mod and you get a null pointer – poof!</li>
<li>Identifying any infinite loops in the leveled-lists, and ensure there are no physical/data errors with the mod file to round-out the clean-up.</li>
</ol>
<div class="p-img">
<p class="img"><img height="427" src="img/image116.jpg" width="576"></p>
<p>For example, modder A inadvertently double-clicks on a wine bottle and it gets marked for save – becoming one of the changes introduced by modder A's plugin. Modder A makes things worse by deleting the whiskey bottle record, removing it from the game!</p>
<p>Mod B is added to the player's mod-list, which changes the wine bottle making it stronger. Mod A's plugin however conflicts with this and can over-ride Mob B's changes without cause (as Mod A's author did not intend to change the wine bottle). Furthermore all occurrences of the whiskey bottle are now bogus. When Mod B tries to change the whiskey bottle, it finds no whiskey bottle to change and Fallout3 will crash.</p>
<p>Modder A could avoid both of these issues with the mod cleaning process, which un-deletes references that were deleted on accident and un-does inadvertent changes to things in the game that were not intended. The screenshot below illustrates the start of the process, in which you must load-up xEdit and follow the steps herein:</p>
</div>
<p>Once, "OK" is clicked (D), xEdit will load the selected plugin for cleaning.</p>
<p>Note that you can also, "Select All" or "Invert Selection", which gives you additional controls over which mod-files are selected for loading into xEdit. For the mod cleaning process, we only want to load the plugin being cleaned. You can do this using the, "Select None" menu option, and then clicking on the mod file to be cleaned.</p>
<p>You should only clean one mod file at a time. There is no harm in running through the process to see if mod A or mod B is filled with dirty edits. Depending on what you find, you can send the mod author a PM.</p>
<div class="p-img">
<p class="img"><img src="img/image118.jpg"></p>
<p>Once loaded into xEdit, we need to apply a Filter to detect all of the Identical to Master references in the mod being cleaned.</p>
</div>
<p>Clicking on, "Apply Filter" (B) will present the Filter window, just as it did with the <a href="4-conflict-detection-and-resolution.html#s_4-5">Conflict Resolution Process</a>. This filter window however will utilize different options than with conflict detection, as in this case we are only looking at one mod file and one specific kind of conflict – the Identical to Master references.</p>
<p>The options to select for Mod Cleaning are:</p>
<ol>
<li>By conflict status for this particular record</li>
<li>Identical to Master</li>
<li>Conflict status inherited by parent</li>
</ol>
<div class="p-img">
<p>The screenshot below illustrates the filter options to select:</p>
<p class="img"><img src="img/image343.jpg"></p>
</div>
<div class="p-img">
<p>Clicking on, "Filter" (C) will launch the xEdit analysis for Identical to Master records, which should complete in a short period of time (perhaps 1-20 seconds). If your system is very slow or bogged down or the mod is really huge, it is possible for the process to take longer. The status of xEdit can be viewed in the title bar, as shown in the screenshot below:</p>
<p class="img"><img src="img/image122.jpg"></p>
</div>
<p>Both the elapsed time and processed records are shown in the title bar. When xEdit completes the analysis, the <a href="2-overview.html#s_2-3-5">Messages Tab</a> will reveal the result as shown on the next page. You should also not expect to see in anything yet in the <a href="2-overview.html#s_2-3-7">View Tab</a>.</p>
<div class="p-img">
<p>The output of the filter can be seen in the <a href="2-overview.html#s_2-3-5">Messages Tab</a> as shown below:</p>
<p class="img"><img src="img/image124.jpg"></p>
</div>
<p>The total number of records filtered and the elapsed time are given, which should be quick. Also note the Green text and the different background color in the screenshot above, which indicate there are references to be cleaned out.</p>
<div class="p-img">
<p class="img"><img src="img/image126.jpg"></p>
<p>The records to be cleaned will be shown in the <a href="2-overview.html#s_2-3-7">View Tab</a>. At first if you don't see anything in the view, this is because "Hide no conflict rows" is active. Which means any rows that don't have a conflict are normally not shown (as they play no role in conflict resolution, they are not conflicted!). The screenshot below shows you the simple operation you can perform to see the records that need cleaning:</p>
</div>
<p>As long as "Hide no conflict rows" is not set in the <a href="2-overview.html#s_2-3-7">View Tab</a>, you will be able to see all of records just as you do during conflict detection.</p>
<div class="p-img">
<p class="img"><img src="img/image128.jpg"></p>
<p>Note the grey text with green background in the mod we are cleaning; indicating that they are identical to the master versions of the same record and should be removed (cleaned). These are often called, "dirty edits".</p>
</div>
<div class="p-img">
<p>A simple visual inspection between the Fallout3.esm and <a href="https://www.nexusmods.com/fallout3/mods/867">BetterCaravans</a> mod reveals the duplicated records that really don't need to be in the <a href="https://www.nexusmods.com/fallout3/mods/867">BetterCaravans</a> mod at all. Removing these will have no negative impact on the mod or Fallout3. The process of removing the duplicated, "identical to master" records involve applying a slightly different filter to the mod, followed by several context menu options as shown in <a href="#s_5-3-1">5.3.1 Removing "Identical to Master" Records"</a> and in <a href="#s_5-3-2">5.3.2 Un-deleting and Disabling References</a>.</p>
</div>
</div>
<div class="level-nav">
<a href="#Apendix-A" class="drkbtn">Previous Section</a>
</div>
<!--/.level-nav-->
</div>
</section>