Rulesets
A ruleset is the container everything else in the Magic System module lives inside. It’s the named collection of stats, formulas, resources, abilities, modifiers, and templates that defines how your system actually works. A project can have multiple rulesets but only one is active at a time, and the active ruleset is the one that drives stat blocks, RulesLawyer checks, and probability analysis across your whole project. Most authors have one ruleset and forget the multi-ruleset feature exists. That’s fine. The feature is there for the cases where it matters — a main universe with a side project that uses stripped-down rules, or a TTRPG designer iterating between versions of a system without losing the previous one.
What a ruleset contains
Section titled “What a ruleset contains”A single ruleset holds seven kinds of thing, each tracked in its own tab in the ruleset editor:
| Piece | What it is |
|---|---|
| Stats | The numeric attributes your system tracks — Strength, Mana, Cultivation Tier, Sanity |
| Formulas | Derived values computed from stats — D&D’s ability modifier, a health pool, a damage roll |
| Resources | Trackable pools with current and max values — HP, mana, stamina, cyberware load |
| Abilities | Active things a character can do — spells, powers, techniques, attacks |
| Modifiers | Passive bonuses, feats, and traits that alter stats or add conditional effects |
| Templates | Assignments of which stats, formulas, and resources apply to each lore entry type |
| Dice outcomes | Named categorical bands for dice results — “Failure,” “Mixed,” “Success,” “Critical” |
Plus two smaller pieces: categories (color-coded groups for organizing stats and formulas) and DC tiers (named difficulty thresholds like “Easy = 10, Hard = 20”).
Each tab is a full editor. Stats get their own editing panel with names, abbreviations, value types, min/max ranges, and descriptions. Formulas get a formula expression builder with variable references and dice notation. Abilities get a full properties editor covering cost, duration, effects, and prerequisites. The editing experience is tabbed and auto-saves — you don’t hit a “Save Ruleset” button, you just edit and the changes persist.
Multiple rulesets per project
Section titled “Multiple rulesets per project”Every project can have any number of rulesets. Only one is active at a time, and the active one is the one that matters for everything downstream — the stat blocks you see on lore entries, the checks RulesLawyer runs, the charts the probability analyzer shows.
Reasons to have more than one ruleset in a project:
- Main universe and a side project. You’re writing a trilogy in a detailed hard magic system, and you also have a short story set in the same world where you’re using a stripped-down version of the rules. Two rulesets, switch between them per session.
- Iterating a TTRPG system. You’re a game designer, you have a “v1” ruleset that’s been playtested, and you’re building a “v2” ruleset with changes. Keep both around until v2 is ready. Switch the active ruleset to whichever you’re currently working on.
- Comparison. You want to see what your system looks like alongside a preset (D&D 5e, Fate Core) without losing your own work. Import the preset as a second ruleset and switch between them.
If you only ever have one ruleset, that’s the common case and there’s nothing wrong with it. The multi-ruleset feature is mostly invisible unless you reach for it.
Presets
Section titled “Presets”Three built-in presets ship with Ishvana and can be imported into any project:
- D&D 5e — Six ability scores, proficiency bonus, armor class, hit points, saving throws, and the standard D&D template assignments.
- Pathfinder 2e — Ability scores, proficiency ranks, AC, HP, and the Pathfinder skill modifier structure.
- Fate Core — Approaches (Careful, Clever, Flashy, Forceful, Quick, Sneaky), stress tracks, consequences, and the Fate resolution mechanic.
Importing a preset creates a new ruleset pre-populated with all the stats, formulas, resources, templates, categories, and outcome mappings that define that system. You don’t get locked into the preset — once imported, it’s just a ruleset like any other, and you can edit every piece of it. Use it as a starting point and customize from there, or use it as a reference while you build your own ruleset from scratch.
Presets are especially useful for fiction authors writing in an established system. If your fantasy series is explicitly set in a D&D-compatible world, importing the D&D 5e preset gives you every core rule out of the box and lets RulesLawyer check your prose against it immediately. Same for Pathfinder, same for Fate.
The active ruleset concept
Section titled “The active ruleset concept”At any time, one ruleset is marked “active” for the project. That ruleset is:
- The one whose templates assign stat blocks to new lore entries.
- The one whose stats and formulas get evaluated when you compute a stat block’s effective values.
- The one RulesLawyer checks against when you run a consistency scan on prose.
- The one the probability analyzer reads when you set up a dice pool analysis.
- The one the GameMaster agent consults when you ask it a mechanics question.
Switching the active ruleset doesn’t delete the others. It just changes which one is “the system” for downstream operations. Your lore entries keep their stat blocks from whichever ruleset was active when they were created — switching rulesets doesn’t retroactively rebuild stat blocks under the new rules. That means if you switch from Ruleset A to Ruleset B, characters created under A still have A-shaped stat blocks, even though B is now active.
This is deliberate. An automatic rebuild would potentially destroy character data. If you need to migrate characters from one ruleset to another, the right approach is a manual pass — open each character, rebuild the stat block under the new ruleset, and move on.
Validation
Section titled “Validation”Every ruleset runs through a validation pass whenever you save it. The validator checks:
- Formula syntax. Every formula expression parses correctly. Unbalanced parentheses, unknown functions, and typos get flagged.
- Variable references. Every variable a formula references (a stat name, a resource name) actually exists in the ruleset. If you rename a stat and a formula still references the old name, the validator catches it.
- Template references. Every stat key and formula key assigned to a template actually exists.
- Circular dependencies. If formula A depends on formula B depends on formula A, the validator refuses to save the ruleset until the cycle is broken.
Errors appear inline in whichever editor tab you’re in. You can still save a ruleset with warnings, but errors block the save until they’re fixed. This is part of why the editor is auto-save — you never have an unsaved-and-broken ruleset sitting in memory.