Fate and Fudge dice

Symbolic faces, Fate values, and system notation.

Notation and API

fate() rolls four dice by default in a mixed batch. fate(6) and fate(dice=6) change the count; dice must be a positive integer. For TypeScript integration, use rollFateDice({ dice: 4 }, options) or omit its first argument.

fate()
fate(4)
fate(dice=6)
import { rollFateDice } from '@erpg/dicecore/systems/fate'
const roll = rollFateDice({ dice: 4 }, { seed: 'fate-42' })
console.log(roll.total, roll.dice.map(die => die.fateValue))

Faces and scoring

The API rolls physical d6 dice to preserve the 3D face. Faces 1–2 are minus (−1), 3–4 blank (0), and 5–6 plus (+1). total sums fateValue and ranges from −N to +N. Each die has profileId: 'fate-df', a rawValue between 1 and 6, faceKey, symbols, and fateValue.

Generic dF notation also produces −1/0/+1, but its face is already converted. Use the Fate API for a faithful physical display. baseRoll is full by default; { detail: 'compact' } returns a summary without groups, events, or output while preserving semantic dice in roll.dice. Seed/replay follows the Core contract.

Try the examples

Try fate() · Try fate(4) · Try fate(dice=6)