Skip to content

Commit 3f6a0d6

Browse files
lojack5Infernio
andcommitted
Drop mod rules
These have pretty much been superseded by LOOT's capability to display warnings and suggestions. Squashed version of these commits: Removing RuleSets Pass 1: Removing immediate references to RuleSets Pass 2: Remove 'Show Notes', 'Show Config', and 'Show Suggest' Remove RuleSets documentation Update RuleSet removal for wx3 rewrite Update RuleSet removal for inf-wx-begone Co-authored-by: Infernio <infernio@icloud.com>
1 parent 151a12d commit 3f6a0d6

4 files changed

Lines changed: 16 additions & 465 deletions

File tree

Mopy/Docs/Wrye Bash Advanced Readme.html

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7092,14 +7092,6 @@ <h3 class="clearfb" id="tools-checker">Mod Checker <a class="back2top" href="#co
70927092
<li>Missing masters occur when a plugin that an active plugin depends on is not active. This results in an immediate CTD when the game is launched.
70937093
<li>Delinquent masters occur when a plugin's master loads after the plugin itself. This should be fixed to prevent issues in-game.
70947094
</ul>
7095-
<p>The next section of the report details the output of any rulesets installed. These are text files that contain a set of instructions that tell the Mod Checker what to look for and what to say in the report if anything is found. Currently the only ruleset distributed by Wrye Bash is for Cobl. Rulesets are stored in <code>Data\Bash Patches</code> and end in <q>Rules.txt</q>. Information on ruleset syntax can be found in the <a href="Wrye%20Bash%20Technical%20Readme.html#rulesets">Technical Readme</a>.
7096-
<p>The rest of the report details any plugin groups that have been set up. Each group's section contains the following information:
7097-
<ul>
7098-
<li>Notes: These are various notes on the plugin group, as entered by the user.
7099-
<li>Configuration: This is a summary of the plugin group's configuration. It uses a few symbols to denote the status of plugins, these are: x: active; +: merged; *: imported; -: inactive/unmerged.
7100-
<li>Suggestions: Specific suggestions for the plugin group. These are typically activating or deactivating certain plugins, or replacing mods with other mods.
7101-
<li>Warnings: Like suggestions, but the causes are more likely to cause issues. This section will detail what should be activated or deactivated to resolve the problems.
7102-
</ul>
71037095
<div class="prlflex clearf">
71047096
<figure class="slideshow" style="width: 576px; min-height: 596px">
71057097
<img alt="Mod Checker" src="../bash/images/readme/mod-checker-1.png">
@@ -7116,10 +7108,6 @@ <h3 class="clearfb" id="tools-checker">Mod Checker <a class="back2top" href="#co
71167108
<tr><td>Forward/Back Arrows<td>The Mod Checker report may contain links to other pages. These two buttons allow navigation between pages viewed, similar to the forward/back buttons in a web browser.
71177109
<tr><td>Reload</td><td>Reloads the current page. Works identically to a browser's reload button.</td></tr>
71187110
<tr><td>Mod List<td>Toggles the display of the Active Mod Files list.
7119-
<tr><td>Rule Sets<td>Toggles the display of the headers for the rulesets installed, even if they produce no other output.
7120-
<tr><td>Notes<td>Toggles the display of plugin group notes.
7121-
<tr><td>Configuration<td>Toggles the display of plugin groups' configurations.
7122-
<tr><td>Suggestions<td>Toggles display of the suggestions produced by plugin groups.
71237111
<tr><td>Version Numbers<td>Toggles display of version numbers where found for the plugins in the Active Mod Files list.
71247112
<tr><td>CRCs<td>Toggles display of the CRCs for the plugins in the Active Mod Files list.
71257113
<tr><td>Scan for Dirty Edits<td>Toggles the scanning of plugins for dirty edits. Effectively runs <a href="#modsScanForDirtyEdits">Scan for Dirty Edits</a> on each of the plugins in the Active Mod Files list and displays the results in the Mod Checker's report.

