Difference between revisions of "Mod Cleaning Tutorial"

3,609 bytes added ,  13:07, 21 January 2011
m
imported>ShadowDancer
m (→‎TES4Gecko: typo)
imported>Bruneauinfo
 
(8 intermediate revisions by 4 users not shown)
Line 11: Line 11:


== What's A Dirty Mod? ==
== What's A Dirty Mod? ==
To get a thorough understanding of this concept you first need to know what a mod is. A mod is basically a list instructions telling Oblivion what to change in the vanilla game to create a desired effect. A mod can make changes to npcs, quests, items, buildings, etc. These changes are then saved and stored in a plugin file.
The problem with dirty mods arises from the fact that Oblivion allows the player to use more than one mod at a time. One mod may add a building to a city. Another mod may create an NPC or move an NPC from one location to another. A player can download and install a great number of mods as you probably know. But what if two or more mods attempt to make a change to the exact same object? Which mod wins? The answer is the last mod loaded by the game.
Let's say in the process of creating your mod you accidentally move an NPC. Wanting to be a responsible modder you promptly move the NPC right back to where they were. Maybe you put the NPC back in its exact same spot - and maybe not. But you figure the NPC is close enough. Thinking nothing more of it you save your mod. Here is where dirty mods are born. When you saved your mod the CS also recorded the fact that you moved the NPC. The NPC might be in the exact same spot you found it. Still, when your mod is loaded Oblivion is going to read and act on the instructions you gave it, and the NPC will be moved to the precise location you specified - even though it was an accident. A person playing your mod could have another mod that loads before yours which moves the NPC in question to a new and specific location in Cyrodiil. The new location of this NPC may be a critical feature of this other mod. Still, when Oblivion gets to your mod in the load order the NPC will be moved to the exact spot your mod specified. Even though you didn't intend any changes to the NPC, your accidental "nudge" broke a mod someone else created. This is called a mod conflict. And fixing these types of "mistakes" is what Mod Cleaning is all about.


A dirty mod is any mod in which you, the modder, accidentally touched something in stock Oblivion that you didn't mean to. Many times, you might not have even noticed. Perhaps you were just looking at a dungeon and accidentally nudged a rock out of place. Or maybe you were browsing through the quest editor one day poking check-boxes to see how things worked, then forgot all about it and saved your mod anyway. Or maybe you made the classic mistake of doing a "Recompile All" in the script editor, and suddenly your mod just grew by 2MB and you now have a copy of every script in the game.
A dirty mod is any mod in which you, the modder, accidentally touched something in stock Oblivion that you didn't mean to. Many times, you might not have even noticed. Perhaps you were just looking at a dungeon and accidentally nudged a rock out of place. Or maybe you were browsing through the quest editor one day poking check-boxes to see how things worked, then forgot all about it and saved your mod anyway. Or maybe you made the classic mistake of doing a "Recompile All" in the script editor, and suddenly your mod just grew by 2MB and you now have a copy of every script in the game.
Line 45: Line 50:
== Using an External Utility ==
== Using an External Utility ==
There are several utilities that can make it a lot easier to remove things from a plugin.  
There are several utilities that can make it a lot easier to remove things from a plugin.  
=== TES4Edit ===
TES4Edit makes it very easy to examine the details of a mod's record structure, compare it with other mods in your load order, and tweak any of them to clean out problem records.
By far the best way to do this is to perform a thorough examination of your mod looking for unintentional or problematic changes. The huge advantage here is that you can tell exactly what changes were made to each record, which lets you make an informed decision about whether the record should be removed or not. In other words, you can verify your work by examining the plugin record structure in TES4Edit and removing any records that are not intentional changes.
To remove a single record or range of records in TES4Edit, select them and right-click->Remove.
You can also use TES4Edit's "Remove identical to master records" function, which automates the process for any records that are unchanged from the master. This doesn't catch records which have minor accidental changes, but it can still help. When you do this, make a copy of your mod, use TES4Edit's "Remove identical to master records" on it, then load your original "dirty" mod and use TES4Edit's "Compare to" function to compare it with the cleaned copy.
There are several good tutorials on the subject of mod cleaning with TES4Edit, but the [[TES4Edit_Cleaning_Guide|TES4Edit Cleaning Guide]] is by far the most comprehensive. Other guides can be found [http://www.uesp.net/wiki/Tes4Mod:Tes4View#Cleaning_a_Dirty_Plugin here] and [[TES4Edit/Mod_cleaning_tutorial_with_TES4Edit|here]].
Wiki link:[[TES4Edit]]


=== TESsnip ===
=== TESsnip ===
Line 68: Line 86:
For example, if you have accidentally changed a default container, you can easily spot this under the Container branch because you'll see a container record there with a FormID starting with 00 (records starting with 00 are always from Oblivion.esm, while records starting with 01 are new things added by your plugin).  
For example, if you have accidentally changed a default container, you can easily spot this under the Container branch because you'll see a container record there with a FormID starting with 00 (records starting with 00 are always from Oblivion.esm, while records starting with 01 are new things added by your plugin).  


[[Image:TES4GeckoContainer.jpg|frame|Marking Ignore on several dirty container records.]]
[[Image:TES4GeckoContainer.jpg|thumb|690px|Marking Ignore on several dirty container records.]]


To remove these dirty container records, expand the Containers branch, select the dirty records (Ctrl-Click to get multiple records), click the ''Ignore'' button, then click ''Save Plugin''.
To remove these dirty container records, expand the Containers branch, select the dirty records (Ctrl-Click to get multiple records), click the ''Ignore'' button, then click ''Save Plugin''.
Line 74: Line 92:
If your mod contains several dirty creature records, the process is the same:
If your mod contains several dirty creature records, the process is the same:


[[Image:TES4GeckoCreature.jpg|frame|Marking Ignore on several dirty creature records.]]
[[Image:TES4GeckoCreature.jpg|thumb|690px|Marking Ignore on several dirty creature records.]]


To remove these dirty container records, expand the Creatures branch, select the records you want to remove (Ctrl-Click to get multiple records), click the ''Ignore'' button, then click ''Save Plugin''.
To remove these dirty container records, expand the Creatures branch, select the records you want to remove (Ctrl-Click to get multiple records), click the ''Ignore'' button, then click ''Save Plugin''.
Anonymous user