Rules Reference: Resources
Resource rules give an item (or the character) a pool to spend: charges, dice, or combat-only mana. Pools can be consumed by item activations and refilled on rests or other events.
Shared fields
Every rule also has a Label, Identifier, Condition, Priority, a Disabled toggle, and a Suppress activation card setting. Those are explained once in Rules Builder Basics.
Charge Consumer
Spend charges from an item or actor pool when this rule’s owner is activated.
| Field | What it does | Options | Default |
|---|---|---|---|
| poolIdentifier | Charge pool picker | Charge pool picker | None |
| poolScope | Text | item, actor | item |
| cost | Number or formula | Number or formula | 1 |
Charge Pool
Define a refillable pool of charges (per item or actor) with one or more recovery triggers.
| Field | What it does | Options | Default |
|---|---|---|---|
| Scope | Where the pool lives. "Item" pools live on this item; "Actor" pools live on the actor and can be shared by features that reference the same identifier. | item, actor | item |
| Max charges | Capacity formula. Flat (3), formula (@key), or actor data (@strength). | Number or formula | 1 |
| Die size | Optional. Set when charges are spent by rolling a die (e.g. Combat Dice). Leave blank for plain counters. | d4, d6, d8, d10, d12, d20 | None |
| Initial | Whether the pool starts full or empty when first granted. | max, zero | max |
| Recoveries → Trigger | Event that drives this recovery (rest type, encounter event, hit, etc.). | safeRest, fieldRest, onHit, onCriticalHit, encounterStart, encounterEnd, onWound, onTurnStart, onTurnEnd, onKill, onBloodied, onInitiativeRolled | safeRest |
| Recoveries → Mode | How the value applies: "add" (gain N), "set" (set to N), or "refresh" (fill to max). | add, set, refresh | add |
| Recoveries → Value | Amount used by the mode. Flat or formula. Ignored when mode is "refresh". | Number or formula | 1 |
Example: Wand of Scorching Rays. A wand with 3 charges that refills on a safe rest.
- Label →
Wand Charges - Scope →
item - Max charges →
3 - Initial →
max - Recoveries → one entry: Trigger →
safeRest, Mode →refresh
The Label names the pool wherever it is shown. A pool by itself never spends charges automatically; pair it with a Charge Consumer rule (or a Pool effect on the item's activation) to spend charges when the wand is used. Max charges takes formulas too: @key + 1 scales with the character's key stat.
Combat Mana
Grant a mana resource on a combat trigger and clear it on a configurable event.
| Field | What it does | Options | Default |
|---|---|---|---|
| formula | Number or formula | Number or formula | 0 |
| resource | Text | Text | mana |
| trigger | Text | Text | initiativeRoll |
| clearOn | Text | Text | combatEnd |
Dice Consumer
Spend or auto-apply dice from an item or actor dice pool. "Manual" mode prompts the player at activation; "Auto-bonus" adds every rolled die face to qualifying attacks without consuming the pool.
| Field | What it does | Options | Default |
|---|---|---|---|
| poolIdentifier | Dice pool picker | Dice pool picker | None |
| poolScope | Text | item, actor | item |
| mode | Text | manual, autoBonus | manual |
| cost | Number or formula | Number or formula | 1 |
| bonusOnAttackDelivery | Text | melee, ranged, any | None |
| effectFormula | Number or formula | Number or formula | None |
| Effect type | What a manual spend's effect roll produces. "Generic" posts the total to chat; "Damage Reduction" also banks the total as a one-shot reduction applied to the next damage taken. | generic, damageReduction | generic |
| Selection outcome | What happens to the dice the player picks. "Consume" removes them from the pool; "Maximize" leaves them in place and raises each to the die's highest face, limited to the cost. | consume, maximize | consume |
Example: That all you got?! A reaction that spends Fury Dice to soak damage.
- Label →
That all you got?! - Pool identifier →
fury - Mode →
manual - Cost →
1 - Effect formula →
(@strength + @dexterity) * @n - Effect type →
damageReduction - Selection outcome →
consume
A consumer is what makes a dice pool do something. The pool stores the dice; the consumer decides how they are used.
Mode picks between the two shapes:
manualputs the player in charge. Activating the item opens the dice panel on their sheet with this feature already selected, they pick which dice to use, and confirming applies the result. Use this for anything the rules text describes as a choice.autoBonusis passive: every face in the pool is added to qualifying attacks automatically and nothing is spent. Attack delivery narrows it tomelee,ranged, orany. This is how a pool that snowballs damage works.
Several consumers can share one pool. A Berserker's Fury Dice carry an autoBonus consumer for melee damage and separate manual consumers for the features that spend them, all pointing at the same fury identifier.
Effect formula is evaluated when the player confirms, with two references filled in from their picks: @n is how many dice they chose and @sum is the total of those dice faces. Effect type decides what the result does: generic posts the total to chat and leaves the rest to the table, while damageReduction also banks the total so it is subtracted from the next damage the character takes.
Selection outcome decides what happens to the dice the player picked:
consumeremoves them from the pool. This is the normal case, and it needs an effect formula to be worth showing.maximizeleaves them in the pool and raises each one to the die's highest face. Use it for a feature that changes a die rather than spending it. No effect formula is needed, dice already showing their highest face are not offered, and the number of picks is limited by Cost, so a cost of1gives the player exactly one choice.
Dice Pool
Define a refillable pool of rolled dice (each die stores its rolled face). Used for snowballing damage pools (Fury Dice) and rolled resources (Judgment Dice).
| Field | What it does | Options | Default |
|---|---|---|---|
| Scope | Where the pool lives. "Item" pools live on this item; "Actor" pools live on the actor and can be shared by features that reference the same identifier. | item, actor | item |
| Die size | Size of each die stored in the pool. | d4, d6, d8, d10, d12, d20 | d4 |
| Max dice | Maximum number of dice the pool can hold. Flat (3), formula (@key), or actor data (@strength). | Number or formula | 1 |
| Initial | Whether the pool starts full (pre-rolled to max) or empty when first granted. | max, zero | max |
| Refills → Trigger | Event that drives this refill (rest type, encounter event, taken damage, etc.). | safeRest, fieldRest, onHit, onCriticalHit, encounterStart, encounterEnd, onWound, onTurnStart, onTurnEnd, onKill, onBloodied, onAttacked, onCritReceived | safeRest |
| Refills → Mode | How the value applies: "add" (roll N new dice), "set" (rebuild pool to N), or "refresh" (fill to max). | add, set, refresh, setIfEmpty, clear | add |
| Refills → Value | Amount used by the mode. Flat or formula. Ignored when mode is "refresh". | Number or formula | 1 |
| Refills → Condition | Optional condition tested when the trigger fires (e.g. self: raging). Leave empty to always apply. | Condition | None |
Example: Fury Dice. The pool a Berserker builds up while Raging.
- Label →
Fury Dice - Scope →
item - Die size →
d4 - Max dice →
@key - Initial →
zero - Refills → one entry: Trigger →
onTurnStart, Mode →add, Value →1, Condition →{ "self": "raging" }
A dice pool holds rolled die faces, not a count: each die keeps the number it came up with, and features read those numbers. Max dice takes formulas, so @key grows the pool as the character's key stat does.
Initial decides what the pool looks like the moment the feature is granted: max pre-rolls a full pool, zero starts it empty and waits for a refill or an activation to put dice in.
Each Refill entry says when dice come back and how many:
- Mode
addrolls new dice up to the maximum,setrebuilds the pool to exactly that many,refreshtops it up to full,setIfEmptyonly acts when the pool is empty, andclearempties it. - Value accepts formulas plus two pool-specific references:
@poolMaxand@poolCurrent. - Condition is optional and is checked at the moment the trigger fires, so state that changes mid-combat works correctly.
{ "self": "raging" }on anonTurnStartrefill means the die only arrives on turns where the character is actually Raging.
Not every trigger in the list is wired up yet. The ones that fire today are onTurnStart, onTurnEnd, onAttacked, onCritReceived, and encounterEnd. The others are accepted but never fire, so avoid building a feature that depends on them.
A pool by itself is only storage; it never spends or grants anything. Pair it with a Dice Consumer rule to spend from it or add its faces to attacks, and use Modify Pool on a later feature to grow the die size, raise the maximum, or add more refill triggers.
Modify Consumer
Augment the effect formula of dice-spend consumers targeting a pool (by identifier). Typically attached to a feature that improves how another feature spends its dice.
| Field | What it does | Options | Default |
|---|---|---|---|
| Pool identifier | The identifier of the pool whose consumers to modify (e.g. fury). | Dice pool picker | None |
| Pool scope | The scope of the pool whose consumers to modify. Must match the pool: identifiers are only unique within a scope. | item, actor | item |
| Effect type filter | Only modify consumers with this effect type. Leave blank to modify every consumer on the pool. | , generic, damageReduction | None |
| Append formula | Appended to matching consumers' effect formula as "+ (...)". Spend tokens @n (dice spent) and @sum (sum of spent faces) are available. | Number or formula | None |
Example: Stone's Resilience. A subclass feature that improves how another feature spends Fury Dice.
- Label →
Stone's Resilience - Pool identifier →
fury - Pool scope →
item - Effect type filter →
damageReduction - Append formula →
@sum
Modify Consumer edits the effect formula of Dice Consumer rules that target a pool, without touching the feature those consumers live on. It is the consumer counterpart of Modify Pool: use it when a later feature makes an earlier spend better.
Pool scope must match the pool you are aiming at, the same way a Dice Consumer's does. Identifiers are only unique within a scope, so an item-scoped fury and an actor-scoped fury are different pools, and a modifier set to the wrong scope simply does nothing.
The append is added to the matching formula as a sum, so a consumer reducing damage by (@strength + @dexterity) * @n becomes (@strength + @dexterity) * @n + (@sum). The same references are available as in the consumer itself: @n for the number of dice spent and @sum for their total.
Effect type filter narrows which consumers are touched. Left blank it modifies every consumer on the pool; set to damageReduction it only improves spends that soak damage, leaving other features that spend from the same pool alone. That distinction matters on a shared pool, where one feature spends for damage reduction and another for movement.
If several Modify Consumer rules match, each one appends in rule Priority order. The rule's Predicate gates it in the usual way.
Modify Pool
Override or scale an existing dice or charge pool (by identifier): typically attached to a level-up feature to upgrade die size or expand max.
| Field | What it does | Options | Default |
|---|---|---|---|
| Pool type | Which subsystem to target: dice pools (rolled faces) or charge pools (counters). | dice, charge | dice |
| Pool identifier | The identifier of the pool to modify (e.g. fury, judgment, combat-dice). (The input changes with the other field values.) | Dice pool picker | None |
| Die size override | Replace the target pool's die size. Leave blank to keep it unchanged. | d4, d6, d8, d10, d12, d20 | None |
| Max delta | Signed amount added to the target pool's max (e.g. "+1", "-1", "+@level"). Leave blank to keep max unchanged. | Number or formula | None |
| Minimum face | Dice rolled into the target pool below this value are raised to it. Leave blank for no floor. Ignored for charge pools. | Number | None |
| Additional refills → Trigger | Event that drives this refill (rest type, encounter event, taken damage, etc.). | safeRest, fieldRest, onHit, onCriticalHit, encounterStart, encounterEnd, onWound, onTurnStart, onTurnEnd, onKill, onBloodied, onAttacked, onCritReceived | safeRest |
| Additional refills → Mode | How the value applies: "add" (roll N new dice), "set" (rebuild pool to N), or "refresh" (fill to max). | add, set, refresh, setIfEmpty, clear | add |
| Additional refills → Value | Amount used by the mode. Flat or formula. Ignored when mode is "refresh". | Number or formula | 1 |
| Additional refills → Condition | Optional condition tested when the trigger fires (e.g. self: raging). Leave empty to always apply. | Condition | None |
Example: Intensifying Fury. A level-up feature that upgrades the Berserker's existing Fury Dice.
- Label →
Fury Dice to d6 - Pool type →
dice - Pool identifier →
fury - Die size override →
d6 - Predicate →
{ "level": { "min": 6 } }
Modify Pool changes a pool that some other feature created, matched by its identifier. This is how progression works without editing the original feature: the level 1 item defines the pool, and each later item carries a modifier that upgrades it. Put one modifier per breakpoint on the same feature, each with its own level predicate, and give the later ones a higher Priority so they win.
The fields are all optional; leave blank the ones you are not changing.
- Die size override replaces the pool's die (
d4tod6and so on). Dice already sitting in the pool keep the number they rolled. - Max delta is a signed formula added to the maximum:
+1,-1,+@level. - Minimum face raises any die rolled into the pool that comes up below it. A value of
6on a d12 pool means every new die is at least a 6. It applies to refills, activation rolls, and the initial fill, but not to a value typed in by hand on the sheet. When several modifiers set one, the highest wins. - Additional refills contributes refill entries to the target pool, in the same shape the pool's own refills use. This lets the feature that grants a new trigger carry it, instead of the original pool rule having to know about every later feature.
The rule's own Predicate gates whether the modifier applies at all, so it is the right place for level gates. A condition that flips during play (like being Raging) belongs on the refill entry's own Condition instead, because that is checked when the trigger fires rather than when the pool is built.