Mopy/Docs/Wrye Bash Technical Readme.html

Lines changed: 1 addition & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,13 @@ <h2>Technical Readme</h2>
6363
<li><a href="#wizards-examples">Examples</a>
6464
<li><a href="#wizards-obmm">Wizards vs. OBMM Scripts</a>
6565
</ol>
66-
<li class="list"><a href="#rulesets">Mod Checker Rulesets</a>
67-
<ol class="items">
68-
<li><a href="#rulesets-overview">Overview</a>
69-
<li><a href="#rulesets-syntax">Syntax</a>
70-
<li><a href="#rulesets-example">Example</a>
71-
</ol>
7266
</ol>
7367
</div>
7468
</div>
7569
</div>
7670

7771
<h2 id="intro">Introduction</h2>
78-
<p>This readme covers the most technical aspects of Wrye Bash, being the Wizard scripting language and the syntax used in Mod Checker rulesets. Information on the most commonly used aspects of Wrye Bash may be found in the <a href="Wrye%20Bash%20General%20Readme.html">General Readme</a>, and the <a href="Wrye%20Bash%20Advanced%20Readme.html">Advanced Readme</a> holds information on more advanced and less commonly used features. Wrye Bash's version history is stored in the <a href="Wrye%20Bash%20Version%20History.html">Version History</a> document.
72+
<p>This readme covers the most technical aspects of Wrye Bash, namely the Wizard scripting language and syntax for certain other file types. Information on the most commonly used aspects of Wrye Bash may be found in the <a href="Wrye%20Bash%20General%20Readme.html">General Readme</a>, and the <a href="Wrye%20Bash%20Advanced%20Readme.html">Advanced Readme</a> holds information on more advanced and less commonly used features. Wrye Bash's version history is stored in the <a href="Wrye%20Bash%20Version%20History.html">Version History</a> document.
7973

8074
<h2 id="darn">DarNified Books Wtxt Formatting</h2>
8175
<p>The DarNified Books setting in the Bashed Patch's tweaks allows the use of Wtxt formatting, which is applied if the first line of a book is <code>== title ==</code>
@@ -1023,171 +1017,6 @@ <h4>Functions in OBMM that are meaningless in Wrye Bash</h4>
10231017
<tr><td><code class="box">AllowRunOnLines</code><td>Wizards support run-on lines as standard.
10241018
</table>
10251019

