Daggerheart dice rolls
Hope and Fear Duality Dice, criticals, and difficulty.
Notation and inputs
daggerheart() rolls exactly two d12 dice: Hope and Fear. Optional integer modifier (default 0) adds to the total. Optional difficulty is an integer ≥0; omit it when secret. Short forms: dh() and dagger(2,15). The second positional argument is always difficulty.
daggerheart()
dagger(2,15)
daggerheart(modifier=2,difficulty=15)
import { rollDaggerheart } from '@erpg/dicecore/systems/daggerheart'
const roll = rollDaggerheart({ modifier: 2, difficulty: 15 }, { seed: 'duality-42' })
console.log(roll.hopeDie.rawValue, roll.fearDie.rawValue, roll.total, roll.outcome)
Duality and outcome
dualityTotal sums both faces; total adds the modifier. Equal faces set duality to critical and outcome to critical-success, with succeeds: true even without a difficulty. Otherwise, the higher face determines hope or fear. With difficulty, total >= difficulty determines success; without it, succeeds is null.
| Condition | outcome |
|---|---|
| Equal faces | critical-success |
| No difficulty, Hope higher | pending-with-hope |
| No difficulty, Fear higher | pending-with-fear |
| Success with Hope/Fear | success-with-hope / success-with-fear |
| Failure with Hope/Fear | failure-with-hope / failure-with-fear |
Dice have daggerheart-hope-d12 and daggerheart-fear-d12 profiles, with faceKey and symbols for rendering.
Try the examples
Try daggerheart() · Try dagger(2,15) · Try daggerheart(modifier=2,difficulty=15)