Difference between revisions of "Mod Cleaning Tutorial"

3,981 bytes added ,  13:07, 21 January 2011
m
imported>Dev akm
imported>Bruneauinfo
 
(10 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 55: Line 73:
[http://timeslip.chorrol.com/TESsnip.html TESsnip website]
[http://timeslip.chorrol.com/TESsnip.html TESsnip website]


=== TES4PU/TES4Gecko ===
=== TES4Gecko ===
TES4Gecko includes a feature called "Display/Copy Plugin Records" that does a lot more than its name would suggest.  
Recent versions of TES4Gecko include a feature called ''Clean Plugin'', which automatically removes any records from your plugin that are not actually changed from the original master.
 
It also now includes a ''Compare Plugins'' feature that can help you easily distinguish between records that have changed and those that have not.
 
In cases where you need to remove accidental changes, TES4Gecko includes a feature called "Display/Copy Plugin Records" that does a lot more than its name would suggest.  


When you load up a plugin file with TES4Gecko using the "Display/Copy Plugin Records" function, it lets you browse a tree structure of the records in a plugin. Records are grouped neatly into branches by type so you can quickly drill down to the things you want to look at by expanding the appropriate branch.
When you load up a plugin file with TES4Gecko using the "Display/Copy Plugin Records" function, it lets you browse a tree structure of the records in a plugin. Records are grouped neatly into branches by type so you can quickly drill down to the things you want to look at by expanding the appropriate branch.
Line 64: 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''.


If your mod contains several dirt 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''.
Line 76: Line 98:
TES4Gecko automatically adjusts the record count for the plugin after you make changes this way, but it's still a good idea to open it up in the CS to check your changes.
TES4Gecko automatically adjusts the record count for the plugin after you make changes this way, but it's still a good idea to open it up in the CS to check your changes.


Wiki link:[[TES4 Plugin Utility]]
Wiki link:[[TES4Gecko]]


[[Category:Tutorials]]
[[Category:Tutorials]]
[[Category:About Modding Etiquette]]
[[Category:About Modding Etiquette]]
[[Category:Miscellaneous_Tutorials]]
[[Category:Miscellaneous_Tutorials]]
Anonymous user