Tes4Mod:Wrye Bash/Mod Checker

The UESPWiki – Your source for The Elder Scrolls since 1995

Jump to: navigation, search

Contents

[edit] Overview

Wrye Bash's Mod Checker analyzes the user's active mod list, and generates a report on configuration settings and mod compatibility errors. Part of the report is based purely on analysis of the files (e.g. checking for missing masters), however most the report is generated by running a set of rules on the active mod set. In order for this rule based analysis to run, rules files must be supplied. This page describes the syntax for such rules files.

[edit] Releasing Rulesets

There can be any number of rules files. To be recognized by Bash's Mod Checker, they must be a plain text file located in the Oblivion\Data\Bash Patches directory, and their name must end in "Rules.txt". When running the mod checker, Bash will run all such files located in the user's Bash Patches directory.

So who makes the rules? First, it would be good if modders in charge of large projects with complex configuration and/or substantial integration issues, released a rule set specific to their package. Such large projects would be: Cobl, FCOM, Better Cities, Unique Landscapes, etc.) The ruleset for these projects should then be included in the release for these mods.

Second, for the sea of smaller mods with various integration issues, it would be good if someone took on the task of generating a general ruleset. (In the same way that BOSS (aka FCOM_Helper) provides an order ruleset for most mods.) As of this date (11/26/2008) no one has taken on this project.

[edit] Ruleset Processing

In the Mod Checker report, each ruleset is processed in alphabetical order (based on name of ruleset file). For each ruleset, info is given in this order:

  • A header with name of ruleset, followed by header text if provided.
  • Oneof warnings. (Only printed if the rules are violated.)
    • Printed if more than one of any of the mods is active.
  • ModSet reports in order that they're defined in the ruleset
    • Configuration Recap
    • Suggestions
    • Warnings (Include/Exclude/Merge Only)

[edit] Ruleset Syntax

[edit] Comments

Any text starting with ## will be ignored. This is useful for comments.

 xxx ## some comment

[edit] HEADER

You can define the text that appears at the top of the ruleset report.

>> HEADER Some text here.

A bulleted list:
* Alpha
* Beta
* Gamma

[edit] ONLYONE

This defines a simple rule that says "only one of the following mods should be active". All that you have to do is list the mods.

>> ONLYONE
Cobl Races.esp
Cobl Races - Balanced.esp

[edit] IF

This is the main rule type. It comes in two parts: IF and CONFIG-SUGGEST-WARN. In the IF part, you specify one or "source" mods. In the CONFIG-SUGGEST-WARN part, you specify various tests to apply. The tests will only be applied if all of the source mods are active and/or merged. E.g.

>> IF Alpha.esm
Beta.esp
Gamma.esp
>> NOTES
Some notes about the mod here. Can be multiline and use bold/italic/link formatting.
>> CONFIG
o Alpha - Beta.esp // Bridges Alpha and Beta mods.
o Alpha Extras.esp // Provides extra alphaness.
>> SUGGEST
- Harpo.esp // Use Harpo-Alpha.esp instead.
x Zeta.esp // This would rock with Alpha.esm!
>> WARN
## Exclusion/Inclusion
x Albert.esp // **Activate.** Required.
+ Alpha Mend.esp // **Merge Only.** Merge in bashed patch only.
- Beppo.esp // **Deactivate** Incompatible.
e meshes\Alpha\alpha.dds // **Missing Resource.** Tests for existence of a file.

For source mods just list one source mod per line, with first mod on same line as IF statement. Again, all of these must be active (or merged into bashed patch) for statements in THEN clause to be applied.

