Tes3Mod:Wrye Mash:Installers Tab

The Installers tab in Wrye Mash provides a mod package installer facility (called Bain). It makes mod installation simpler, and perhaps more importantly, it mades mod UN-installation simple and safe. It's also useful for resolving resource file conflicts between different mods.

Bain has been backported from Wrye Bash -- hence the name "Bain", aka Bash Installers. If you're familiar with Timeslip's OBMM or MWMM, then Bain is fairly similar, but has some substantial advantages (and some disadvantages) compared to them. For a comparison, see Bash vs. OBMM.

Note that if you have been using the Replacers Feature, then you should upgrade/switch to using Bain instead, since Bain completely supercedes Replacers.

Getting Started
Here's a brief getting started guide. You may have to read sections further down before this section makes full sense.
Terminology: Package
A Package is a collection of esps, esms and/or resource files. Everything listed under the Installers tab is a package. Packages can be either archive files in (zip, 7z or rar format) or directories (aka Projects).
Initialization
When you first visit the Installers tab after starting Mash, Bain will need to go through an initialization process. If you've done this before, and no new packages are installed, and the machine is "warm", then it will take on the order of ten seconds.
However, if you have just added a bunch of packages, then Bain will take longer to intitialize, since it will need to scan all new/modified packages.
In particular, the first time you start Bain, it will take a long time (on the order of three to ten minutes or more) to initialize. Enjoy your coffee break. :D
Reducing Init Times
You can disable Bain entirely by unchecking "Enabled" in the column context menu on the Installers tab. (Note that this does not erase previously stored info. I.e. it's safe to disable Bain and then later re-enable it if you prefer.)
You can choose to "Avoid on Startup" (again from column context menu). This will cause Mash to try to avoid the Installers tab when it starts up. And since Bain won't initialize until you visit the Installers tab, you'll save a bit of time if you weren't planning on visiting it anyway.
Install Directory
As noted below, Bain looks for packages in the Morrowind\Installers directory. Easiest way to get started with Bain is to just grab all your old mod archives and move them to the Installers directory. Then return to the Installers directory to see Bain's evaluation.
If you're a modder with existing project directories, you can move those to the Installers directory too.
Reviewing Package Status
Some packages may be green, but most (even ones that you have previously installed) will likely be red. (Even if you have installed a package, Bain's Doc File Sweeping means that some files will be in unexpected places.
For each package, you can select it, and then review its details in the Debug text box. In particular, look for Missing and Overridden files.
You can intall package as desired (though you may want to change their order first.)
For complex packages, you will likely want to configure their sub-packages before activating them.
For packages with unrecognized structure (grey checkbox and name), you'll need to restructure the package's directories and files to something more like what Bain expects before you can install them.

Overview
Bain will search for and display packages from the (new) Morrowind\Installers directory. Mods (either archives or projects) can then be installed or uninstalled, and their status can be reviewed in the details pane on the right.
Checkmarks
Installed packages will be marked with a "+".
Icon Colors
Icon colors indicate the degree to which the package is synchronized with the Morrowind\Data Files directory:
Green: Package is fully synced. Note that a package can be green even if it is not "Active". E.g. if you have two identical packages and one is (fully) installed, then it will be green and checked. But the identical package will also be green -- since it too is fully synced with the data directory.
Red: Some files in the package are missing from the data directory.
Orange: All package files are present in the data directory, but some esps/esms are not identical. (E.g. another package installed an alternative version of that file, or the user modified the file after installation.)
Yellow: All package files are present in the data directory, but some resource files are not identical. (E.g. another package installed an alternative version of that file, or the user modified the file after installation.)
White: This is relatively rare. It just means that the package is configured in a way that it has no files to install. This can happen for complex packages where none of the sub-packages are checked.
Grey: This indicates that the package has a structure that Bain does not recognize, and so cannot install.
Red X: The package is corrupt and/or incomplete. You'll likely see this for packages that you are currently downloading into the Installers directory.
Icon Shape
Diamond: A project, i.e. a subdirectory in the Installers directory.
Square: A mod package archive. Note that only rar, 7z and zip formats are supported.
Text Colors
Blue: Indicates a package with sub-packages. The files to be installed, and thus the install state of the package will depend on which sub-packages you have activated.
Grey: This indicates that the package has a structure that Bain does not recognize, and so, cannot install.
Text Background
Orange: Indicates that the install is dirty. This will occur for packages for which the configuration has been altered (either by altering active sub-packages and esmps, or by altering the package itself). This can be repaired by running Anneal or Anneal All.
Yellow: Indicates that the package has "underrides" i.e. some of its installed files ~~should~~ be overridden by higher order packages. This may happen after reordering mods that have already been installed. It can be repaired by running Anneal or Anneal All.
Grey: Indicates that some files present in the package will not be installed. This is usually due to a complex structure that is only partially handled by Bain, but can also be due to having files that Bain refuses to install (exe's, dlls, sub-archives, etc.)

Package Details
Details for the currently selected package will be show on the right. There are (currently) three fields here:
Info Tabs
The tabs at the top display several types of information relevant to the current mod. Note that much of this information is dependent on the install status of the mod and sometimes it's order.
General: Shows summary info and the files to be installed -- as determined by sub-package, esp/m, voice filtering, etc.
Matched: Shows files which are identical to current data directory files.
Missing: Files which are missing from the data directory.
Mismatched: Files which are present in the data directory, but which aren't identical to the package's version of those files.
Conflicts: Shows which other packages will conflict the current package and for what files. Note that if a given file is mismatched, but the mismatch isn't due to other packages, then it won't appear. This report can be modified to show inactive conflicts and/or lower order conflicts through Package Header Commands.
Underridden: Shows packages which should be overridden, but are not, due to install order errors. This can be corrected by running Anneal or Anneal All.
Dirty: Shows files which the package previously installed, but which now should be removed or altered due to a reconfiguration of the package. Dirty files can be cleared by running Anneal or Anneal All.
Skipped: Shows which files in the package were skipped by Bain.
Sub-Packages
This will be blank unless the package has sub-packages. You can determine which of these to install simply by checking the ones you want. Note that sub-packages are installed in the order they appear. So if different subinstallers have different versions of the same file, then the subinstaller that is later in the list (and active) will win.
Esp/Esm Filtering
This tab can be used to filter out specific esps and esms from a packages. This is intended for use with packages that provide alternate and optional mods. Note that Esp/m filtering is applied ~~after~~ sub-package filtering. E.g. it may be easier to turn off a sub-package entirely rather than disable individual espms from it.
Comments
This is a field where you can enter comments about the package. Useful for keeping track of what the package is supposed to do, etc.

Package Structure
Bain recognizes three package structures:
Simple
If the package has esps, esms or bsa's at the top level, or if it has any of the regular Morrowind\Data Files subdirectories (e.g. Meshes, Textures) at that level, then it will be categorized as a simple package.
Complex
If a package is not simple, but has subdirectories which appear simple (have esps/esms/bsas and/or have standard sub-directories), then it will be categorized as complex.
In this case, each top level subdirectory (that appears simple), will be treated as a sub-package, and you'll be able to activate or deactivate it as desired before installing.
Complex/Simple
If a package is complex, but has only one sub-package, then it will appear as a simple package in the interface. (I.e. there will be no sub-package options.)

Skipped Files
Bain will skip over (never install) certain types of files in the package.
Silent Skip
A few files are skipped silently. Files in this group are: Thumbs.db files, and the omod conversion directory and its subfiles.
Directory Skipping
Bain will skip files from directories that it does not recognize. I.e. it will only install files that go directly into the Morrowind\Data Files directory or one of its regular subdirectories (Meshes, Textures, Sound, etc.). Files from irregular directories will be skipped. If this happens, you'll find them listed in the Skipped pane on the right.
Extension Skipping
Bain will skip files with certain extensions - mostly executables (exe, dll, dlx) and subarchives (7z,zip, etc.). Again, these will be listed in the debug pane on the right. (But only if they're not already skipped because of the directory that they're in.)

Doc File Sweeping
In order to prevent clutter and centralize doc file storage, Bain will sweep files that appear to be doc files into Morrowind\Data Files\Docs. Also, files named simply readme.txt (or readme.doc, etc.) will be renamed according to the package name before being swept into the Docs directory.

Ordering
Bain assigns an install order to all packages. When packages are installed and/or uninstalled, the order is considered in determining which files will actually be installed/uninstalled.
General
Install order is shown the table in the Order column.
All packages are moved to just before the Last marker when Bain first encounteres them.
Order can be changed by right clicking on a package (or group of selected packages) and selecting "Move To". Just enter the position to which the packages should be moved. If you're moving many packages at once, they'll keep their relative order, with the "oldest" moving to the specified position, and the others following after it.
Last
Last is a special marker entry that Bain automatically adds to the archive list. It corresponds to the position at which any newly encountered packages are inserted. if you want specific packages (e.g. your personal projects) to always have high order, then move them to after the Last marker.
Install Order
When you install a package, then the order of higher packages will be respected. I.e. if the package being installed conflicts with a higher order package that's already active, then it '''won't overwrite''' the files from the higher package. Rather, only the files that don't conflict with higher packages will be installed. (However, if you want to overwrite later packages, then you can use the Install Last command, which will move the selected packages to the end of the list and then install them.)
Uninstall Order
Uninstalling a package will also respect order. Specifically, files that are owned by higher order packages will be left in place. More than that, files that '''aren't owned by the package being uninstalled will also be left in place. (Hence manually edited mods and files will be left in place.)
Also, if a lower order package installed an identical version of a given file, then that file will not be removed. (I.e. ownership will cede to the lower order file.)
By the way, you can uninstall''' packages that aren't active. This is useful for cleaning out the files from packages that you have previously installed.
Auto-Annealing
When you uninstall packages, Bain will also attempt to anneal the file system by restoring any files from active packages that were previously blocked by the packages being uninstalled. If you prefer that Bain not auto-anneal files, then you can deactivate Auto-Anneal from the context menu of the column header.

Mod Name Aliasing
If you make a practice of renaming your installed espm files (as I do), then Bain will not be able to match the mod in the package to the installed file. So to adjust for that, you can define a mod aliasing database.
Setup
After installing Mash, look for Data Files\Mash\Official_Local_default.csv, and copy it to "Official_Local.csv" in the same directory.
Updating
Open Official_Local.csv in your favorite spreadsheet program. Note that the file format is csv (comma separated values). When making changes be sure to save it in the same CSV format (with comma separators)!
You'll see that the file has two columns.
On the left is "Official" which is the "official" name of the mod, i.e. the name of the mod that you'll find in the archive package that you downloaded.
On the right is "Local", which is the "local" name of the mod, i.e. the name you prefer for the mod.
The way this works is simple -- when mash encounters a mod with a specified official name, it will map it to the local name. All install, uninstall, etc. commands will then act as if the file in the mod actually had the local name.
So to define entries, the easiest thing to do is:
Open Mash and go to the Installers tab. Find a mod for which you have changed the name.
Go to the Missing tab, select and copy the name of the missing mod, then paste that into the Official column.
Go to the Mods Tab, select the mod and copy it's name from the detail view on the right and paste that into the Local column next to the official name.
Save changes to the csv file. (Be sure to save in CSV format!)
Return to Mash Installers tab. Mash should immediately recognize the updated file and adjust for its changes.
Of course, you don't have to change mods one at a time. You can do a bunch at once and then save the file, then return to Mash/Bain.

Package Commands
The following commands are available from context menu of packages.
File
Open: Open package(s) in the file system.
Duplicate: Duplicate package.
Delete: Delete the pacakge(s).
Archive Info
Refresh: Refreshes all info for selected packages. Useful for updating info when package has been modified outside of Mash.
Move To... Moves selected packages(s) to specified position. If multiple packages are active, they'll retain their relative order, but move as a block to the selected position.
Configuration
Has Special Directories: Ordinarily, Bain will only recognize a limited set of subdirectories of the Data directory -- and files that come from other directories will be skipped over. However if a package has special directories (usually restricted to OBSE scripts), checking this option will cause Bain to recognize these special directories as valid subdirectories (and thus allow them to be installed).
Install
Anneal: Will "anneal" the selected file(s). This will install any missing files and correct any install order errors (aka "underrides").
Install: Will do an "in-order" install. I.e. it will fully install the package except for files that are masked by by higher order packages.
Install Missing: The same as Install, except that it only installs missing files -- i.e. it will not override any currently existing files.
Install Last: Moves the package to to the end of the order list and installs it.
Uninstall: Uninstalls the package. If Auto-Anneal is active, then files from lower order packages will automatically be restored as necessary.
Project
Unpack to Project: (Archives only.) Unpack the archive to a project.
Sync from Data: (Projects only.) Synchronize the project with files from the Morrowind\Data Files directory. This is essentially the reverse of "Install" for projects since it copies from the Morrowind\Data Files directory to the project rather than the other way around.

Package Header Commands
The following commands are available by right clicking on the column header of the Installers tab:
Sorting
Sort by Active: Active installers will be sorted to the top.
Projects First: If this is checked, then project packages will be sorted to the top of the table.
Actions:
Open: Opens the Installers directory in Windows Explorer.
Refresh Data: Rescans the Data directory and all project directories. Since this operation takes a little while, this scan is ordinarily done only once per Mash session. So, if you have manually edited the directories after that one-time scan, you should run this command to update Bain to the changes.
Full Refresh: This does a full refresh of all data files. Notably this will recalculate CRCs for all files (ordinarily CRCs are only calculated for files that seem to have changed). Running this command will likely take 5-15 minutes.
Anneal All: This will install any missing files (for active installers) and correct all install order and reconfiguration errors.
Availability
Avoid at Startup: Toggles Mash to avoid the Installers tab on startup, thus avoiding unnecessary data scanning. Unless you're spending a lot of time in the Installers tab, you'll should Enable this.
Enabled: This enables/disables Bain itself. Preferred setting: Enabled (checked).
Behavior
Clean Data Directory: If this is checked, then any empty subfolders of the Morrowind\Data Files directory will be deleted.
Show Inactive Conflicts: If checked, then the conflicts report will show conflicts with inactive as well as active mods. Usually only active conflicts are of interest, however sometimes its useful to review all conflicting packages.
Show Lower Conflicts: If checked, then the conflicts report with show conflicts with lower order packages. If you're only interested in higher order conflicts, the uncheck this to remove some clutter from the report.