Conflict Solver Modes - bcssov/IronyModManager GitHub Wiki

The Conflict Solver offers multiple modes that determine how Irony detects, displays, and processes mod conflicts.
Each mode changes how strictly conflicts are interpreted and whether Irony is allowed to generate patch output.

Modes fall into three families:

  • Default
  • Advanced
  • Analyze Only

Each mode also has a No Localization variant.


1. Overview

When starting the Conflict Solver, Irony presents a mode selection dialog.
This determines:

  • How conflicts are interpreted
  • Whether dependency information is respected
  • Whether patch output is generated
  • Whether localization files are included
  • How much detail is shown

Irony will prompt for mode selection every time you run the solver unless conflict history and state allow an automatic continuation.


2. Mode Selector Dialog

The dialog provides:

  • A mode selector (Default / Advanced / Analyze Only)
  • A toggle to exclude localisation folders (“Without Localization”)
  • A short description of each mode

After choosing a mode, Irony loads and analyzes all affected definitions.


3. Default Mode

Default Mode is designed for normal use and hides noise from expected overriding behavior.

Behavior:

  • Respects .mod descriptor dependencies
  • If Mod A supersedes Mod B via dependencies, Irony suppresses conflicts coming from B
  • Shows only meaningful conflicts
  • Reduces noise for typical playset management
  • Produces patch output when conflicts are resolved

Use case:

Recommended for all non-modders and for regular modlist maintenance.


4. Default (No Localization)

Same behavior as Default Mode, but excludes localization files entirely.

Behavior:

  • Skips all localisation/ folders
  • Useful when localization overrides are irrelevant or intentionally noisy

5. Advanced Mode

Advanced Mode bypasses dependency pruning entirely.

Behavior:

  • Ignores dependencies
  • Shows all conflicts, including:
    • Overrides normally hidden due to “A replaces B” relationships
    • Hidden conflicts masked by load order
  • Provides maximum detail
  • Generates patch output when conflicts are resolved
  • Useful for mod developers

Use case:

Full visibility for debugging, creating compatibility patches, or validating large overhauls.


6. Advanced (No Localization)

Same as Advanced Mode, but excludes all localization files.

Behavior:

  • Full conflict detail
  • No localisation noise
  • Faster analysis in localization-heavy modlists

7. Analyze Only

Analyze Only Mode loads conflicts but never produces patch output.

Behavior:

  • Fully read-only
  • All conflict information is visible
  • Same UI as full modes (except editing is disabled)
  • Useful for debugging or checking overrides without altering anything

Use case:

  • Debugging large modsets
  • Verifying mod interactions without creating a patch mod
  • Cross-checking mod compatibility before making changes

8. Analyze Only (No Localization)

Same as Analyze Only, but excludes localization folders.

Behavior:

  • Read-only
  • No localisation noise
  • Faster analysis for content-focused debugging

9. When Irony Prompts Again

Irony tracks the internal state of each conflict.
Even after selecting a mode, Irony will ask again under these conditions:

  • Conflict state changed
  • New conflicts were introduced
  • Automatic reset happened
  • The collection changed (mod added/removed)
  • A mod updated a file (hash mismatch)

Irony does not automatically invalidate or delete patch output.
Instead:

✔ Irony marks the patch as “dirty”

  • An updated mod or a collection change triggers a state mismatch
  • The affected definition receives a yellow or red border depending on previous state
  • Irony displays a notification such as “Please rerun Conflict Solver”

Patch output remains intact until the user resolves again or manually resets.

More info:
Reset Conflicts


10. Background Change Detection

Irony automatically scans mod structure in the background:

  • File hashes
  • Folder structure
  • Definition hashes
  • Contributor presence

If anything changes, Irony flags conflicts that may need attention.

Patch files are not removed automatically unless the conflict becomes irrelevant (no contributors), in which case Irony cleans old output silently.


11. When to Use Each Mode

Use Default Mode

  • Normal gameplay
  • Regular modlists
  • Minimal noise
  • Fastest workflow

Use Advanced Mode

  • Debugging tricky mods
  • Creating compatibility patches
  • Investigating override chains

Use Analyze Only

  • Verifying mod interactions
  • Multiplayer consistency checks
  • Validating modset without touching patch output

Use “No Localization”

  • When localization overrides generate unnecessary noise
  • When working only with gameplay files

12. Summary

Conflict Solver Modes define how Irony interprets and displays conflicts:

  • Default respects dependencies
  • Advanced shows everything
  • Analyze Only is read-only
  • No Localization” variants exclude localization folders
  • Irony warns about changes with visual indicators and prompts, but never removes patch data unless it becomes irrelevant

Choosing the right mode ensures the best balance between precision, clarity, and performance.