Game rules
Rulesets
The same heroes, items and enemies can fight under very different rules. A Ruleset asset holds them, plus which stats and blocks your game uses.
Hub › SettingsCreate one with Create › AutoBattleKit › Ruleset, or let the Hub make one (Welcome > Project setup). Make it active in Hub › Settings; every Hub page, simulation and generator then uses it.
The rules
| Group | Rule | What it changes |
|---|---|---|
| Turns | strikesPerTurn, maxExtraStrikes, maxExtraTurns | How many times a fighter strikes per turn, and caps on bonus strikes and turns. |
| Turns | tieBreaker, recheckSpeedEachRound | Who goes first on equal speed; whether speed is re-read every round. |
| Turns | turnSteps | What happens inside a turn, in order. Default: Countdown, Turn Start, Strikes, Turn End. |
| Teams | turnMode, strikeTargeting, maxUnitsPerSide | See Teams & targeting. |
| Triggers | listenerOrder | SubjectFirst: the fighter the event happened to resolves first. PlayerFirst: the player side always does. |
| Triggers | statusTiming | Whether statuses resolve after items (default) or before them. |
| Triggers | woundedPercent, exposedOncePerBattle, onHitNeedsHealthLoss | When When wounded, When your armor breaks and On hit fire. |
| Death | deathTiming | Immediate: a fighter dies the moment it hits 0. AfterReactions: deaths are checked after every queued reaction. |
| Death | simultaneousDeath | Who wins if both sides fall together: Draw, PlayerWins or EnemyWins. |
| Armor | armorBlocks... | Which damage kinds armor absorbs. |
| Length | suddenDeathRound, suddenDeathStep, maxRounds, maxEventsPerBattle | When battles are forced to end. |
One matchup, three winners
A hero whose strike is lethal hits an enemy with 99 thorns. Who wins depends only on the rules:
The 06 Rule Order Lab demo plays all three side by side, and they're automated tests (EngineTests.Thorns_*).

Keep the Inspector simple
Hidden Block Groups lists menu groups your game doesn't use (for example Event, Team, Status). With the ruleset active, those blocks move into a Hidden by