Skip to content

Encounter Calculator Options and Usage

Dice Monster currently uses an MCDM-style CR budget calculator for encounter difficulty.

The active calculator returns:

  • difficulty tier (Easy, Medium, Hard, Deadly)
  • CR cap guidance for the party level
  • budget usage metadata used by the encounter UI

The encounter list and preview surfaces this difficulty automatically based on party setup and monster groups.

Difficulty is derived from:

  • average party level
  • number of players
  • each monster group’s CR
  • monster role handling (including special handling for minions and solo monsters)
  1. Go to Encounters.
  2. Create a new encounter and select a campaign you own.
  3. Confirm or adjust party level and player count.
  4. Add monster groups.
  5. Use the displayed difficulty label to tune encounter pressure.

The run encounters list supports:

  • search by name
  • filter by average player level
  • Start Encounter opens initiative setup and restarts the encounter run state.
  • Resume jumps back into an active running encounter.
  • If no run is active, Resume shows a warning and keeps your encounter data unchanged.

Campaign members can see an Encounter Live button on their character sheet while the DM has an encounter open. The sidebar shows the initiative order, active turn, round, monster AC, conditions, reaction-used state, concentration state, exact player character HP, and a redacted health bar for monsters and minions.

Exact monster HP, minion counts, and full monster statblocks are not shown in the player live view. Player character HP comes from the character durable object and is visible to everyone in live encounter views. Monster and minion health bars are display-only and do not increase when the DM edits max HP or heals a creature; they only move down as the encounter runtime records new damage below the previously shown value. For drama, the final 10% remains visible until the creature dies.

Encounter run state (initiative, turn/round, ability usage tracking, etc.) is stored separately from your encounter definition.

To avoid keeping inactive run state indefinitely, encounters with no activity for 31 days may have their run state cleared. If that happens, Resume will no longer work for that run and you can use Start Encounter to begin a fresh run.

Only one difficulty model is currently wired in the app.

Support for multiple selectable calculators is planned, but not yet available in the UI.

Calculator calls now go through a strategy interface in @repo/dnd-lib/difficulty-calculators.

  • getEncounterDifficultyCalculator() returns the active strategy.
  • setEncounterDifficultyCalculator(calculator) swaps the active strategy.
  • resetEncounterDifficultyCalculator() restores the default MCDM strategy.

Future calculators can plug in by implementing EncounterDifficultyCalculator and registering it with setEncounterDifficultyCalculator(...).