Mod Cleaning FAQ
Dirty mods! You probably hear this phrase a lot these days, particularly as TES4Edit and other such utilities have become all the rage, and compatibility is more important than ever. What does it all mean? What can you do to help clean up? The knowledge and tools are here and accessible to everyone, modders and mod-users alike!
Q. What is a "clean mod"?
A: A mod that isn't dirty, of course!
Q. ...Well then, what's a "dirty mod"?
A: A mod that contains any of the following:
- Records that are "identical to master", meaning something is marked as having been edited, but is in effect unchanged. Example: Modder moved a rock. Modder moved it back to exactly where it was before modder moved it. The CS has now flagged that rock as having been edited, but it is not any different than how modder found it!
- Deleted references. Modder found a rock, modder deleted the rock, and now it's gone. *poof*
- Edited vanilla base objects, when the intention was to change one instance of an object or create a new base object, and not change all instances of the original base object
- Wild edits, where a modder accidentally changed something, probably without ever realizing it
- Unrelated records; anything in the mod that has really nothing at all to do with the point of the mod, but was put there as a lark or test and not removed later (this one subject to debate)
- Any unintentional edit
Q: Why does this stuff matter?
A: We'll go point by point, respectively:
- Identical to master records - Let's say you're the modder who moved a rock, then put it back hoping nobody would notice. Then some other modder moves that rock on purpose for a different mod. Then a user installs both mods, and yours loads last - therefore defining that the rock is back in its original place. Now other modder's mod isn't working as intended! Sure, it's just a rock. But what if it's a big rock he had to move out of the way of something important? Or what if it's ten rocks, or twenty? You can't anticipate the scope of the consequences, really, because you never know what other modders are going to do. But it's rude to get in their way about it for no good reason by moving rocks all about and then putting them back all sneaky-like.
- Deleted references - So this time, there's a rock in your way, and you delete it. But what if other modder moves that rock somewhere else? One of two things, is what happens: the game CTD's when that cell is loaded as the engine tries to reconcile a rock being both present-but-moved and deleted, or the game crashes on exit (or "hangs" on exit, which is really just crashing and freezing instead of CTD). So deleting this rock is a bad idea. You'll have to find another way to handle it.
- Edited vanilla base objects - All you wanted was a barrel full of lockpicks, and now every barrel in Cyrodiil is full of lockpicks! Aaahh! Or you meant to make YOUR gate open when YOUR lever was pulled, not the lever in the dungeon containing the original lever whose script you borrowed! Eeep!
- Wild edits - All you meant to do was make the front yard of your house a little more level. Somehow, your cursor wandered away, and you clicked while the landscape editor was still open, and now there's a small crater half a Cyrodiilic mile from anything you meant to edit. Now anybody else who wants to work that land on purpose will create land tears for anybody who runs your mod and that guy's mod at the same time, and for no good reason!
- Unrelated records - Maybe while you were building your house mod, you forgot that you were also curious to see how Jensine rocked red hair. Well, now your house mod conflicts with any mod that edits Jensine, despite that the two (should) have nothing to do with each other.
- Any unintentional edit - Pretty much anytime you said "oops" but saved anyway, you made one of these. It happens!
Q: How can I keep from making dirty edits?
A: Pretty often, you can't. I used to reload my last plugin save because I moved a rock by accident. I didn't know what a dirty edit was then, or mod cleaning; but I saw the little asterisk in the title bar of the CS indicated the plugin had changed since the last save even after I used Undo to undo something, and that just seemed... funny. So okay, my cleanfreak is showing. But anyway, no matter how clean I thought my mods were, and no matter how careful I was while making them, I still found dirty edits later when I learned how to use TES4Edit. It's just not reasonable to mod that way. Sometimes you need to delete or move rocks to get them out of your way to build other things. Sometimes you make an "oops", and you don't want to lose forty minutes of hard work to it by reloading without saving. Sometimes you accidentally put a crater in the landscape in a spot so far away, you'd never think to look at it in-game. It happens. In these cases, all you can do is clean up after yourself.
There are two exceptions: Unrelated edits, and edited vanilla base objects. Don't put stuff in your mods that doesn't belong in that mod, and you'll never have the first problem. For the second problem, duplicate the object first, THEN make your changes. Or if you forget to duplicate, click "yes" when you are asked to create a new form, and give your new thing an editorID that is completely unique to you and your mod. Now only YOUR barrel will be full of lockpicks. These two are completely in your control. However, if you do "oops" them, you can still clean them later.
In regards to deleted references, you can also prevent those on the small-scale. If you only want to remove a few objects, check the "initially disabled" box on their edit boxes instead of deleting them, and/or drag the objects under the floor/land. This way if another modder moves them, there will be no crash. Things might not display optimally, such as if you disable a table another modder puts a planter on; but at least there will be no crash. In such cases, load order may solve the conflict alone, or a compatibility patch. If you want to remove lots of objects, just delete them, and use the automated cleaning steps described below to save time.
Q: Okay, I get it. How do I clean mods?
Yay! The first thing to do is to run the automated cleaner in TES4Edit. This will take care of "Identical to Master" records and "Deleted References". There is an excellent CS Wiki tutorial already posted on this. Go try it! Even if you've never used TES4Edit before, you'll be just fine with this guide.
It is generally wise to use this automated cleaning process on all the mods in your load order unless a mod's documentation specifically says not to. You are taking responsibility for the cleanliness and compatibility of your mods, but not every modder will - and a lot of mods were made long before a cleaning tool was available, when the importance of cleaning wasn't widely known.
The second thing to do is manual cleaning. DarkRider did an excellent job teaching us how to do this with TES4Gecko in Lesson #4 of the CS Basics tutorial right here at TESA! If you're a modder reading this, you've either taken the class already or should! For the mod users, skip down to Part III: Cleaning Your Mod. The steps for doing this in TES4Edit are very much like the steps to do it in TES4Gecko, and the cleaning guide above will have taught you the basics of TES4Edit you need to make the jump from one application to the other. I will simply add my usual process as an addendum:
1. Look at all the base objects (items, activators, scripts, statics, etc). Sort them by Editor ID, if you're in TES4Edit (you can't in TES4Gecko, as far as I know). If you've been using any kind of sensible naming convention, all your objects will now be grouped together because they will all have the same prefix. This makes it easy to spot if you have changed any vanilla base objects. If you changed any, was it the purpose of the mod to do so, or would it be better for you to go back and create a new base object with your customizations?
2. Look at the cells you edited, both under CELL (interiors) and WORLDSPACE (exteriors). Make sure you only edited vanilla cells that you really needed to for your mod to work, because every cell you touch is a cell another modder can't touch without creating a logical conflict with your mod. Not all conflicts are harmful, but don't risk it without purpose!
3. By going through all these steps, you will likely have found and conquered any remaining wild, unrelated, or otherwise unintentional edits, as well as any edited vanilla base objects. Save and playtest to be sure, though!
You can try manually cleaning other peoples' mods this way if you like, but a lot of manual cleaning can only be done well if you really know the intention of the edits. So, tread carefully in that regard, and make sure to keep backups!
This concludes my FAQ. Go clean stuff!
Special thanks to Arthmoor for finding my crater behind Anvil and pointing me at TES4Edit.