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)