Ruleset Entry Mechanics

Use this page to look up what a catalog entry does in numbers: the mechanics block of an entry, read by checks, rests and fights. It is a reference for ruleset authors. Before you start, read Writing Game Mode Rulesets.

An entry may carry an optional mechanics block that says what it does in numbers: kind (attack, heal, buff, debuff, utility, rider), range, area, targets, targetCount, friendlyFire, amount (dice such as 2d6, or a flat number), amountAdd (a value read off the user's sheet and added to the amount, such as { "field": "level_fighter" } for a Second Wind of 1d10 plus the fighter's level; it needs an amount, is read only in the ruleset's own fights (the Engine's Classic and Tactical fights use the amount as written), and is Capability API 1.83), damageType, attackRoll, autoHit, save (one of your sheet's saves, and what a success does), applies (conditions it puts on what it touches), temporary (temporary points on the health pool), scales (an amount that grows with the sheet), cost (which pool using it spends), perCostStep, targetsPerCostStep, budget (which part of the action economy it spends), concentration, reaction, plus, free, gives, standard, rider and check.

An attack that targets enemies can leave something to strike on later turns with summons (Capability API 1.122). For Spiritual Weapon, put "summons": { "budget": "bonus", "rounds": 10, "move": 20, "reach": 5 } on its attack entry. The cast makes the first attack and leaves the weapon beside its first target once reactions finish; a cancelled cast leaves nothing. Later strikes spend only the declared economy budget, keep the cast's payment level for damage scaling, and open the same reaction windows. Distances use the catalog's unit; omitted movement is zero and omitted reach is one cell. On a board the weapon can strike an enemy within movement plus reach, ignoring walls, and moves beside it. Without a board any standing enemy is in reach. Rounds count down at the end of the holder's turns, excluding the casting turn. The summon ends at zero, on the holder's defeat, or when its entry's concentration ends. Casting the same entry again replaces its summon.

An entry with an area can stay with zone (Capability API 1.172): { "rounds", "anchor", "triggers", "atCast" }. It stands for rounds (1 to 1000) of its caster's turns, counted as a summon's are, and ends sooner when the concentration that holds it ends or its caster is defeated. anchor: "point" (the default) keeps the cells it was cast on; anchor: "caster" is a burst around its caster that goes where they go, so its range is 0. triggers names when it does the entry's own effect again (amount, plus, save, applies) to one creature: enter (they move into it, or a zone carried by its caster reaches them), turn-start or turn-end (they start or end their turn in it). A creature is caught once a turn whatever the trigger, and whoever the cast itself caught counts as caught that turn. Whom it catches follows the entry: friendlyFire: false leaves the caster's side out, a heal or an ally entry keeps to it, and a zone carried by its caster never catches them. atCast: false does nothing as it appears. Casting the entry again replaces its zone. The board tints its cells, the fight lists it with the turns it has left, and the log says each catch. Off a board it holds whom it was cast on, and turn-start and turn-end catch them.

"mechanics": { "kind": "attack", "area": { "shape": "burst", "size": 20 }, "range": 120,
  "amount": { "dice": "5d8" }, "damageType": "poison", "save": { "save": "con_save", "onSuccess": "half" },
  "concentration": true, "zone": { "rounds": 100, "triggers": ["enter", "turn-start"] } }

That is Cloudkill. Spirit Guardians is "area": { "shape": "burst", "size": 15 }, "range": 0, "friendlyFire": false with "zone": { "rounds": 100, "anchor": "caster", "triggers": ["enter", "turn-start"], "atCast": false }; Moonbeam is a 5-foot burst with "triggers": ["enter", "turn-start"].

A zone held at a point can move and change its ground (Capability API 1.173). move: { "budget", "distance" } lets its caster move it on their turn: the fight offers "Move <zone>" for that budget, picked on the board like a walk, to any cell within distance of its centre. drift: { "distance" } moves it that far straight away from its caster as each of their turns starts, stopping at the board's edge. Either way, whoever it now covers and did not before is caught as enter says. Only a burst held at a point moves or drifts. terrain: { "difficult": true } makes every cell of it cost double to move into for whoever it catches (ground that is already hard going is not doubled again), and terrain: { "perDistance": { "every", "amount", "damageType" } } deals amount (dice and flat, as an entry's own) to whoever it catches for every every they move inside it, with no save, counted across walks. The log says each move, drift and hurt.

{
  "id": "moonbeam",
  "name": "Moonbeam",
  "mechanics": {
    "kind": "attack",
    "range": 120,
    "area": { "shape": "burst", "size": 5 },
    "amount": { "dice": "2d10" },
    "damageType": "radiant",
    "save": { "save": "con_save", "onSuccess": "half" },
    "concentration": true,
    "zone": { "rounds": 10, "triggers": ["enter", "turn-start"], "move": { "budget": "action", "distance": 60 } }
  }
}

Cloudkill adds "drift": { "distance": 10 }. Spike Growth is a 20-foot burst with no amount of its own, "triggers": [] (its ground is all it does), "atCast": false and "terrain": { "difficult": true, "perDistance": { "every": 5, "amount": { "dice": "2d4" }, "damageType": "piercing" } }.

A zone can do more to whoever it catches (Capability API 1.174). breaksConcentration: true makes a creature it catches while concentrating roll the ruleset's concentration save against the entry's own save difficulty, before the entry's effect, and lose its concentration on a failure; the entry needs a save. damageCap ends the zone once it has dealt that much damage in all after it appears, counting its catches and its ground. Sleet Storm is a 40-foot burst with "save": { "save": "dex" }, "applies": [{ "condition": "prone", "duration": "instant" }] and "zone": { "rounds": 10, "triggers": ["enter", "turn-start"], "breaksConcentration": true, "terrain": { "difficult": true } }. Guardian of Faith is a burst with "friendlyFire": false, "amount": { "flat": 20 } and "zone": { "rounds": 1000, "triggers": ["enter", "turn-start"], "atCast": false, "damageCap": 60 }.

What a condition applied by an entry is escaped against can be the entry's own save difficulty (1.174): "escapeDc": "save" on the applies entry, beside a contest whose from.holding is that condition. Web and Black Tentacles restrain with { "condition": "restrained", "duration": "until-save", "escapeDc": "save" }, and the restrained creature's escape contest is rolled against the caster's spell save DC. Whatever applied it with no save difficulty leaves it escaped as the contest says, against its holder.

An item's use may also carry concentration and zone (1.174), as a catalog entry does, so a spell scroll of Cloudkill or Moonbeam keeps its lasting area and is held by its reader's concentration.

A moved zone may ram, and its ground may cost more (Capability API 1.175). move: { ..., "ram": true } sends it a cell at a time straight for where it was moved to; on the first cell where it reaches somebody it did not cover before, it stops, catches them as if rammed (whatever its triggers say), and cannot be moved again that turn. Creatures who walk into it are caught only as its triggers say. Flaming Sphere is a 5-foot burst with "triggers": ["turn-end"] and "move": { "budget": "bonus", "distance": 30, "ram": true }. terrain.costTimes (2 to 10) makes every step into it cost that many plain steps, and ground already hard going costs no more than that: Plant Growth is "terrain": { "costTimes": 4 }. It replaces difficult, which is costTimes: 2. terrain.halvesSpeed: true makes every step inside cost double again, on top of any hard going: Spirit Guardians is "terrain": { "halvesSpeed": true }.

Holds a spell puts on can be broken only as the spell says (also 1.175). A breaking-free contest with "from": { "holding": "restrained", "escapable": true } is offered only against a hold that names an escapeDc, so the same contest breaks a web and never petrification. applies[].escapeChecks names the contest checks that may break that hold, in place of the contest's own attacker checks: Black Tentacles restrains with "escapeDc": "save", "escapeChecks": ["might", "agility"], and Web with "escapeChecks": ["might"]. zone.whileHeld: { "condition", "amount", "damageType" } deals its amount, with no save and in place of the zone's own effect, to whoever starts a turn in it already held by that condition from its caster: Black Tentacles' "whileHeld": { "condition": "restrained", "amount": { "dice": "3d6" }, "damageType": "bludgeoning" }.

An entry or an item's use may cure (Capability API 1.176). ends: { "conditions": [...], "count"? } takes those conditions off its target in the order named, at most count of them: Lesser Restoration is "ends": { "conditions": ["blinded", "deafened", "paralyzed", "poisoned"], "count": 1 }. stabilizes: true steadies a dying target, who rolls no more dying saves, and needs a combat block with a dying rule: Spare the Dying. revives: { "withinRounds", "health" } is aimed only at somebody who died no more than that many rounds ago and brings them back at that amount: Revivify is "revives": { "withinRounds": 10, "health": { "flat": 1 } }. An entry that only ends conditions or steadies is offered only against somebody it would help; one of the kind utility with nothing else to do is offered as long as it cures.

Areas may be boxes, and lasting ones walls (Capability API 1.177). area.shape: "box" is a square of size a side whose near corner sits on the cell aimed at, reaching away from its maker; along an axis its maker is level with, it is centred on that cell instead. Without a range it sits against its maker. Web is "area": { "shape": "box", "size": 20 } with a range of 60. area.shape: "wall" only ever stays, so it needs a zone: it is size long and width thick (one cell without it), run through the aimed cell across the line from its maker, or toward the choice's toward cell from there; "ring": <diameter> lets its caster lay it instead as a ring that wide around the aimed cell, when the choice says "ring": true. A wall needs no trigger: Wind Wall only does its effect as it appears. A wall is never moved, drifts or follows its maker. zone.blocks: ["move", "sight"] closes its cells to walking, to seeing, or both while it stands, and whoever stands where it goes up is put on the nearest open cell (on its chosen side when one is as near): Wall of Stone blocks both, Wall of Force movement, Wall of Fire sight. zone.side: { "distance", "triggers" } makes the cells within distance of one side catch as its own triggers say, beside the wall's own cells; the choice's side says which, near its maker (inside a ring) or far (outside), far when left out. Wall of Fire is "area": { "shape": "wall", "size": 60, "ring": 20 }, "zone": { "rounds": 10, "triggers": ["enter", "turn-end"], "blocks": ["sight"], "side": { "distance": 10, "triggers": ["turn-end"] } }.