1026-
<h2 id="rulesets">Mod Checker Rulesets</h2>
1027-
<h3 id="rulesets-overview">Overview</h3>
1028-
<p>Rulesets allow the expansion of Wrye Bash's Mod Checker to analyse active load orders based on additional rules. There can be any number of ruleset files, which must be plain text files located in <code><var>[Game]</var>\Data\Bash Patches</code>, with filenames ending in <code>Rules.txt</code>, for Wrye Bash to recognise them.
1029-
<p>Rulesets are processed in alphabetical order of their filenames. A ruleset's output is given in the following order:
1030-
<ol>
1031-
<li>A header containing the ruleset name, and any supplied header text.
1032-
<li>Warnings for any rules violated.
1033-
<li>ModSet reports, in the order that they are defined in the ruleset. These consist of:
1034-
<ol>
1035-
<li>A configuration recap.
1036-
<li>Any suggestions made.
1037-
<li>Any include, exclude or merge only warnings generated.
1038-
</ol>
1039-
</ol>
1040-
1041-
<h3 id="rulesets-syntax">Syntax</h3>
1042-
<h4>Comments</h4>
1043-
<p>Any text beginning with <code>##</code> will be ignored when the ruleset is processed, so can be used for making silent comments.
1044-
<code class="box ruleset">xxx ## [comment]</code>
1045-
<h4>Header</h4>
1046-
<p>The header command can be used to define what text is displayed in the header of the ruleset's output.
1047-
<code class="box ruleset">&gt;&gt; HEADER [text]
1048-
1049-
## A bulleted list:
1050-
* [text]
1051-
* [text]
1052-
* [text]
1053-
</code>
1054-
<h4>NOTES</h4>
1055-
<p>The <code>NOTES</code> command lets you output notes to the Mod Checker report. The possible formatting options are given in the formatting sub-section below. Notes can be multiline.
1056-
<h4>ONLYONE</h4>
1057-
<p>The <code>ONLYONE</code> command is a simple rule that states that only one of the rules following it may be active at any one time.
1058-
<code class="box ruleset">&gt;&gt; ONLYONE
1059-
Cobl Races.esp
1060-
Cobl Races - Balanced.esp
1061-
</code>
1062-
<h4>IF</h4>
1063-
<p>The <code>IF</code> command is used to specify that the <code>NOTES</code>, <code>CONFIG</code>, <code>SUGGEST</code> and <code>WARN</code> commands following it are conditional on the existence of the plugin(s) specified as part of the <code>IF</code> command. The effect of an <code>IF</code> command lasts until the next <code>IF</code> command or the end of the file, whichever comes first.
1064-
<p>If the <code>IF</code> command lists more than one plugin, then the condition statement is a logical AND combination of all listed plugins. You can also specify logical OR and NOT combinations.
1065-
<ul>
1066-
<li><code>|</code>: This is the symbol for an OR combination of the previous plugin and the following plugin.
1067-
<li><code>-</code>: This is the symbol for a NOT combination of the following plugin.
1068-
</ul>
1069-
<p>To specify that none of a set of plugins may exist, use a NOT for the first plugin of the set, then OR combine the it with the rest.
1070-
<code class="box ruleset">&gt;&gt; IF Alpha.esp
1071-
Beta.esp
1072-
| Gamma.esp
1073-
| Delta.esp
1074-
- Epsilon.esp
1075-
- Zeta.esp
1076-
| Eta.esp
1077-
Theta.esp
1078-
</code>
1079-
<p>The above equates to Alpha AND (Beta or Gamma or Delta) AND NOT(Epsilon) AND NOT(Zeta or Eta) AND Theta.</p>
1080-
<h4>CONFIG</h4>
1081-
<p>The <code>CONFIG</code> command lets you specify check the status of a plugin or plugins and output its/their status (active/inactive/merged) and a comment. It is intended as a way of reminding the user what plugins they have active.
1082-
<code class="box ruleset">&gt;&gt; CONFIG
1083-
o Plugin1.esp //[comment]
1084-
o Plugin2.esp //[comment]
1085-
</code>
1086-
<p>The <code>o</code> symbol denotes an <q>Option</q> rule type.
1087-
<h4>SUGGEST</h4>
1088-
<p>The <code>SUGGEST</code> command is intended as a way of providing non-critical suggestions. Its syntax is similar to that of the <code>CONFIG</code> command, but it has different rule types available for usage. The rule types are:
1089-
<ul>
1090-
<li><code>x</code>: <q>Inclusion</q> rule type. The specified plugin must be active. If the plugin is not active, the Mod Checker will output a message.
1091-
<li><code>-</code>: <q>Exclusion</q> rule type. The specified plugin must <strong>not</strong> be active. If the plugin is active, the Mod Checker will output a message.
1092-
<li><code>+</code>: <q>Merge Only</q> rule type. The specified plugin must be merged but <strong>not</strong> active. If the plugin is active or inactive and not merged, the Mod Checker will output a message.
1093-
<li><code>e</code>: <q>Existence</q> rule type. The specified file must exist. The file can be any file type, with the file path being given relative to the Data folder. If the file does not exist, the Mod Checker will output a message.
1094-
</ul>
1095-
<code class="box ruleset">&gt;&gt; SUGGEST
1096-
x Plugin1.esp //[comment]
1097-
- Plugin2.esp //[comment]
1098-
+ Plugin3.esp //[comment]
1099-
e Plugin4.esp //[comment]
1100-
</code>
1101-
<h4>WARN</h4>
1102-
<p>The <code>WARN</code> command is intended as a way of providing critical suggestions. It shares the same rule types as the <code>SUGGEST</code> command.
1103-
<code class="box ruleset">&gt;&gt; WARN
1104-
x Plugin1.esp //[comment]
1105-
- Plugin2.esp //[comment]
1106-
+ Plugin3.esp //[comment]
1107-
e Plugin4.esp //[comment]
1108-
</code>
1109-
<h4>ASSUME</h4>
1110-
<p>The <code>ASSUME</code> command inserts the assumption that the given plugin exists into any <code>IF</code> statements following the command.
1111-
<ul>
1112-
<li><code>ASSUME</code> commands last until the next <code>ASSUME</code> command or until the end of the file, whichever occurs first.
1113-
<li><code>ASSUME</code> commands are <strong>not</strong> additive: each <code>ASSUME</code> command completely replaces the previous one.
1114-
<li>To cancel the effect of an <code>ASSUME</code> command, use an <code>ASSUME</code> command with no mod listed for it.
1115-
<li>To assume the existence of multiple plugins, list them on separate lines after the <code>ASSUME</code> command, like how is done for the <code>IF</code> command.
1116-
</ul>
1117-
<code class="box ruleset">&gt;&gt; ASSUME Master.esm
1118-
Plugin1.esp
1119-
Plugin2.esp
1120-
</code>
1121-
<h4>Formatting</h4>
1122-
<p>Non-silent comment lines have a few formatting options:
1123-
<ul>
1124-
<li><code>__[bold text]__</code>
1125-
<li><code>~~[italic text]~~</code>
1126-
<li><code>**[bold italic text]**</code>
1127-
<li><code>[[http://example.com|Link to example.com]]</code>
1128-
</ul>
1129-
<h3 id="rulesets-example">Example</h3>
1130-
<p>The example ruleset below is a simple ruleset for Cobl.
1131-
<code class="box ruleset">&gt;&gt; HEADER This ruleset covers Cobl (Common Oblivion) and related mods.
1132-
1133-
&gt;&gt; ONLYONE
1134-
Cobl Races - Balanced.esp
1135-
bgBalancingEVCore.esp
1136-
1137-
&gt;&gt; IF Cobl Main.esm
1138-
&gt;&gt; CONFIG
1139-
o Cobl Glue.esp // Glues Cobl items into vanilla lists, cells
1140-
o Cobl Si.esp // Glues Cobl items into Shivering Isles cells.
1141-
o Cobl Tweaks.esp // Adds Cobl items to creatures and NPCs.
1142-
o Cobl Races.esp // Additional races, hairs, eyes.
1143-
o Cobl Races - Balanced.esp // Races and birthsigns given better balanced pros and cons.
1144-
o Salmo the Baker, Cobl.esp // Enhances Salmo the Baker in Skingrad.
1145-
o Cobl Filter Late.esp // Adds foods from various mods to the Dinner Plate. (Requires OBSE.)
1146-
&gt;&gt; SUGGEST
1147-
- Denock Arrows.esp // **Deactivate** and use Cobl Denock instead. (See Options menu.)
1148-
## HOMES
1149-
- AlchemistsCave.esp // Use [[http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&amp;id=3996|Coblized version]] instead.
1150-
- Jagnot-SI-Bliss Aquaduct House.esp // Use [[http://ljosa.proboards57.com/index.cgi?board=releases&amp;action=display&amp;thread=548|Coblized version]] instead.
1151-
- PrincessImperialCityApartment.esp // Use [[http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&amp;id=3997|Coblized version]] instead.
1152-
- PrisonersCampsite.esp // Use [[http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&amp;id=4106|Coblized version]] instead.
1153-
- SkyShip.esp // Use [[http://ljosa.proboards57.com/index.cgi?board=releases&amp;action=display&amp;thread=548|Coblized version]] instead.
1154-
&gt;&gt; WARN
1155-
## Required
1156-
e meshes\Cobl\StaticApp\apparatusalembics.nif // __Missing meshes [StaticApp].__ Try reinstalling full Cobl package (including all textures/meshes).
1157-
## Obsolete components
1158-
- Cobl Glue MW Ingred.esp // **Deactivate.** Obsolete. (Merged into Cobl Glue.esp.)
1159-
## Superceded mods.
1160-
- Beer! for Oblivion.esp [1.2.3:]-- **Deactivate.** Included in Cobl Main.esm.
1161-
- DaggerfallBooks.esp // **Deactivate.** Included in Cobl Main.esm.
1162-
- FirstEditionGuidetotheEmpire.esp // **Deactivate.** Included in Cobl Main.esm.
1163-
- Ingredient Storage Shelves.esp // **Deactivate.** Included in Cobl Glue.esp
1164-
- MorrowindBooks.esp // **Deactivate.** Included in Cobl Main.esm.
1165-
- Salmo the Baker v2.0.esp // **Deactivate** Use Salmo the Baker, Cobl instead.
1166-
- Tamrielic_Ingredients.esm // **Deactivate.** Included in Cobl Main.esm.
1167-
- Tamrielic_Ingredients.esp // **Deactivate.** Included in Cobl Main.esm.
1168-
1169-
&gt;&gt; ASSUME Cobl Main.esm
1170-
1171-
&gt;&gt; IF Cobl Races.esp
1172-
&gt;&gt; WARN
1173-
e meshes\characters\saram\femalehair\type0\01.nif // __Missing meshes [Saram].__ Be sure that you have installed [[https://www.nexusmods.com/oblivion/mods/21104|Cobl Cosmetics Res 01]].
1174-
e meshes\clothes\asxivilai\xivilaicollar.nif // __Missing meshes [xivilai].__ Be sure that you have installed [[https://www.nexusmods.com/oblivion/mods/21104|Cobl Cosmetics Res 01]].
1175-
x DLCShiveringIsles.esp // **Activate** Required (meshes and textures).
1176-
1177-
&gt;&gt; IF Cobl Races - Balanced.esp
1178-
&gt;&gt; WARN
1179-
x Cobl Races.esp // **Activate.** Required.
1180-
1181-
&gt;&gt; IF Cobl Si.esp
1182-
&gt;&gt; WARN
1183-
x DLCShiveringIsles.esp // **Activate.** Required.
1184-
1185-
## Patch Mods ----------------------------------------------------------------
1186-
&gt;&gt; IF FF_REAL_Thirst.esp
1187-
&gt;&gt; SUGGEST
1188-
x FF_REAL_Thirst, Cob.esp // Patch FF Real Thirst to work with Cobl water wells.
1189-
</code>
1190-
11911020
<!-- Scrolling content end -->
11921021
</div>
11931022

Mopy/bash/basher/frames.py

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,8 @@ def OnCloseWindow(self):
296296
super(DocBrowser, self).OnCloseWindow()
297297

298298
#------------------------------------------------------------------------------
299-
_BACK, _FORWARD, _MOD_LIST, _RULE_SETS, _NOTES, _CONFIG, _SUGGEST, \
300-
_CRC, _VERSION, _SCAN_DIRTY, _COPY_TEXT, _UPDATE = range(12)
299+
_BACK, _FORWARD, _MOD_LIST, _CRC, _VERSION, _SCAN_DIRTY, _COPY_TEXT, \
300+
_UPDATE = range(8)
301301

302302
def _get_mod_checker_setting(key, default=None):
303303
return bass.settings.get('bash.modChecker.show{}'.format(key), default)
@@ -343,10 +343,6 @@ def _f(key, make_checkbox, caption, setting_key=None,
343343
_f(_MOD_LIST, True, _(u'Mod List'), 'ModList', False)
344344
_f(_VERSION, True, _(u'Version Numbers'), 'Version', True)
345345
_f(_CRC, True, _(u'CRCs'), 'CRC', False)
346-
_f(_RULE_SETS, True, _(u'Rule Sets'), 'RuleSets', False)
347-
_f(_NOTES, True, _(u'Notes'), 'Notes', True)
348-
_f(_CONFIG, True, _(u'Configuration'), 'Config', True)
349-
_f(_SUGGEST, True, _(u'Suggestions'), 'Suggest', True)
350346
_f(_SCAN_DIRTY, True, (_(u'Scan for Dirty Edits')
351347
if bass.settings['bash.CBashEnabled']
352348
else _(u"Scan for UDRs")))
@@ -360,10 +356,6 @@ def _f(key, make_checkbox, caption, setting_key=None,
360356
self._controls[_MOD_LIST], self._controls[_CRC],
361357
self._controls[_VERSION]
362358
]),
363-
HLayout(spacing=4, items=[
364-
self._controls[_RULE_SETS], self._controls[_NOTES],
365-
self._controls[_CONFIG], self._controls[_SUGGEST]
366-
]),
367359
HLayout(spacing=4, items=[
368360
self._controls[_SCAN_DIRTY], Stretch(), self._controls[_UPDATE],
369361
self._controls[_COPY_TEXT], back_btn, forward_btn, reload_btn
@@ -382,17 +374,15 @@ def OnCopyText(self):
382374

383375
def CheckMods(self, _new_value=None):
384376
"""Do mod check."""
385-
for ctrl_id in [_MOD_LIST, _RULE_SETS]:
386-
_set_mod_checker_setting(self._setting_names[ctrl_id],
387-
self._controls[ctrl_id].is_checked)
388377
# Enable or disable the children of ModList and RuleSets buttons
389-
for parent, ctrl_ids in [(_MOD_LIST, (_CRC, _VERSION)),
390-
(_RULE_SETS, (_NOTES, _CONFIG, _SUGGEST))]:
391-
key = self._setting_names[parent]
392-
for ctrl_id in ctrl_ids:
393-
self._controls[ctrl_id].enabled = _get_mod_checker_setting(key)
378+
_set_mod_checker_setting(self._setting_names[_MOD_LIST],
379+
self._controls[_MOD_LIST].is_checked)
380+
# Enable or disable the children of the ModList buttons
381+
setting_val = _get_mod_checker_setting(self._setting_names[_MOD_LIST])
382+
for ctrl_id in (_CRC, _VERSION):
383+
self._controls[ctrl_id].enabled = setting_val
394384
# Set settings from all the buttons' values
395-
for ctrl_id in [_NOTES, _CONFIG, _SUGGEST, _CRC, _VERSION]:
385+
for ctrl_id in (_CRC, _VERSION):
396386
_set_mod_checker_setting(self._setting_names[ctrl_id],
397387
self._controls[ctrl_id].is_checked)
398388
#--Cache info from modinfos to support auto-update.
@@ -401,9 +391,8 @@ def CheckMods(self, _new_value=None):
401391
self.__imported = bosh.modInfos.imported.copy()
402392
#--Do it
403393
self.check_mods_text = bosh.configHelpers.checkMods(
404-
*[_get_mod_checker_setting(self._setting_names[key])
405-
for key in [_MOD_LIST, _RULE_SETS, _NOTES, _CONFIG, _SUGGEST,
406-
_CRC, _VERSION]],
394+
*[_get_mod_checker_setting(self._setting_names[setting_key])
395+
for setting_key in (_MOD_LIST, _CRC, _VERSION)],
407396
mod_checker=(None, self)[self._controls[_SCAN_DIRTY].is_checked])
408397
if web_viewer_available():
409398
log_path = bass.dirs['saveBase'].join(u'ModChecker.html')

0 commit comments

Comments
 (0)