Reroll Mechanic
Phase 2 feature. Notation for automatic rerolls on specified die values. Binds to individual dice, not expressions.
Notation
| Notation | Description | Example |
|---|---|---|
dXR | Reroll indefinitely on default value (1) | d20R, 4(d6R) |
dXR[values] | Reroll indefinitely on specified values | d6R[1..2], d20R[1,19,20] |
dXr | Reroll once on default value (1) | d20r, 4(d6r) |
dXr[values] | Reroll once on specified values | d6r[1..2] |
Capital R = reroll indefinitely. Lowercase r = reroll once.
Binding & Precedence
Reroll binds to the individual die definition, not the expression. Binding order:
- Die definition + reroll —
d6R[1..2],d20r - Keep modifier —
4(d6R[1..2])kh3 - Crit modifier —
4(d6R[1..2])kh3c - Arithmetic modifier —
4(d6R[1..2])kh3+5 - Flow operator —
4(d6R[1..2])kh3+5 -> ...
The reroll executes on each individual die roll before any keep/crit/arithmetic logic sees the result.
Examples
Halfling Lucky (D&D 5e)
Halfling rolls of 1 on a d20 are rerolled once:
d20r
Or explicit: d20r[1]
Composed with advantage/disadvantage:
(<adv>?2(d20r)kh:(<dis>?2(d20r)kl:(d20r)))
If <adv> is true, roll 2d20 each with reroll-once, keep highest. If <dis> true, keep lowest. Otherwise just a single d20 with reroll-once.
Result: Halfling gets Lucky on the advantage roll, the disadvantage roll, or both.
Shadowrun Reroll (All Ones)
Reroll all 1s indefinitely on a pool of d6s:
12(d6R[1])
Roll 12 six-sided dice, each one that comes up 1 is automatically rerolled (repeat until not 1). Then sum the pool.
Mixed Rerolls
Weapon die with indefinite reroll on 1, but keep-highest also triggers:
4(d6R[1])kh3
Roll 4d6 with each 1 being rerolled indefinitely, then keep the highest 3 results.
Composition with Flows & Named Parameters
Reroll works seamlessly with conditional flows:
d20r+5 -> (<smite>?2d8R[1]:d8R[1])+3
Attack: d20 with reroll-once, plus 5. Damage: either 2d8 (with reroll-once) or 1d8 (with reroll-once), plus 3, depending on whether smite is active.
Default Reroll Value
If no value is specified, reroll defaults to 1:
d6R=d6R[1]d20r=d20r[1]
This matches the most common use case (reroll on fumble).
Grammar
Reserved in Phase 1 as future syntax. Notation Spec formally reserves R and r for Phase 2, preventing conflicts with other operators.
See also: Notation Spec, Roadmap, Exploding Dice, Custom Face Values