Seeing matters (Capability API 1.178). combat.senses lists the senses that see where eyes cannot, each { "id", "label", "sheet"?, "blind"? }: a character's range is read off its sheet by sheet (nothing at zero), a creature carries its own as "senses": { "darkvision": 60 } in the ruleset's distance, and a blind sense (blindsight, tremorsense) works without eyes. The block then needs combat.distance. A zone with obscures hides everything in it, and anything seen through it, from whoever has none of the senses its pierced lists within range: Fog Cloud is "obscures": {}, Darkness "obscures": { "pierced": ["blindsight", "truesight"] }. Such a zone needs no trigger, and a utility entry that does nothing but leave an area standing (Fog Cloud, Darkness, a wall) is on the menu, set down wherever its caster chooses. A combat.conditions entry with unseen hides its holder the same way: invisible is "unseen": { "pierced": ["blindsight", "truesight"] }. combat.sight says what this does: unseenAttacks: true gives an attack advantage when its target cannot see the attacker and disadvantage when the attacker cannot see its target, and eyes names the sense (as a condition's lacks names it) that is sight, so a blinded creature sees only by a blind sense. An entry or creature action with seen: true may only pick targets its maker can see, as "a creature you can see within range" says. A burst or box may be set down several times at once with area.copies (2 to 10), each copy touching another, and the player places each one: Fire Storm is "area": { "shape": "box", "size": 10, "copies": 10 }. A zone set down several times stays where it is cast.

Zones can work on whoever stands in them (Capability API 1.179). combat.components names what using something may need, each { "id", "label" } (5e's verbal, somatic, material), and an entry or a creature's action lists its own in components. A zone's inside puts conditions on whoever is in it and keeps the damage types in immune off them while they stay; its forbids: { "components": [...] } stops anything needing those from being used inside, as a condition's forbids does for its holder (gagged). Silence is "inside": { "conditions": ["deafened"], "immune": ["thunder"] }, "forbids": { "components": ["verbal"] }. A zone's wards: { "catalogs": [...], "maxLevel": N } keeps off whoever is inside anything off those catalogs used from outside it at level N or lower, judged at the level it is paid at: Globe of Invulnerability is "wards": { "catalogs": ["spells"], "maxLevel": 5 }. A condition that takes budgets away (budgets with a negative flat), put on during its holder's own turn, takes them from that turn too, so Stinking Cloud's failed save as the turn begins costs that turn's action.

Senses and seeing go further (Capability API 1.180). A condition an entry applies may end when its holder acts: "endsWhenHolder": { "attacks": true, "casts": ["spells"] } takes it off once they have made an attack, or used an entry of a catalog it names, and an item's use that says "casts": "spells" (a scroll, a wand) counts as casting from that catalog. The attack or spell that ended it still had it, so Invisibility gives its one attack advantage and is gone afterwards. What a standing zone does by itself is not its caster acting. A condition in combat.conditions, or an item's worn or carried effect, may give senses with a range in the ruleset's distance, "senses": { "darkvision": 60 }; the longer of that and the holder's own range counts while it holds, so the Darkvision spell, True Seeing ({ "truesight": 120 }) and goggles of night work. A condition with "cancelsUnseen": true lets everybody see its holder whatever condition hides them, as Faerie Fire outlines the invisible; obscuring zones and walls still hide them.

Wards, saves, monster spellcasting and scrolls go further (Capability API 1.181). A zone's wards compares the level a spell was paid at unless it says "by": "base", which compares the spell's own level however it was paid, as Globe of Invulnerability does. "maxLevelPerCostStep": 1 keeps out one level more for each step the ward's own cast was paid above its base. An entry's or a creature action's save may say what else it counts as being against, "against": { "damage": ["poison"] }, so a save modifier against poison applies to it, and who succeeds without rolling: "succeeds": { "immune": ["poison"], "conditionImmune": ["poisoned"], "is": { "tags": ["nonbreathing"] } } (any one is enough), as Stinking Cloud needs. A creature's spellcasting may say what its spells need in place of each entry's own components, for the whole trait or per spell, with [] for innate spellcasting that needs none, so Silence does not stop it. An item's use may be "kind": "utility" when all it does is leave an area standing (a scroll of Fog Cloud, Darkness, Silence or Globe of Invulnerability); it needs an area and a zone.

Pushes, winds and goggles (Capability API 1.182). An entry's "push": 15 pushes whoever it lands on and does not save against 15 of the catalog's distance straight away from its maker, stopping at anything solid or anybody standing; a zone pushes whoever it catches the same way. A zone held by its caster ("anchor": "caster") may now be a line or cone as well as a burst: it points the way it was cast and goes where its caster goes, and "turn": { "budget": "bonus" } lets them spend that budget on their turn to face it another way, catching whoever it now covers as if they had moved into it (5e's Gust of Wind). A zone's terrain with "towardCaster": true makes its hard going count only for a step that brings the mover nearer its caster. A sense a condition or an item gives may be { "add": 60 } instead of a range, which adds to the holder's own range of that sense, or gives 60 to someone who has none (5e's goggles of night).

Zones that go off later or burn away (Capability API 1.183). A zone with "detonates" does nothing while it stands and nothing as it is cast: when it ends, because its concentration ended, its rounds ran out or it was cast again, it does the entry's own effect once to everybody in it. "grows": { "dice": "1d6" } adds that much to its amount at the end of each of its caster's turns, the turn it was cast on too, so it rolls the same dice as the entry's own amount; "touched": true makes whoever moves onto its middle roll the entry's save, and sets it off when they fail (5e's Delayed Blast Fireball). It stays where it was cast. A zone with "burns": { "by": ["fire"], "amount": { "dice": "2d4" }, "damageType": "fire" } is set alight by damage of one of those types landing on any of its cells or on anybody in it; it burns away when its caster's turn comes round again, ending the spell, and deals its amount with no save to anybody else who starts a turn in it meanwhile (5e's Web).

Creatures push too (Capability API 1.184). A creature's action takes "push": 60 in the ruleset's own distance, as a catalog entry does: whoever it lands on is pushed that far straight away from the creature, and with a save, only when they fail it, so "onSuccess": "none" keeps the damage and spares only the push and what applies puts on (a dragon turtle's Tail). An item's use may give a line its width, as a scroll of Gust of Wind's 60 by 10 feet.

What a creature is counts for more (Capability API 1.185). A save may say "modes": [{ "is": { "types": ["undead"] }, "mode": "disadvantage" }], so a target that is that rolls it twice and keeps the worse (Sunbeam); an entry's "maxAgainst": { "types": ["plant"] } deals its damage at its most to a target that is that (Blight). targetTypes may also say "abilityAtMost": { "int": 3 }, for a target whose score is at most that (a creature written with no score is not kept out), and "notImmuneTo": ["charmed"] (Sleep). A condition's modifier may roll attacks twice: { "to": "attacks", "mode": "disadvantage", "atSource": true } is the holder's own attacks against whoever put it on them (Chill Touch), and { "to": "attacks-taken", "mode": "disadvantage", "from": { "types": ["fiend", "undead"] } } is attacks made against the holder by attackers that are that (Protection from Evil and Good). A change to saves may be "against": { "from": { "types": ["dragon"] } }, which matches any save against something a creature of that kind did (Dragon Scale Mail).

A creature's actions may recharge together (Capability API 1.186): give each "recharge" the same "group" and the same dice, and using either spends both, while one roll at the start of the creature's turn brings both back (a metallic dragon's two breath weapons). A blow may "charge": { "atLeast": 10, "plus": [{ "dice": "2d8", "type": "piercing" }], "save": { "save": "str_save", "difficulty": 14 }, "push": 10, "applies": [{ "condition": "prone", "duration": "instant" }] } adds its clauses when the creature's walk this turn ended with a run of at least atLeast straight at the one it hits, each step a square closer to them; then the target makes the save, and on a failure (or always, with no save) is pushed and takes the conditions (a minotaur's Charge). A charge rides a blow at one target and is only measured on a board.

An item's attack can say more about what it hits (Capability API 1.187). "against": [{ "is": { "types": ["construct"] }, "toHit": 2 }] adds to hit against a target that is that (a mace of smiting). A plus clause may say "not": { "types": ["construct", "undead"] } to skip targets that are that, "blow": "ranged" to count only on a thrown or shot blow (a dwarven thrower) or "melee" only on one in reach, and "tempHp": true to give the wielder temporary hit points equal to what it dealt (a sword of life stealing). An onHit condition may name "targetIs" (a giant slayer knocking a giant prone) and "oncePerTurn": true (a sword of wounding). "slay": [{ "when": "critical", "not": { "types": ["construct", "undead"] }, "healthAtMost": 99, "save": { "save": "con_save", "difficulty": 15 }, "charges": 1 }] kills a target the hit left at healthAtMost or less outright, on a failed save where it has one, spending the item's charges when it does (a nine lives stealer); "immuneTo": ["slashing"] spares a target immune to that (a vorpal sword). Health is read after the blow's damage.

A sheet's live.conditions, a rest's clear.conditions and combat.conditions hold up to 640 entries (Capability API 1.552; 320 from 1.269, 160 from 1.188, 80 before). A modifier to: "attacks" may name "ability": "str" so it changes only attacks made with that ability (a gold dragon's Weakening Breath), and a modifier to: "checks" may name "abilities": ["str"] so it changes only ability checks made with one of them, contested checks and skill checks of that ability included (a barbarian's Rage). A creature's stat-block actions name no ability, so an ability-narrowed attacks modifier never reaches them.

A condition in combat.conditions can hurt its holder (Capability API 1.189): "harms": { "at": "turn-start", "dice": "1d4", "type": "necrotic" } deals that as each of their turns starts (or "turn-end"), from whoever put it on, before any save that ends it. "stacks": 10 lets it be put on again while it holds, up to that many times, and its harm is dealt once for each (a sword of wounding); ending it ends them all. "onePerSource": true keeps it on one holder per source: put on somebody else, it leaves whoever had it from the same source (an oathbow's sworn enemy). An item attack's against entry may name "marked": "sworn" instead of or beside is, matching a target that carries that condition from the wielder, and besides toHit may say "mode": "advantage", "ignoresCover": true (cover short of total counts for nothing) and "ignoresLongRange": true; a plus clause may say "marked": "sworn" too (the oathbow's 3d6 piercing). A creature's stat-block action may name "ability": "str", the ability its attack is made with, so changes to attacks or damage narrowed to an ability reach it.

An item attack's modes entry can be a different way of using the weapon altogether (Capability API 1.190): "range": { "normal": 120 } is how far it reaches in that mode, in the ruleset's own distance; "plus" adds clauses to a hit, as the attack's own do; "line": { "dice": "4d6", "type": "lightning", "save": { "save": "dex_save", "difficulty": 13, "onSuccess": "half" } } is a bolt everybody standing between the wielder and the target (neither of them) saves against before the attack is rolled; and "charges": 1 spends that many of the item's own charges, so the mode is offered only while it has them (a javelin of lightning: charges.max 1 and stack 1 on the item). A line needs a board to run across.

A combat condition with the effect "cannot-heal" keeps every heal off its holder while it lasts, and the log says so (Capability API 1.191): 5e's Chill Touch. "conditionImmunitiesFrom": [{ "conditions": ["charmed", "frightened"], "from": { "types": ["fiend", "undead"] } }] on a combat condition keeps those conditions off only when a creature that is from puts them on; one already on stays (Protection from Evil and Good). A spell's targetTypes.abilityAtLeast is the floor abilityAtMost is the ceiling of: { "int": 5 } passes over a creature of Intelligence 4 or less (Hideous Laughter), and a creature written with no score for it is not kept out. A saves modifier's against.actions names actions by id, name or shared recharge group, case-insensitively, and narrows everything else against says: { "from": { "types": ["dragon"] }, "actions": ["frightful_presence", "breath_weapons"] } is a dragon's breath or Frightful Presence and never its Wing Attack, and the repeated save to end a condition one of them put on counts too.

An item attack can carry more riders (Capability API 1.192). "ignoresResistance": true lets its damage through the target's resistance to the attack's own damage type, resistance to everything included, while a plus clause of another type is still halved (a vorpal sword's slashing); immunity still holds. A slay entry's "saved" lists conditions, in the same shape as applies, that a target which makes the slay's save takes instead: [{ "condition": "frightened", "duration": { "rounds": 1, "of": "source" } }] is a mace of disruption's fiend frightened of the wielder until the end of the wielder's next turn. "othersWhileMarked": { "condition": "sworn", "mode": "disadvantage" } makes every other weapon attack the wielder makes roll with that mode while a creature they put sworn on still stands, or only the ranged ones with "ranged": true (an oathbow). And in a fight without a board, an area action (a creature's or a spell's) may be pointed at people on either side, never its maker, because it catches each creature in it; friendlyFire: false keeps it to the other side, as it does on a board.

A contest can be a check against a fixed number instead of a roll-off (Capability API 1.193). Leave out defender and give "difficulty": 15; the actor rolls the best of its attacker checks and wins on meeting it. "targets" says who it may be taken on: "enemy" (the default), "ally" or "any", the actor included. "targetHolds": "wounded" offers it only on a target holding that condition, and "targetDying": true only on one who is dying and not yet stable. onWin.stabilizes makes a dying target stable. So a DC 15 Wisdom (Medicine) check that ends a sword of wounding's wounds is { "difficulty": 15, "targets": "any", "targetHolds": "wounded", "onWin": { "ends": [{ "condition": "wounded", "on": "target" }] } }, and the DC 10 one that saves the dying is { "difficulty": 10, "targets": "ally", "targetDying": true, "onWin": { "stabilizes": true } }. A pool fight counts successes, so it refuses difficulty. An item attack's "healedOnlyByRest": true seals the hit points it takes: no heal brings the holder above their maximum less what is sealed, and any rest restores them and clears the seal. A combat condition's harms takes the same "healedOnlyByRest": true, so the wounds the sword leaves seal what they take too.

A size can fill more than one cell (Capability API 1.194). Give an entry of combat.sizes.order a "cells" count, { "id": "large", "label": "Large", "cells": 2 }, and a creature of that size fills that many cells a side on a board, its own cell the top-left one: 5e's Large is 2, Huge 3 and Gargantuan 4. It is set down where all of it fits, the nearest such place to where it was asked to stand. Reach and range run to and from the nearest cell it fills, so a sword reaches an ogre from beside any of its four cells; it walks only where all of it fits and nobody walks through any of it; an area catches it when any of its cells is inside; a push moves the whole of it; and it is seen, and is as covered as, from whichever of its cells is clearest. A size with no cells fills one, exactly as before.

A condition can make its holder bigger or smaller (Capability API 1.195). Give an entry of combat.conditions a "size": { "steps": 1 }, and while it holds its holder is that many sizes further along combat.sizes.order, or back along it for a negative number, never past the first or the last: 5e's Enlarge is 1 and Reduce -1. Their reach, what areas catch them and anything that asks their size read the new one, and when it ends they are their own size again. On a board somebody who grows fills their new size over every cell they stood on where it fits on open ground clear of everybody else, or the biggest size short of it that fits, so an ogre enlarged in a corridor grows only as big as the corridor allows; somebody who shrinks keeps their top-left cell. The log says who changed, and to what. It needs combat.sizes; pair it with a damage modifier for the weapon dice and a Strength checks and saves mode for the rest of the spell.

An entry can pick its targets by how much health they have left (Capability API 1.196). "healthPool": { "dice": "5d8" } in its mechanics is rolled once as it is used and shared out from the target with the least health left upward: each is affected only while their health is no more than what remains, which they then use up, and the rest are left alone entirely, as 5e's Sleep and Color Spray work; perCostStep adds to it when it is cast higher. "healthAtMost": 150 affects only a target with that much health or less, as Power Word Stun; "kills": true kills whoever it affects outright, so Power Word Kill is "healthAtMost": 100, "kills": true. Both read the health a target has left, after targetTypes has said who it may take at all. The log says what a pool rolled and whom it was enough for.

A damage modifier can throw a blow's own dice more times over (Capability API 1.197). { "to": "damage", "attacks": "weapon", "ability": "str", "diceTimes": 2 } on a condition makes a war pick's 1d8 + 2 deal 2d8 + 2 while it holds, as an enlarged duergar's weapons do; its flat part stays as it was, a critical doubles the extra dice as it does the rest, and the menu's average counts them. It changes the damage a blow deals and nothing else. A creature's action with "self": true taken on its own turn now lands on the creature itself, as it already did in a reaction, so its applies go on.

A zone can deal another damage type at its triggers than it does as it appears (Capability API 1.198). "zone": { "rounds": 100, "triggers": ["enter"], "atCast": true, "damageType": "slashing" } on an entry whose own damageType is "piercing" deals piercing to whoever the wall appears around and slashing to whoever moves into it later, as 5e's Wall of Thorns does. It needs the entry's own amount and a trigger, a side or a ram to deal it at, and names one of combat.damageTypes where the ruleset declares them.

A health pool can pass over some of its targets (Capability API 1.199). "healthPoolSkips": { "conditions": ["unconscious"] } beside a healthPool leaves whoever holds one of those conditions alone and spends none of the pool on them, as 5e's Sleep ignores the unconscious; "unseeing": true does the same for whoever cannot see the entry's maker (blinded, or with no line of sight to them), as Color Spray ignores creatures that can't see. It names conditions, unseeing or both, and needs a healthPool.

A wall can stand in sections that are struck and broken one by one (Capability API 1.200). "zone": { "rounds": 100, "triggers": [], "blocks": ["move", "sight"], "sections": { "every": 10, "health": 30, "defense": 12, "vulnerable": ["fire"], "broken": { "triggers": ["enter"], "amount": { "dice": "5d6" }, "damageType": "cold", "save": "con_save", "onSave": "half" } } } is 5e's Wall of Ice: each 10-foot panel has AC 12 and 30 hit points and takes double from fire (resist and immune work the same way). An attack that is aimed at one foe or anybody and deals damage may be pointed at a section instead: its option lists the cells it may strike as walls, and the choice names one of them as wall. The attack is rolled and its damage dealt as against a creature, and the log says what the section took and has left. A section brought to 0 is broken: it stops blocking, and whoever enters it (or starts or ends a turn there, as its triggers say) takes its amount, once a turn, saving with its save against the entry's own difficulty for half (onSave: "none" for nothing). Sections need a wall that blocks, and a broken save needs the entry's own save.

An entry can move the sheet's live tracks and give back sealed health (Capability API 1.201). "tracks": [{ "track": "exhaustion", "by": -1 }] takes a level of exhaustion off whoever it lands on, as 5e's Greater Restoration does, and "by": 1 on an entry with a save (Sickening Radiance) adds one to whoever fails it. Each track is held to its own bounds, levels that halve the health maximum take hold at once, and reaching a level that defeats slays. "unseals": true gives back the health that only a rest would (what a seals blow took off), as Greater Restoration ends a reduction of the hit point maximum. An entry that only cures this way is offered only on somebody it would help. A wall section's broken can carry its own perCostStep, added once for each step the cast was paid above its base: Wall of Ice's frigid air, { "dice": "1d6" }. Tracks are plain tracks, not wound tracks, and unseals needs health kept in points.

A condition an entry puts on can end with another one it puts on (Capability API 1.202). In "applies": [{ "condition": "charmed", "duration": { "rounds": 10 }, "saveEnds": { "save": "wis_save", "at": "damaged" } }, { "condition": "incapacitated", "duration": "instant", "endsWith": "charmed" }], 5e's Hypnotic Pattern, the incapacitation ends whenever the charm does: a save, a cure, its caster's concentration breaking, an ally shaking them awake, or the fight ending. Only the one put on by the same use goes with it, and the log says why. endsWith names another condition of the same applies list (or onEnd, charge or saved list), never its own.

A creature's action can lower its target's health maximum (Capability API 1.203). "reducesMax": { "save": "con_save", "difficulty": 14 } on a wraith's Life Drain has the target roll that save as the blow lands; on a failure, the damage it takes comes off its maximum as well as its health, and no heal gives it back before a rest. With "lasting": true (a clay golem's Slam) not even a rest does, only an entry that unseals (Greater Restoration). A target whose maximum is lowered to 0 this way dies. A sheet keeps what no rest gives back as its pool's lasting, inside sealed. It needs health kept in points.

A cure can do one of its cures rather than all of them (Capability API 1.204). With "cureOneOf": true, an entry that ends some conditions, moves tracks and unseals (5e's Greater Restoration: charmed, petrified, a level of exhaustion, or the hit point maximum) does exactly one: each is offered as a mode of the option (a condition, a track or the health pool, by its label), as a weapon's modes are, and a use with none picked does the first of them, in that order, the target has something for. It needs at least two cures to choose between.

A lowered maximum can need no save of its own (Capability API 1.235). A reducesMax without save and difficulty lowers the maximum by the damage of every blow that lands (5e's vampire Bite); with "onFailedSave": true only when the target failed the entry's own save (5e's Harm, a catalog entry with a save; there reducesMax never has a save of its own). damageType counts only damage of that type (the Bite's necrotic), and "heals": true gives its maker back as many hit points as it lowered. Catalog mechanics take reducesMax too, and leavesAtLeast keeps the entry's damage from taking the target below that many hit points (Harm leaves 1). targetHolds on a creature action or catalog mechanics limits whom it may be pointed at: one who holds one of its conditions, or one of its fromSelf that the action's maker put on them (the Bite: grappled by the vampire, or incapacitated or restrained).

A condition can give its holder uses of its own (Capability API 1.236). A combat condition's actions lists catalog entries (spells/break-enchantment) its holder may use while they hold it: they are on the menu only then, cost nothing off the sheet but the budget each spends, and are rolled with the holder's own numbers, as their spells are (a creature that casts uses its casting's). An entry with "endsCondition": "<condition>" ends that condition on its user once used, and the concentration holding it when that is the user's own: 5e's Dispel Evil and Good, whose Break Enchantment and Dismissal each end the spell. ends.from (a type and tag test) cures only what a creature that passes it put on: Break Enchantment ends a charm or fright by a celestial, an elemental, a fey, a fiend or an undead, and leaves one by anybody else. dismisses sends whoever it lands on and who does not save out of the fight, alive, off the board and out of the turn order: true for good (Dismissal), or { "while": "<condition>" } for as long as they hold that condition, which the same entry must put on (5e's Banishment). Its clock then runs on its caster's turns, and when it ends, by its time, a save or the caster's concentration, they come back where they were, or to the nearest free place they fit. With gone (a type and tag test), one that passes it and saw the condition run its whole time stays away.

A fight can begin with some of its people caught unaware (Capability API 1.237). The scene says who: the encounter it is drawn from marks them "surprised": true, party or enemy alike. On their first turn they cannot move or act, and their menu holds only ending it; they take no reaction, and no legendary use, until that turn is over or the first round is, whichever comes first. A combat condition with "cannotBeSurprised": true keeps its holder from ever being caught: 5e's Foresight. A catalog entry with "ignoresSurpriseWith": "<catalog>/<entry>" names a use its holder may still take while surprised, and taking it ends the surprise there and then, so the rest of the turn is theirs: 5e's Feral Instinct, which lets a surprised barbarian act normally by raging first.

A catalog entry can give its holder a second turn in a fight's first round (Capability API 1.238). "extraFirstTurn": { "initiative": -10 } on an entry held on a sheet's list places that second turn at the holder's own initiative plus the number, after everybody at that number or above it; each of the two is a whole turn, and from the second round on they take one turn a round as usual. A holder taken out before the second turn comes misses it. With "unlessSurprised": true there is no second turn for one who begins the fight surprised: 5e's Thief's Reflexes.

A combat condition can narrow what its granted budget buys to a swing in reach, and leave a mark on its holder's tracks as it ends (Capability API 1.239). With "grants": { "budget": "bonus", "attacks": true, "melee": true }, the one strike that budget pays for is made only with a weapon that strikes in reach, and a thrown one only at somebody within its reach, since it is swung rather than thrown; a weapon with a range and no reach is not offered. "onEnd": { "tracks": [{ "track": "exhaustion", "by": 1 }] } moves its holder's live tracks by levels as the condition ends, however it ends, as tracks on a catalog entry does; applies and tracks may stand together or alone. A catalog entry's "usesOf": "<row name>" spends the uses of that row's entry (its counter row) instead of its own. 5e's Frenzy is then a Berserker's entry, Frenzied Rage, with "usesOf": "Rage", that puts on the rage and a frenzied condition that endsWith it, holding both of these.

Initiative can be thrown twice, the better or the worse kept (Capability API 1.240). combat.initiative.checkAbility says initiative is a check made with that ability, so whatever rolls such a check twice rolls initiative twice: a condition with own-checks-advantage (5e's Foresight) or a checks modifier with a mode, narrowed to that ability or to none (Enhance Ability's Cat's Grace on Dexterity). A catalog entry held on a sheet's list with "initiativeMode": "advantage" (or "disadvantage") throws its holder's initiative twice whatever they hold: 5e's Feral Instinct. Advantage and disadvantage cancel out, as on any roll; the log's initiative entry carries mode and the dropped throw. A fight that throws initiative every round throws it twice every round. Thrown dice only: a pool's initiative is not thrown twice.

A reaction can answer its holder's OWN attack hitting (Capability API 1.241): a "hit" reaction with "by": "self" is offered to the attacker once their roll has hit, after everybody the blow struck has answered, and is aimed at whoever it hit (write "at": "target"). "weapon": true narrows any hit moment to a weapon's blow: an attack, or a creature's single-target action, from no catalog. A reaction to one's own hit is not stopped by what stops reactions, since choosing it is part of the attack; mark it "free" unless it spends a budget. 5e's Stunning Strike is one: "reaction": { "on": "hit", "by": "self", "weapon": true, "blow": "melee", "at": "target" }, free, a ki cost, a Constitution save and stunned until the end of the monk's next turn. With "addsToBlow": true an attack entry's amount joins that blow instead of being dealt on its own: rolled as the blow lands, doubled by its critical, its clauses only on a target they reach. 5e's Divine Smite is 2d8 radiant, perCostStep 1d8, a clause of 1d8 radiant with targetIs fiend or undead, and "perCostStepsMax": 3: the most steps of a higher cost that count, for any entry with perCostStep or targetsPerCostStep. An attack made inside another window (an opportunity attack) is never held for its hit, so nothing is added to it.

What a sheet holds can change its attack rows, grant strikes and wait for the attack action (Capability API 1.242). A catalog entry held on a sheet's list with attackRows changes the rows whose names it lists (matched without case), while its when bounds hold (a value off the sheet, such as armor worn at most 0): abilities uses the best of the row's own ability and these to hit and, where the row's damage adds the same ability, to damage; die (from a sheet value, through a step table, to a number of sides) rolls one die of that size in place of the row's dice where that is the better average; qualities add to what the blows carry past a resistance. 5e's Martial Arts is { "names": ["Unarmed Strike", "Shortsword", ...], "abilities": ["str", "dex"], "die": { "from": { "field": "level_monk" }, "table": [[1, 4], [5, 6], [11, 8], [17, 10]] }, "when": { "value": { "derived": "armor_worn" }, "atMost": 0 } }, and Ki-Empowered Strikes is { "names": ["Unarmed Strike"], "qualities": ["magical"] }. A held entry's grantsStrike lets its holder buy one strike with another budget once an attack's own budget is spent, exactly as a condition's grants.attacks does: names narrows it to those attacks, melee to reach, and afterAttack to a turn in which the attack action was taken (true, or { "names": [...] } for an attack action taken with one of those). Martial Arts' bonus unarmed strike is { "budget": "bonus", "names": ["Unarmed Strike"], "afterAttack": { "names": [...the monk weapons] } }. A condition's grants takes the same names and afterAttack. An entry with afterAttack is offered only after the attack action: Flurry of Blows is a utility entry on the bonus budget, spending a ki, with afterAttack, gives 2 of a budget declared with count 0, and a grantsStrike of Unarmed Strike on that budget. The attack action is any attack made from an attack list or item paying its own budget or a strike it already bought, never one a grant paid for.

An opportunity attack is held where it hits exactly as an attack on a turn is (Capability API 1.243): everybody with an answer to that hit is asked, its maker last for what they add to it (Divine Smite, Stunning Strike), and the walk's own window, with its striker already answered, is asked on once the blow has landed. A walker who is held still on the way (a condition with speed-zero, such as stunned or grappled) goes no further than the cell they were struck in. An entry that is a reaction or is added to another blow is never picked as the opportunity attack itself.

Attack rules reach held weapons, and an attack list can give every sheet a row (Capability API 1.244). combat.attacks[].always lists up to 4 rows written in that list's columns that every sheet's fight has as well as its own; a sheet row of the same name is used in its place. 5e's unarmed strike is { "name": "Unarmed Strike", "ability": "str", "proficient": true, "bonus": 0, "damage": "1", "damage_type": "bludgeoning", "reach": 5 }. An attackRows rule's names now matches a held weapon by the name its attack goes by too, and its items matches held weapons by tags: every one of tags and none of notTags ({ "tags": ["simple", "melee"], "notTags": ["two_handed", "heavy"] }, so a dagger +1 counts); a rule names names, items or both. wielding: { "only": {...} }, with the same names, tags and notTags, keeps a rule only while every weapon held is one of those, or none is: "unarmed or wielding only monk weapons". A grantsStrike takes the same wielding, and a when like an attackRows rule's, so Martial Arts' bonus strike is not offered in armor.

Several uses at once, a save that drops to 0, hits by named attacks and harm as a condition ends (Capability API 1.245). An entry's usesSpent spends that many of its row's uses (or usesOf's) in one use, and is offered only while that many are left: Quivering Palm's 3 ki. A "hit" reaction's names answers only a hit by those attacks, matched by name without case: Quivering Palm is { "on": "hit", "by": "self", "names": ["Unarmed Strike"], "at": "target" }, putting on a long-lasting quivering condition. dropsOnFailedSave on an entry with a save drops a target that fails it to 0 health instead of dealing its amount (a creature is out, a character dying where the ruleset has a dying rule); a target that makes it takes the amount as the save's onSuccess says. Ending the vibrations is an action with targetHolds: { "fromSelf": ["quivering"] }, 10d10 necrotic, a Constitution save with onSuccess: "none" and dropsOnFailedSave. A condition's onEnd.harm (dice, flat, type, unless) deals damage to its holder as it ends, from whoever put it on, unless the holder is what unless names: Hurl Through Hell is a hit reaction with dismisses: { "while": "hurled" } and hurled lasting { "rounds": 1, "of": "source" }, and the hurled condition's onEnd is { "harm": { "dice": "10d10", "type": "psychic", "unless": { "types": ["fiend"] } } }.

afterAttack matches the weapon the attack action was taken with by tags too (Capability API 1.246): { "names": [...], "items": { "tags": ["simple", "melee"], "notTags": ["two_handed", "heavy"] } } is after an attack with one of those names or with a held weapon that has every one of tags and none of notTags, whatever it is called, so a dagger +1 counts. It names names, items or both, on an entry and on a grantsStrike or condition grant alike.

Reckless and brutal blows (Capability API 1.247). An entry with beforeAttack is offered only on its holder's own turn before they have attacked in it: Reckless Attack is a free buff on the barbarian with beforeAttack, applying reckless for { "rounds": 1 } and exposed for { "rounds": 1, "at": "turn-start" }. A change to attacks takes attacks (weapon, spell or any) and blow (melee or ranged) as a change to damage does, with ability: reckless is { "to": "attacks", "mode": "advantage", "ability": "str", "attacks": "weapon", "blow": "melee" }, and exposed has the attacks-against-advantage effect. A damage change's criticalDice adds that many of the blow's own damage dice on a critical hit only, not doubled: Brutal Critical is a level on a derived value of the barbarian's with { "to": "damage", "criticalDice": 1, "attacks": "weapon", "blow": "melee" }, one level for each die.

Answers to a flurry's hits (Capability API 1.248). A hit moment's budget narrows it to hits by a strike paid for from that budget: Open Hand Technique answers { "on": "hit", "by": "self", "budget": "flurry" }, the budget Flurry of Blows gives and its grantsStrike spends. A reaction's oneOf names a group of answers to its holder's own hit of which only one is taken per hit: Open Hand Technique is three free entries sharing "oneOf": "open-hand", one with a Dexterity save applying prone, one with a Strength save and push of 15, and one applying a condition with the cannot-react effect for { "rounds": 1, "at": "turn-start" }. Taking one spends the other two for that hit; the next hit offers all three again. oneOf goes on a hit moment by self with no also.

Rescues after the roll (Capability API 1.249). A change to attacks, saves or checks with "rescue": true is held back from the roll: only when its holder's own roll falls short, and its most (the flat part and every die at its highest) could make up the difference, is it rolled and added, and the condition it came from is spent. A roll it could not turn keeps it. Bardic Inspiration is a condition put on an ally with { "to": "saves", "dice": "1d6", "rescue": true } and the same for attacks and checks (one condition per die size, chosen by the bard's level as other bands are); Guidance is checks with 1d4, Resistance saves with 1d4. A natural miss is never rescued, and a fight on a dice pool holds nothing back. An entry's rescue takes it off the menu: it is spent, with its uses and cost, when its holder's own roll of that kind has failed. { "roll": "saves", "by": "reroll" } rolls the save again and the new roll stands (Indomitable with its own uses; Diamond Soul with usesOf Ki); { "roll": "attacks", "by": "success" } turns a miss into a hit and { "roll": "checks", "by": "success" } a failed check into a success (Stroke of Luck). Changes held back are tried first.

Cutting words and evasion (Capability API 1.250). An entry's lowersRoll is taken as somebody else's attack hits, on a hit reaction without by (with for and within to answer for allies): its dice, or one die sized by a value as Martial Arts' is ({ "from": { "field": "level" }, "table": [[1, 6], [5, 8], [10, 10], [15, 12]] }), come off the roll, which is then checked again against the defense; a natural hit still hits. Cutting Words is a free debuff with { "on": "hit", "for": "ally", "within": 60 } and usesOf the bard's inspiration counter. A combat condition's or level's evasion names saves: against something that deals half on a success, a made save takes nothing and a failed one half. Evasion is a level on the rogue's or monk's level with "evasion": ["dex_save"].

Lay on hands (Capability API 1.251). An entry's usesChosen lets its user choose how many of its uses one use spends, from one up to what is left, and heals that many times its amount. The option carries amount: { max } and the choice sends amount; left out, it spends what heals the first target fully on average. It is for a heal with no usesSpent. Lay on Hands is a heal of "amount": { "flat": 1 } with usesOf a counter of five per paladin level, usesChosen, and "targetTypes": { "not": { "types": ["undead", "construct"] } }.

Font of magic (Capability API 1.252). An entry's restore gives back to a pool of whoever it lands on, on a heal or a buff: a live pool by id, or a list row's pool by its name ("Sorcery Points"). With a cost in a pool family, perCostStep adds to it for each step above the cheapest, so a sorcerer's slot becomes Sorcery Points equal to its level: a self buff costing slots_1 with "restore": { "pool": "Sorcery Points", "amount": { "flat": 1 } } and "perCostStep": { "flat": 1 }. overMax lets it go past the pool's maximum; what is past it is kept apart and goes when a rest sets the pool back to its maximum. A slot made from points is one entry per level, usesOf the points with usesSpent its price and "restore": { "pool": "slots_2", "amount": { "flat": 1 }, "overMax": true }. An entry restoring its own user a pool they do not have is not on their menu.

Metamagic (Capability API 1.253). An entry's alters changes how an entry of its catalogs is used: it is never on a menu of its own, but offered with each one it fits, chosen as that one is used and paid for with its own uses (usesOf the Sorcery Points with usesSpent, or usesSpentByLevel for the level the spell is paid at, at least one). It is a utility with no reaction. Only one per use, unless it joins another. What it changes, each fitting only a spell it has something to change on: spares (a value off the sheet: that many of its user and their allies it catches make its save outright: Careful), range ({ "times": 2, "touch": 30 }: Distant), rerolls (that many of its damage dice below average thrown again, the lowest first: Empowered, with joins), lasts (what it puts on for a minute or more lasts that many times as long, never past a day: Extended), heightens (its first target rolls its first save at disadvantage: Heightened), budget ({ "from": "action", "to": "bonus" }: Quickened), drops (the components it then needs none of, and nobody can answer it being cast: Subtle), and twins (one more target for a spell of one target that is not its user's alone and gains none from a higher slot: Twinned). A spell that can only be cast with one of them right now (Quickened once the action is spent, Subtle under Silence) is offered with alterNeeded, and the choice has to carry it. The choice sends alters, the ids from the option's alters; the log says altered.

Metamagic as it is picked (Capability API 1.254). rerolls throws again the lowest of all a spell's damage dice, never more than that many in all: its own, every clause's in plus, and on a critical hit the extra ones with whatever is left. An attack spell rolls them for each target it hits. Where a spares alteration catches more of its user's side than it spares, its user picks who: the option's alters offer carries spares (how many), and the choice sends spares, the ids of its user's side to spare (none at all spares nobody). Left out, it spares the first it catches. The pick holds through a window that answers the cast. spares with no alteration that spares anybody, more ids than it spares, an id twice or one of another side is refused as bad-alter.

Heightened's target and Acid Arrow (Capability API 1.255). Where a heightens alteration catches more than one, its user picks who rolls their first save at disadvantage: the option's alters offer carries heightens: true, and the choice sends heightens, one combatant's id (one it is pointed at, where it is pointed at some, and never its user). Left out, it is the first it catches. An entry with halfOnMiss: true (it must have attackRoll and an amount) still deals half its damage on a miss, its clauses' too, and nothing else it does on a hit. An applies entry's harmsPerCostStep ({ "dice": "1d4" }) adds that much to what the condition harms with for each step of a higher cost it was put on with: Acid Arrow's later acid, 1d4 more a slot level above 2nd.

A holder's own rescues, entries never on their user, and conditions one at a time (Capability API 1.256). An entry's rescue may also be by: "twenty" (only with roll: "checks"): a failed check's d20 counts as a 20, spent only where that makes it, as Stroke of Luck does for an ability check. by: "die" adds a die of the holder's own where nothing given them could make up the difference and that die could: dice ("1d10", Dark One's Own Luck) or one die sized by a value off the sheet, { "from": { "field": "level" }, "table": [[1, 6], [5, 8], [10, 10], [15, 12]] } (Peerless Skill). A condition given them is tried first. notSelf: true on an entry pointed at an ally or any creature keeps it off its own user: Bardic Inspiration. A combat condition's oneAtATime names a group ("bardic"): while a creature has one condition of that group, no other one of it, the same one included, goes on; the condition event says already.

Answers to more kinds of roll (Capability API 1.257). lowersRoll may also list "also": ["checks", "damage"]: besides an attack roll that hit, its dice come off somebody else's ability check (a contest such as a grapple, an item's gate, Counterspell's check) or damage roll as it is made. That is spent by itself, with the entry's budget, uses and cost, by the first on the other side whose entry reaches the roller, and only where its most could turn the roll: a check that would succeed and might then fail, or damage that would take one of its holder's side down and might then leave them standing. Cutting Words is { "dice": "1d6", "also": ["checks", "damage"] } with its die sized by level, needs: ["hearing"] and targetTypes: { "notImmuneTo": ["charmed"] }. A rescue may name saves (only a rescue of saves): it is spent only on those saves. With budget it also takes one of that budget, and is not spent without it: a ring of evasion is { "roll": "saves", "by": "success", "saves": ["dex_save"], "budget": "reaction" } with its charges as uses. An item's use may carry halfOnMiss too, with attackRoll and an amount: a scroll of Acid Arrow.

Diseases (Capability API 1.258). A combat condition's kinds (["disease"]) says what kind of condition it is. A kind is never a condition's own id. A cure's ends may name a kind in place of conditions: every condition of that kind counts, and its count still takes only that many, so Lesser Restoration's "one disease" is { "conditions": ["disease", "blinded", "deafened", "paralyzed", "poisoned"], "count": 1 }. An immunity (a creature's or item's conditionImmunities, or a condition's or level's) may name a kind too: Divine Health is a condition with "conditionImmunities": ["disease"]. A saveEnds may count: successes (2 to 10) is how many successes end it, and failures ({ "count": 3, "becomes": "blinding_sickness" }) puts on becomes in its place, with no clock and no more saves, once that many saves have failed. The condition event says worsened. That is Contagion: an until-save condition saved against at the end of each turn, with three either way. A condition with no clock is not lifted when the fight ends, so a disease that set in outlasts it until something cures it.

Rescues on worn items (Capability API 1.259). An item's use may carry a rescue as an entry's mechanics do, saves and budget included. It is never on the menu, and it is spent only while the item is worn (where it has slots) and has the charges its use spends. Spending it takes one of those charges. A ring of evasion is an item with "charges": { "max": 3 } and "use": { "kind": "buff", "targets": "self", "free": true, "charges": 1, "rescue": { "roll": "saves", "by": "success", "saves": ["dex_save"], "budget": "reaction" } }. Its charges come back as the item's recharge says.

Diseases between fights (Capability API 1.260). A combat condition may carry onRest: { "rests": [restId], "lowersMax": { "dice": "3d6", "flat": 0 }, "lasting": true }: each time its holder takes one of those rests while it is on them, health's maximum drops by that much, rolled where the rest is taken, after the rest has given back what it gives back. Without lasting the next rest returns it; with it, only something that unseals does. An onRest.save: { "save": saveId, "difficulty": 15, "cures": true } is rolled first, as the ruleset's checks are and with the sheet's own modifier: only a failure lowers the maximum, and with cures a success ends the condition (the otyugh's disease). Only health kept in points has a maximum to lower. 5e's Mummy Rot is a no-clock condition with "onRest": { "rests": ["long"], "lowersMax": { "dice": "3d6" }, "lasting": true }. A save counted to an end or to what it becomes (1.258) no longer stops when the fight does: as any fight ends, fled ones included, its holder's remaining turn saves are rolled out, so Contagion is either shaken off or set in by then. A save made only on damage waits for damage.

Disease stages (Capability API 1.261). A combat condition may carry onDamaged: { "applies": [...] }, put on its holder each time they take damage, on a clock as onEnd's are (Slimy Doom's stun until the end of the holder's next turn); expires: { "becomes": conditionId }, which it turns into, with no clock, when its own clock runs out, a fight's end included, but not when it is ended any other way (an aboleth's Tentacle disease after its minute); and curedOnlyBy: { "catalogs": [catalogId], "minLevel": 6 }, so only a cure from those catalogs paid at that level or higher ends it. onRest.restoredWhenCured: true (with lasting) gives back what that condition's rests took off the maximum when it comes off, however it does, its own made save included. The cannot-heal-nonmagical effect keeps off every heal but a magical one: in a fight an action whose qualities say "magical", out of one a restore op with "magical": true (a potion tagged magical is one), and never a rest; a refused restore says cannot-heal. A stat block's action may carry ends as a catalog entry does, kinds included: a unicorn's Healing Touch is "heal": { "dice": "2d8", "flat": 2 }, "ends": { "conditions": ["disease", "poisoned"] }, "targets": "ally". A cure the caster picks among its conditions, one curse among several, is cureOneOf (1.204).

Qualities on a creature's action (Capability API 1.262). A stat block's action may carry qualities, item tags the ruleset declares, as a catalog entry's do: ["magical"] makes its heal a magical one, which cannot-heal-nonmagical lets through, and a save against it a save against magic. An item's use in a fight carries the item's own tags the same way, so a potion tagged magical heals as magic there as it does on the sheet.

Auras (Capability API 1.263). A combat condition may carry auras, up to four: each spreads its conditions to whoever stands within distance of the holder, on side allies, enemies or all, and on the holder too with self: true (not with enemies). when reads one of the holder's sheet values with atLeast or atMost, so an aura can open at a level. A holder who is down, defeated or has the cannot-act effect spreads nothing. What an aura spreads goes on as the fight steps, comes off as the two part (the log says aura and parted), is never written to a sheet, and is gone when the fight ends; a condition an aura spreads cannot carry an aura of its own. Without a board the aura reaches everyone on its side. To have the holder start every fight with the condition, give a catalog entry's mechanics, or a stat block, keepsOn: the conditions it holds for the whole fight, also never written to a sheet. 5e's Aura of Protection is a kept aura-of-protection whose aura spreads a condition adding the paladin's Charisma to saves; Holy Nimbus is an aura on enemies whose condition harms at the start of their turn.

Forced behavior (Capability API 1.264). A combat condition may carry behavior, which decides what its holder does with their turn. only lists all the turn may hold besides ending it: move (walking and getting up), escape (breaking free of a hold) and standard actions the ruleset declares; an empty list leaves only ending the turn (Command's halt). onlyWhenStuck names standard actions allowed only while there is nowhere to walk (Turn Undead's Dodge). moves: "away" walks only away from whoever put the condition on, never a step nearer, ending further off; moves: "toward" walks only nearer (Command's approach, Sympathy). table is rolled as each of the holder's turns starts, {dice, rows: [{atMost, does}]}, and the first row the roll is at most decides the turn: wander walks all their speed one way a d8 picks and ends the turn, nothing ends it, strike allows only a melee attack at a creature in reach the dice pick (friend or foe; nothing with nobody there), and normal, like a roll above every row, leaves the turn alone (Confusion, Mindfire). The log shows the roll as a compelled event, and anything else is refused as compelled. A save that ends a condition may also be at: "action": its holder spends their action to roll it (Irresistible Dance).

More from auras (Capability API 1.265). An aura's conditions are now optional, as long as it spreads conditions, harms or asks for a save. needs lists senses a receiver must have, and neither the holder nor the receiver may stand in a zone whose inside.conditions take those senses away: Countercharm needs: ["hearing"] stops at Silence. harms {dice, flat, type} is dealt by the holder to everybody the aura reaches as each of the holder's own turns starts (a balor's Fire Aura). save {save, difficulty, applies, seen?, immuneOnSuccess?} is made by everybody the aura reaches as their own turn starts: a failure puts on applies from the holder at that difficulty, seen asks only while the two can see each other (a basilisk's gaze), and immuneOnSuccess keeps that holder's aura off them for the rest of the fight after a success (a pit fiend's Fear Aura). A save modifier's against.casts narrows it to saves against what is cast from those catalogs, an item's use that casts from one included, and then whatever else it names: Holy Nimbus's advantage against spells cast by fiends or undead is against: { casts: ["spells"], from: { types: ["fiend", "undead"] } }.

More forced behavior (Capability API 1.266). A behavior may carry drops {slots?, tags?, at, pickUp?}: its holder lets fall each worn item taking one of slots or carrying one of tags, and each stat block action whose qualities carry one of tags, either as the condition goes on (at: "applied", Fear's "drops whatever it is holding") or as each of the holder's turns starts (at: "turn-start", Command's "drop"). What fell lies on the cell where they stood: none of its actions are theirs (refused as dropped), it gives nothing it gave while worn, and its share of the holder's defense is gone (a shield's 2). They pick it up standing on that cell or beside it, with the turn's one free pick-up, or for the pickUp budget when the condition names one; the log shows letFall and pickedUp. onlyWhenStuck: "any" makes a turn that starts with nowhere the condition lets its holder walk wholly their own (Fear's "unless there is nowhere to move"). keepsOut is a distance from whoever put the condition on: inside it the holder steps only further off, and it stops only outside it while anywhere outside is in reach (Turn Undead's "can't willingly move to a space within 30 feet of you"). A save that ends a condition may be unseen: true, rolled only while its holder cannot see whoever put it on (Fear's save out of line of sight). An entry's applies may carry destroysUpTo [{tier, when?}]: a creature that fails the save and whose threat tier is at or below the highest tier whose when holds on the user's sheet is destroyed outright instead (Destroy Undead, CR 1/2 at cleric 5th up to CR 4 at 17th); a character, or a creature with no tier, never is.

Targeting by any sense, targets near each other, growing areas, more uses and held things (Capability API 1.267). An entry or creature action that needs senses may add needsAny: true: a target that keeps any one of them qualifies, and only one that lacks them all is refused (Turn Undead's "each undead that can see or hear you"). targetsWithin is a distance every pair of picked targets must stand within, refused as targets-apart otherwise (Command's higher-slot creatures "within 30 feet of each other"). An area may carry sizePerCostStep, the distance its size grows by for each step its cost is raised (Confusion's sphere growing 5 feet a slot level); a wall never grows. An item with a use may list moreUses [{label, use}]: each is another menu entry, named after the item and its label, drawing on the same charges and let fall with the item (a wand of several spells). A creature may list held [{label, tags, defense?}], things it holds that are no action of its own (a printed shield): a condition whose drops names one of their tags lets them fall with its tagged actions, their defense is gone from its own until it picks them up, and each is picked up like a dropped item.

Gazes, and auras by who they reach (Capability API 1.268). An aura may carry targetTypes, read as an entry's: it reaches only who is that (a sea hag's Horrific Appearance, humanoids only). sourcesOf names conditions: it reaches only whoever has put one of them on its holder (a barbed devil's Barbed Hide, harming whoever grapples it). An aura's save may carry failedBy {atLeast, applies}: a failure by at least that much puts those on instead (a medusa's gaze, petrified outright on a failure by 5 or more). A seen save may carry avert: true: whoever it reaches may, on their turn and for nothing, avert their eyes from its holder; until they look again (their own free choice too) they skip that save and cannot see the holder, so their attacks on it are made unseen; the log shows averted, and the director keeps its creatures' eyes averted while anybody else is left to fight. A save that ends a condition may carry seenLean ("advantage" or "disadvantage"): rolled so while its holder can see whoever put the condition on (the sea hag's repeated save, with disadvantage while she is in sight).

Staffs cast with their holder's numbers (Capability API 1.269). An item's use may read its save difficulty off its holder's sheet with sheetDifficulty, a value as toHit.sheetBonus reads one ({ "derived": "spell_save_dc" }), in place of saveDifficulty; its attack bonus is read off the sheet the same way already, with toHit.sheetBonus ({ "derived": "spell_attack" }) and no abilities. A use with charges may carry chargeStep {max, amount?, targets?}: its user may spend up to max more charges, each one a step of a higher cost, adding amount and targets as a higher slot adds perCostStep and targetsPerCostStep, and growing an area with sizePerCostStep (a Staff of Power's spell at a higher level, a Staff of Striking's 1d6 force a charge). The menu offers them as payments named charges:<how many more>, only as many as the item still holds. The same minor raises the conditions a ruleset may declare to 320, and an aura's save may carry immuneWhenEnds: true: once what a failure put on ends, however it ends (a save, its clock, a cure), that holder's aura stays off them for the rest of the fight, as immuneOnSuccess keeps it off after a made save (a sea hag's "is successful or the effect ends for it").

A kind named as it is cast (Capability API 1.270). A catalog entry's mechanics with applies may carry kindChoice: true: its user names one of combat.creatureTypes (a type or a tag) as they use it, offered as modes kind-<id>, and what it puts on remembers that kind. An aura of what it put on with chosenKind: true reaches only creatures of that kind, and one with orSeen: true also reaches whoever can see its holder however far off, so 5e's Antipathy puts a condition on its target whose aura, side: "all", frightens the chosen kind within 60 feet or in sight, and its frightened ones move away (moves: "away") while Sympathy's charmed ones move toward. A condition's saveEnds may carry beyond, in the ruleset's distance: its save is rolled only while its holder stands farther than that from whoever put it on, with unseen also out of their sight (Antipathy's "not within 60 feet of the target or able to see it").

More of what staffs and rings do (Capability API 1.271). An item's use may carry label, shown beside the item's name as a moreUses entry's label is ("Staff of Fire: Burning Hands"); a further use is named by its own label. A use may carry amountAdd, a value read off its holder's sheet and added to its amount, as a catalog entry's is (a Staff of Healing's Cure Wounds, { "abilityModFromField": "spellcasting_ability" }), in a fight and outside one. A chargeStep may carry push, in the ruleset's distance: each charge more pushes its target that much farther, beside the use's own push (a Ring of the Ram's 5 feet a charge). An item's charges.breaksOn may carry regains {atLeast, amount}: when its last charge is spent and its die shows atLeast or more, the item gets amount charges back instead (a Staff of the Magi's 1d12 + 1 on a 20), in a fight, outside one and as the inventory spends a charge; atMost may then be left out for an item that never breaks.

An item that becomes another (Capability API 1.272). An item's charges.breaksOn may carry becomes, another item of the ruleset as <catalog>/<entry>, beside atMost: on the faces that would break it, the item becomes that one instead (a Staff of Striking's nonmagical quarterstaff, or a Staff of Power that keeps only its +2 as an item written with only that). In a fight its uses go and it strikes as the new item from then on, and the fight writes the stack back as that item, under its name and with no charges; outside a fight and as the inventory spends a charge, the stack changes the same way. The item named must be another item of the ruleset, in whichever catalog file it is.

Charges spent on a hit (Capability API 1.273). A weapon's attack.spends lists up to four ways its holder may spend the item's charges once a blow with it has hit: each has a label, the charges it costs, an amount of dice and a flat part added to the blow with its own damage type (the weapon's when it names none), and optionally blow (only a melee or ranged blow), chargeStep (max more charges, each adding its amount again: a Staff of Striking's 1d6 force a charge, up to three) and onHit (up to two conditions the one hit takes, each with rounds, a save that keeps it off, or saveEnds: a Staff of Withering's Constitution save). In a fight each is offered to the holder at their own hit with that weapon, and no other, after the one hit has answered; its dice are rolled with the blow and doubled by its critical, and the item's last-charge die is rolled as for a use. The item holds charges.

Numbers fixed off whoever put a condition on (Capability API 1.274). A condition an entry applies may carry a value, a value reference read off the sheet of whoever applies it as it goes on (Heroism's { "abilityModFromField": "spellcasting_ability" }), and a combat condition's temporary gives its holder temporary points as each of their turns starts or ends (at): dice and flat, plus that value with value: true, and with lostWhenEnds what is left of them goes as the condition ends, unless the holder has more than it gave from something else. An aura's save.appliedDifficulty rolls its save against the save difficulty of whatever put the aura's condition on its holder, fixed as it went on (Antipathy/Sympathy's caster's spell save DC); its difficulty stays for an aura nothing put on. A save that ends a condition at: "damaged" may say bySource: rolled only on harm from whoever put the condition on (Sympathy's save when the target harms its holder). A condition's behavior.keepsIn keeps its holder, once within that distance of whoever put it on, from ever walking farther off (Sympathy's "can't willingly move away"). And an item's use may carry kindChoice as an entry's mechanics do (1.270), so a scroll of Antipathy/Sympathy names its kind as it is used.

Conditions held off rather than ended (Capability API 1.275). Beside whileSourceInSight, a combat condition's orSourceWithin (a distance in the ruleset's own units) keeps it holding while its holder stands that near whoever applied it, seen or not: out of sight and out of reach it is held off, still on its holder with its clock running, and it holds again the moment either is true (Antipathy's fright, within 60 feet or in sight). A combat condition's suppresses lists other conditions it holds off while it holds: what they do stops, they stay on, and they hold again once it ends (Calm Emotions' charm and fright, Mindless Rage's).

Teleports (Capability API 1.276). A catalog entry's mechanics.teleport, an item's use.teleport or a creature action's teleport, moves its user at once to a free place within distance (the ruleset's own units): no step between, so nobody gets a strike at them leaving, and a zone they land in catches them as walking in would. Only on a board, so it needs combat.distance; off a board an action that only teleports is not offered. With seen, only a place its user can see now (a wall, a fog or blindness that takes the eyes keeps the cells behind it off the list): 5e's Misty Step, { "distance": 30, "seen": true }. carries (1 to 8) takes that many willing creatures of its user's side, no bigger than its user, from within carriesWithin (touching when left out), and each lands as near its user as there is room: Dimension Door, { "distance": 500, "carries": 1, "carriesWithin": 5 }. A creature action with a teleport lands on the creature itself (a blink dog's Teleport). The option lists the cells it may go to as teleport.cells, and who may go along as teleport.carries; a choice names the cell as at and its company as carries. A teleport is never an area or a reaction.

Six conditions at once, and sight that truly sees (Capability API 1.277). applies holds up to 6 entries on a catalog entry's mechanics, an item's use and a creature action (4 before): Rage and Frenzy each add Mindless Rage's condition beside their four. And whileSourceInSight (with orSourceWithin beside it) now reads the holder's own sight, as an aura's orSeen does: a clear line on the board is still needed, and on top of it the holder must see its source with its eyes or senses, so blindness that takes the eyes, a fog that obscures, the dark beyond what it sees in, or a source unseen to it (invisible) all break it as a wall does.

Calm Emotions (Capability API 1.278). A save may say alliesMayFail: true (on a catalog entry's, an item use's or a creature action's save): a target on its user's own side lets it in and fails without rolling, and the log says so, while anybody else rolls as usual. A condition's effects may carry cannot-target-source-side: its holder points nothing at whoever put it on them or at anybody on their side, unless that side is the holder's own (then it keeps nobody off). endsWhen takes two more endings beside damaged and harmed-by-source-side, up to all four: attacked, an attack roll made at its holder by anybody, hit or miss (an action that hits without rolling is not one), and ally-harmed-in-sight, damage to anybody else on its holder's side that its holder sees (a clear line on the board and its own eyes or senses). And endsWhenHarmedFrom lists catalogs: harm to its holder from anything cast out of one of them, by anybody, a scroll's spell and a standing zone's included, ends it; harm is damage, or being the target of a harmful action, as for harmed-by-source-side, and casting the same condition on again refreshes it rather than ending it. Each of these waits until the step that caused it has finished. And a condition its holder's own active condition suppresses is no longer ended by an immunity that same condition gives: it is suspended, not cured, so a fright already on when a rage immune to fright begins comes back when the rage ends (5e's Mindless Rage), while new frights still cannot land.

Teleports out of the fight, seen passengers and smoke (Capability API 1.279). A teleport (on a catalog entry, an item use or a creature action) takes three more keys. leaves: true: it may take its user out of the fight altogether, a unicorn's mile, instead of to a cell; the choice then names no at (the menu shows a "Leave the fight" button), and its user and whoever goes along with it are gone alive (shown as "Left the fight", their health kept, and nothing brings them back). Off a board, leaving is the only place it goes, and anybody standing on its user's side may go along, since nothing measures who stands near. A party that is out of the fight with somebody of it gone this way has fled (the outcome fled, which ends the fight as fleeing does); an enemy gone this way is neither beaten nor still standing but got away, and the recap says so. The director's own creatures leave at a quarter of their health or less, taking whoever they may. carriesSeen: true (with carries): only those its user can see may go along, a unicorn's "willing creatures it can see". And smoke ({}, or { "pierced": [senses] }): a cloud stands on the cells its user left and the cells it lands in, obscuring as a zone's obscures does, from the moment it lands until the end of its user's next turn, the Cape of the Mountebank's smoke.

A teleport that strikes (Capability API 1.280). A creature's teleport may name one of its own actions as strike (its id): a blink dog's "Before or after teleporting, the dog can make one bite attack." Teleporting then lets that action follow once this turn for nothing (the menu says "Free, part of the same action"), and the menu also offers it the other way round, as "Bite, then Teleport" on the teleport's budget, after which the teleport follows once for nothing. Neither leads on to a third. The strike made first spends the teleport's uses and recharge along with its own, and is offered only while both are left. The strike is another plain action of the same creature: not the teleport itself, a sequence, another teleport, a reaction or something bought with points. Only a creature's teleport names one; a catalog entry's or an item use's is refused. In a fight that measures no distance a teleport goes nowhere, so nothing is paired. The director takes it too: a creature too far off to walk to its prey teleports beside it and bites in the same turn.

Draining blows (Capability API 1.281). A catalog entry's mechanics or a creature's action may carry drain: its user regains health equal to the damage the blow dealt to each target, after resistances, rounded down and never above its maximum, and nothing comes off the target's maximum (for that, see reducesMax). share (above 0, up to 1, all of it when left out) is how much of it comes back, and damageType counts only damage of that type: an aboleth's Psychic Drain is drain: {}, Vampiric Touch drain: { "share": 0.5, "damageType": "necrotic" }. Something that stops healing stops this too. A drain needs damage to give back, so one on an entry without an amount, on a heal, or on a creature action without damage is refused.

Bursts centred on their user (Capability API 1.282). An area (a catalog entry's or a creature action's) may say around: true: a burst of size centred on its user and never aimed. Everybody within size of the user is caught when it is used, friend and foe alike unless friendlyFire is false (a mending one only its user's own side), and never the user. A wall between them keeps a creature out, unless the area also says throughWalls: true: a mummy lord's Channel Negative Energy, "including ones behind barriers and around corners". In a fight without a board it catches everybody. It is pointed at nobody, so it works as a signature action bought between turns as much as on a turn. Only a single burst is centred on its user (no copies), throughWalls goes only with around, and an entry's burst around its user lands at once, so it leaves no zone. Channel Negative Energy is a creature action with signature: { "cost": 2 }, area: { "shape": "burst", "size": 60, "around": true, "throughWalls": true } and applies a condition with the effect cannot-heal for { "rounds": 1, "of": "source" }, until the end of the mummy lord's next turn. The director weighs one by whom it catches, as it weighs an aimed shape. A creature's burst around it that leaves a zone (a kraken's Ink Cloud) is laid over every cell within size of the creature, behind walls too when it says throughWalls, whether it is used on the creature's turn or bought between turns, and catches whoever its zone's triggers name there from then on.

Legendary moves (Capability API 1.283). A creature action with a signature cost may say move and nothing else it does: its maker walks between turns, picking a square on the board as a walk on its own turn does, on an allowance lent for that move alone, so its own turn's movement is untouched. move: { "share": 0.5 } is a share of its speed (a tarrasque "moves up to half its speed"), move: { "distance": 60 } a distance in the ruleset's own unit, and move: {} its whole speed; not share and distance both. It is struck at leaving somebody's reach as any walk is, and the window it was bought in is asked on once the strike lands. noOpportunity: true provokes nobody (a vampire "moves up to its speed without provoking opportunity attacks"). untouchable: true is a move nothing can harm or hold (a mummy lord's Whirlwind of Sand, { "distance": 60, "untouchable": true }): whatever holds its maker still lets go first, nobody strikes at it, and no zone or ground it crosses does anything to it. A creature held still, or with no speed, has nowhere to go with any other move. Nothing is offered off a board. The director buys one as it buys a teleport: to get clear of an enemy beside it when badly hurt, or to close on one when none is in reach.

Legendary casts (Capability API 1.284). A creature action with a signature cost may say casting and nothing else it does: between turns it offers each spell its maker could cast on its own turn with the action's budget, out of its spellcasting or its sheet's spells, named "Cast a Spell: Fireball" and so on. Each is aimed, paid and resolved exactly as on the creature's turn (targets, a cell for an area, a slot or a use spent as always), and the points are spent instead of the budget, so its own turn keeps every budget it had. casting: { "cantripsOnly": true } offers only cantrips (spells paid from no pool): a lich's Cantrip, signature: { "cost": 1 }. A sphinx's Cast a Spell is casting: {} with signature: { "cost": 3 }. Whatever the spell opens (a Counterspell, a reaction to being hurt by it) is answered as on a turn, and the window it was bought in is asked on once all of that has closed. The director buys one when the spell is worth the points, as it weighs any other signature action.

Moving after the action, and on one speed (Capability API 1.285). A signature action that does something (damage, an area, a save, a condition) may carry a move as well: what it does lands first, then its maker may move to a square the menu offered, picked with the action; picking none is a choice too, and a square it can no longer reach after what it did is not walked. A move may also name one way of moving with speed (walk, fly, swim, climb or burrow): its share is read off that speed alone, it moves by that way only, and a creature without that speed has nowhere to go. A dragon's Wing Attack is its burst around it (area: { "shape": "burst", "size": 10, "around": true }, its save and its prone) with move: { "share": 0.5, "speed": "fly" }: "The dragon can then fly up to half its flying speed." A move still carries no teleport, sequence, reaction or charge. The director flies off after the buffet when it is badly hurt beside an enemy, or closes on one out of its reach.

Light obscurement and the wind (Capability API 1.286). A zone's obscures, or a teleport's smoke, may say light: true: it then hides nobody and only lightly obscures whoever is seen through it or in it, as 5e's dim light or a Cape of the Mountebank's smoke does (the Engine knows who is seen that way; Hide and Perception read it). It may also say dispersed: true: a zone whose rule says disperses: true then ends it wherever the two meet, after every action, along with the concentration holding it. 5e's Fog Cloud is obscures: { "dispersed": true }, its Gust of Wind a zone with disperses: true; Darkness says neither, so the wind leaves it. A zone that only disperses needs no trigger.

Hiding, Search and Detect (Capability API 1.287). combat.hiding makes the hide standard action real: { "stealth": "stealth", "perception": "perception", "noisy": ["verbal"] } names two of combat.checks and, optionally, passive (10), lightly (5) and the combat.components that make noise. Hide throws stealth on the fight's own dice; its user is then hidden from each opponent that does not see them clearly (behind a wall, in a fog, invisible, or seeing them only lightly obscured) and whose passive Perception, passive plus its perception check and lightly less when it sees them only lightly obscured, the total meets. An opponent they are hidden from does not see them, so it cannot point anything at them, they attack it as somebody unseen, and combat.sight.unseenAttacks gives that attack advantage. Hiding lasts across turns, and ends: for everybody, once its user attacks, makes a contest, harms somebody or asks for a save, or uses anything needing a noisy component (a spell with no verbal component, or a fog set down, keeps them hidden); and for each opponent that comes to see them clearly or whose passive now beats the total, after any step and on every cell of a walk. The search standard action (add it to combat.standard; it needs combat.hiding) throws perception and finds, for the searcher, everybody hidden from them whose total it meets. A creature action with search: true does the same and nothing else: a legendary Detect is { "name": "Detect", "budget": "action", "signature": { "cost": 1 }, "search": true }. A creature reads both checks off its own checks. The director searches when every opponent it has is hidden from it, and uses a Detect between turns when any is. Off a board nobody can be hidden but by a condition that already hides them.

Ready (Capability API 1.288). combat.readying: { "budget": "reaction" } makes the Ready action real: for each option its user could take with their standard budget now (an attack, a spell, a creature action) and for a walk, the menu offers two entries, readied for when an opponent comes within reach (comes) or for when one acts (acts). Taking one spends the standard budget and holds that option until the start of its user's next turn. When an opponent's walk brings it, on any step, to where the held option could be pointed at it (and its holder sees it), or an opponent finishes anything it does there, a window asks the holder, who takes the option called readied with budget (5e's reaction) or lets it go and is not asked again on that walk. A held walk goes as far as its holder's whole speed reaches, and leaving reach on it gives opportunity attacks as any walk does. With "concentrates": true (it needs combat.concentration) a spell is paid for as it is readied and held by concentration: going off it is not paid again, losing the concentration loses it, and one that never goes off stays spent. Readying anything else pays nothing until it goes off. 5e's is { "budget": "reaction", "concentrates": true }.

Slow dispersal (Capability API 1.289). A fog's dispersed may be { "after": N } instead of true: a wind that reaches it then ends it only once it has blown on it N whole rounds running, counted from the turn it first reached it. A wind that stops reaching it before then, moved, ended or gone, starts the count over when one reaches it again. 5e's Stinking Cloud, which a strong wind such as Gust of Wind disperses after 1 round, is "obscures": { "dispersed": { "after": 1 } }.

Looking for the hidden, weighed (Capability API 1.290). A check of the fight's read off a skill ({ "skillMod": "stealth" }) now counts as that skill's check on its throw, so a change narrowed by skills to it applies on Hide, Search and contests: heavy armor's disadvantage on Stealth, Pass without Trace's +10, Eyes of the Eagle's advantage on Perception. combat.hiding.passiveMode (5e's 5) is added to a passive Perception that has advantage and taken off one that has disadvantage; without it a passive reads no mode. A change { "to": "checks-taken", "skills": ["perception"], "mode": "disadvantage" } puts that mode on checks made to find its holder, both an opponent's passive and its Search; it takes a mode and nothing else. 5e's Cloak of Elvenkind. When a Search finds that somebody changes how it is thrown for them, it throws again for them alone, and the log shows that throw too.

A creature's own ways of hiding and looking (Capability API 1.291). A creature action may be a permission, "standard": { "actions": ["disengage", "hide"] }: those standard actions (from combat.standard) taken with that action's own budget, as 5e's goblin's Nimble Escape is with the bonus action. With "while": "obscured" it holds only while the creature stands in a fog or haze, or in a fight fought in dim light or darkness: the shadow's Shadow Stealth. A creature's checkModes roll its own checks with some skills twice: { "skills": ["perception"], "mode": "advantage", "sight": true } only while it can see (Keen Sight), with "light": ["sunlight"] only in that light (Sunlight Sensitivity, with "mode": "disadvantage"), and with "terrain": ["snow"] only on a board tile or in a kind of place it names (Snow Camouflage; the places are the tactical generator's: snow, cave, mountains, water and the rest). A creature's passive is its printed passive Perception, used in place of hiding.passive plus its check (it needs combat.hiding). The light a fight is fought in comes from the scene's time of day: sunlight by day outdoors, dim light at dawn and dusk, darkness at night, and bright light that is not the sun's indoors or when the time says nothing the Engine reads. The light affects only what reads it (these modes, and while: "obscured"). Without combat.sight.darkness (1.294) it does not change who can see whom.

Somebody's own ways of hiding and of finding the hidden (Capability API 1.292). A catalog entry's mechanics.hiding (any kind, utility included) and a creature's hiding are permissions read where combat.hiding hides for real. "behindLarger": true lets its holder hide behind somebody at least one size larger standing between it and whoever looks, on every line between them (a halfling's Naturally Stealthy; needs combat.sizes). "still": 10 adds that much to its Stealth total as it hides, taken off again once it moves or takes an action (a ranger's Hide in Plain Sight). "slow": "advantage" rolls its Hide with advantage when it has moved no more than half its speed this turn (a thief's Supreme Sneak). "aware": { "within": 10, "lostWith": ["deafened"] } means nobody within that distance, in the ruleset's own unit, is hidden from it, unless it has one of those conditions (a rogue's Blindsense). A creature's "starts": 15 begins the fight hidden in plain sight with that total, from whoever's passive Perception does not beat it, whether they see it clearly or not, until it moves, and hides that way again with the Hide action (a gelatinous cube's Transparent).

A creature's own attack rolls rolled twice (Capability API 1.293). A creature's attackModes hold where its checkModes would: { "mode": "disadvantage", "sight": true, "light": ["sunlight"] } is 5e's Sunlight Sensitivity, disadvantage on its attacks while it can see and the fight is fought in sunlight. Each mode says where it holds, with sight, light or terrain. The mode joins every other advantage and disadvantage on the roll, so the two still cancel out.

The dark (Capability API 1.294). With combat.sight.darkness, the light a fight is fought in keeps eyes from seeing: { "seeIn": ["darkvision"], "pierced": ["truesight"], "carried": { "bright": 20, "dim": 20 } }. Nobody in darkness is seen, and nobody in dim light is seen clearly, except by a sense of seeIn within its range, which sees darkness as dim light and dim light as bright, or by a blind sense or one of pierced within its range, which see whatever the light. What lights the dark: carried, the light everybody fighting from a sheet carries unless a sense of seeIn reaches for them (a torch); light on a condition (the Light cantrip), on an item's worn or carried effect (a lantern), or on a creature (bandits with torches, a fire elemental). Each is { "bright": N, "dim": N } in the ruleset's own distance: bright light that far, dim light as far again. Walls keep light out, and somebody struck down sheds none. Where the dark is real, everything that reads the light reads it where somebody stands: who sees whom (attacks at the unseen, hiding, a creature you can see), standing obscured (while: "obscured"), and a creature's checkModes and attackModes. A fight in a cave or a dungeon is fought in darkness at any hour.

Putting a light out and lighting it again (Capability API 1.295). Whoever carries the carried light has a switch on their menu for it, named by its label ("Torch"; "Light" when it says none). It costs its budget where it names one, and is otherwise free once a turn. A light that is out sheds nothing, so its holder may go unseen in the dark; lit again, they are seen, and found if they were hiding. An item with a toggle sheds the light of its effect only while it is switched on, as a hooded lantern does.

Lights switched by creatures and items (Capability API 1.296). A creature action with "sheds": { "bright": 10, "dim": 10 } sets the light its user sheds from then on, and "sheds": "out" puts it out. It does nothing else and points at nobody: the magmin's Ignited Illumination is two such actions on its bonus action, and a will-o'-wisp's Variable Illumination is one action for each reach. A creature with "unlit": true begins the fight with its light out, which needs one of its actions to light it. An item's toggle.offLight is the light it sheds while switched off, in place of its effect's: a hooded lantern with its hood down sheds `{ "bright": 0, "dim"