The CONFIG/SUGGEST/WARN clauses are where most of the functionality of the Mod Checker is applied. The type of the test is determined by the leading symbol (o,x,+,-,e). The relevant mod or file is listed next, and finally (after the double slash (//)), the comment to be printed in the Mod Checker.

The three clauses are: CONFIG for configurations, SUGGEST for suggestions, and WARN for warnings. SUGGEST and WARN rules have identicaly syntax. Suggestions are considered to be optional -- i.e. something that you're suggesting that the player do, but not a necessity. Warnings are more severe -- things that the player really should change.

Keep in mind that the dividing line between suggestions and warnings is not always clear. Generally, if you would say "you definitely should" or "I strongly suggest", then the rule belongs under WARN. Note that players may choose to hide suggestions in their report.

CONFIG rule types are:

  • Option (o)
    • This is for a configuration report. It's basically intended to serve as a reminder to the user of what optional mods they have active. In the report, each of these tests will result in a line indicating whether the mod is active, inactive or merged, and printing the comment.

SUGGEST and WARN rule types are:

  • Inclusion (x)
    • This is to indicate that the specified mod must be active. I.e. "if mods A and B are active, then mod C must also be active." If the specified mod is not active, then the Mod Checker will print a warning.
  • Exclusion (-)
    • This is to indicate that the specified mod must not be active. I.e. "if mods A and B are active, then mod C must not be active." If the specified mod is active, then the Mod Checker will print a warning.
  • Merge Only (+)
    • This is to indicate that the specified mod should be merged, but not active. A warning will be printed if the mod is either active or inactive but not merged. Usage of this rule should be very rare -- at this time, Item Interchange is the only known mod that requires it.)
  • Existence (e)
    • This mod mod tests to see if the specified file exists. This is generally useful as a test to see if a required resource pack has been installed. Pick one representative resource (e.g. a unique texture file) and test for that. Note that while you could check for the existence of all resources, that would be redundant (since likely they're all there or none are). Just test for that, and if the file does not exist, then ask the user to install the whole resource pack.

Comment Formatting: You can format comment lines a little.

  • __Bold__
  • ~~Italics~~
  • **Bold-Italics**
  • [[http://yadda.com/yadda.txt|Yadda]]

The latter is useful for linking to explanatory text or a patch file download.

[edit] IF Not/And

By default, each of the mods in the if statement are ANDed together. I.e. all specified mods have to be active in order for the test the group to be "active". However, you can also OR and NOT mods within small limits. E.g.

>> Alpha.esp
Beta.esp
| Gamma.esp
| Delta.esp
- Epsilon.esp
- Zeta.esp
| Eta.esp
Theta.esp

This equates to Alpha and (Beta or Gamma or Delta) and NOT(Epsilon) and NOT(Zeta or Eta) and Theta.

In other words:

  • OR (|) If this preceeds a mod, then it is orred with the previous mod.
  • NOT (-) If this preceeds a mod, the it is NOT'ed. If you want to not an group of orred mods, then you need to NOT the first element of it.

[edit] ASSUME

This is just a convenience if you have a lot of IF clauses with repeated source mods. E.g. suppose that you have a lot of IF blocks which include Cobl Main.esm as one of the source mods. Rather than repeating "Cobl Main.esm" in each clause, you can "assume" it. This will auto-include it with each following IF clause until another ASSUME statement, or the end of file is reached.

Assume statement are not additive -- rather each ASSUME clause completely replaces the previous assume clause. To stop assuming any mods, just use an ASSUME clause with no mods listed. To assume multiple mods, just list each additional mod on another line (just like for the IF clause).

[edit] Sample Ruleset: Cobl

For a real world example, here's a simple ruleset for Cobl.

>> HEADER This ruleset covers Cobl (Common Oblivion) and related mods.

>> ONLYONE
Cobl Races - Balanced.esp
bgBalancingEVCore.esp

>> IF Cobl Main.esm
>> CONFIG
o Cobl Glue.esp // Glues Cobl items into vanilla lists, cells
o Cobl Si.esp // Glues Cobl items into Shivering Isles cells.
o Cobl Tweaks.esp // Adds Cobl items to creatures and NPCs.
o Cobl Races.esp // Additional races, hairs, eyes.
o Cobl Races - Balanced.esp // Races and birthsigns given better balanced pros and cons.
o Salmo the Baker, Cobl.esp // Enhances Salmo the Baker in Skingrad.
o Cobl Filter Late.esp // Adds foods from various mods to the Dinner Plate. (Requires OBSE.)
>> SUGGEST
- Denock Arrows.esp // **Deactivate** and use Cobl Denock instead. (See Options menu.)
## HOMES
- AlchemistsCave.esp // Use [[http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&id=3996|Coblized version]] instead.
- Jagnot-SI-Bliss Aquaduct House.esp // Use [[http://ljosa.proboards57.com/index.cgi?board=releases&action=display&thread=548|Coblized version]] instead.
- PrincessImperialCityApartment.esp // Use [[http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&id=3997|Coblized version]] instead.
- PrisonersCampsite.esp // Use [[http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&id=4106|Coblized version]] instead.
- SkyShip.esp // Use [[http://ljosa.proboards57.com/index.cgi?board=releases&action=display&thread=548|Coblized version]] instead.
>> WARN
## Required
e meshes\Cobl\StaticApp\apparatusalembics.nif // __Missing meshes [StaticApp].__ Try reinstalling full Cobl package (including all textures/meshes).
## Obsolete components
- Cobl Glue MW Ingred.esp // **Deactivate.** Obsolete. (Merged into Cobl Glue.esp.) 
## Superceded mods.
- Beer! for Oblivion.esp [1.2.3:]-- **Deactivate.** Included in Cobl Main.esm.
- DaggerfallBooks.esp // **Deactivate.** Included in Cobl Main.esm.
- FirstEditionGuidetotheEmpire.esp // **Deactivate.** Included in Cobl Main.esm.
- Ingredient Storage Shelves.esp // **Deactivate.** Included in Cobl Glue.esp
- MorrowindBooks.esp // **Deactivate.** Included in Cobl Main.esm.
- Salmo the Baker v2.0.esp // **Deactivate** Use Salmo the Baker, Cobl instead.
- Tamrielic_Ingredients.esm // **Deactivate.** Included in Cobl Main.esm.
- Tamrielic_Ingredients.esp // **Deactivate.** Included in Cobl Main.esm.

>> ASSUME Cobl Main.esm

>> IF Cobl Races.esp
>> WARN
e meshes\characters\saram\femalehair\type0\01.nif // __Missing meshes [Saram].__ Be sure that you have installed [[http://tesnexus.com/downloads/file.php?id=21104|Cobl Cosmetics Res 01]].
e meshes\clothes\asxivilai\xivilaicollar.nif // __Missing meshes [xivilai].__ Be sure that you have installed [[http://tesnexus.com/downloads/file.php?id=21104|Cobl Cosmetics Res 01]].
x DLCShiveringIsles.esp // **Activate** Required (meshes and textures).

>> IF Cobl Races - Balanced.esp
>> WARN
x Cobl Races.esp // **Activate.** Required.

>> IF Cobl Si.esp
>> WARN
x DLCShiveringIsles.esp // **Activate.** Required.

## Patch Mods ----------------------------------------------------------------
>> IF FF_REAL_Thirst.esp
>> SUGGEST
x FF_REAL_Thirst, Cob.esp // Patch FF Real Thirst to work with Cobl water wells.
Sponsored Links
Personal tools
  • Log in / create account