Skip to main content

/ DaggerheartRoll Command

Screenshot 2026-05-22 113045

The Pieces of an Argument

Every /daggerheartRoll Argument is built from a small vocabulary of keys. You only include the keys you need for the roll at hand. These key terms, in the table below, are provided here so you can simply double click and plug them into your own arguments to build your custom roll!

NOTE: Don't forget to start your argument with a { and end it with a } in addition, each key term is separated by a comma ,

Below this table are tons of Examples of how these key words fit together to build our unique rolls for Daggerheart!

Key

Purpose

"rollType": "action"
"rollType": "gm"
"rollType": "damage"

Which kind of roll: PC action, adversary attack, or damage

"traitName": "Agility"
"traitName": "Strength"
"traitName": "Finesse"
"traitName": "Instinct"
"traitName": "Knowledge"
"traitName": "Presence"

The PC trait used for the roll

"useSpellcastingTrait": true

Use the PC's spellcasting trait instead of a named one

"difficulty": 10

The target number the roll must meet (action and GM rolls). Replace 10 with the actual difficulty

"modifier": 0

A flat numeric bonus or penalty added to the roll. Replace 0 with the actual modifier (positive or negative)

"advantageState": "advantage"
"advantageState": "disadvantage"

Adds advantage or disadvantage to any roll

"damageType": "physical"
"damageType": "magic"
"damageType": "stress"
"damageType": "direct physical"
"damageType": "direct magic"

The type of damage being dealt

"damageDieSize": "d8"

PC weapons: single die size (proficiency multiplies the count automatically). Replace d8 with the actual die size

"damageDice": {"count": 2, "size": "d8"}

Adversaries/items: explicit dice block. Replace 2 with the actual count and d8 with the actual die size

"staticDamageValue": 5

Fixed damage that doesn't roll dice (typically minions). Replace 5 with the actual value


Action Rolls

An Action Roll is a PC's standard duality-dice roll (2d12 Hope/Fear) against a difficulty.

Action Roll Using a Specific Trait

Written Example: "Make an Agility Roll (10)"

Argument:

{"rollType": "action", "traitName": "Agility", "difficulty": 10, "modifier": 0}

Written Example: "Make a Strength Roll (14) with +1"

Argument:

{"rollType": "action", "traitName": "Strength", "difficulty": 14, "modifier": 1}

Action Roll Using the Spellcasting Trait

Written Example: "Make a Spellcast Roll (12)"

Argument:

{"rollType": "action", "useSpellcastingTrait": true, "difficulty": 12, "modifier": 0}

Written Example: "Make a Spellcast Roll (14) with +1"

Argument:

{"rollType": "action", "useSpellcastingTrait": true, "difficulty": 14, "modifier": 1}

Action Roll With Advantage or Disadvantage

Written Example: "Make an Agility Roll (10) with advantage"

Argument:

{"rollType": "action", "traitName": "Agility", "difficulty": 10, "modifier": 0, "advantageState": "advantage"}

GM Rolls

A GM Roll is the adversary's "attack roll" — a single d20 plus a modifier against the PC's Evasion (the target difficulty).

Written Example: "ATK: +3"

Argument:

{"rollType": "gm", "difficulty": 10, "modifier": 3}

Written Example: "ATK: +0 with advantage"

Argument:

{"rollType": "gm", "difficulty": 10, "modifier": 0, "advantageState": "advantage"}

Note: difficulty defaults to 10 for GM rolls — the GM will simply input the PC's Evasion when the prompt populates.


Damage Rolls

Damage Rolls are how every weapon, spell, attack, and triggered effect deals harm.

PC Damage (Proficiency-Scaled)

Use damageDieSize for PC weapons. The PC's proficiency multiplies the die count automatically.

Written Example: "d8 phy"

Argument:

{"rollType": "damage", "damageType": "physical", "damageDieSize": "d8", "modifier": 0}

Written Example: "d10+3 phy"

Argument:

{"rollType": "damage", "damageType": "physical", "damageDieSize": "d10", "modifier": 3}

Written Example: "d6+1 mag"

Argument:

{"rollType": "damage", "damageType": "magic", "damageDieSize": "d6", "modifier": 1}

Adversary Damage (Fixed Dice Count)

Use damageDice with an explicit count and size when the dice count doesn't scale with proficiency (NPC stat blocks, item-defined attacks, etc.).

Written Example: "2d8+3 phy"

Argument:

{"rollType": "damage", "damageType": "physical", "damageDice": {"count": 2, "size": "d8"}, "modifier": 3}

Written Example: "4d20 mag"

Argument:

{"rollType": "damage", "damageType": "magic", "damageDice": {"count": 4, "size": "d20"}, "modifier": 0}

Written Example: "1d12+2 phy"

Argument:

{"rollType": "damage", "damageType": "physical", "damageDice": {"count": 1, "size": "d12"}, "modifier": 2}

Static Damage (No Dice)

Used for minions and effects that deal a fixed amount.

Written Example: "5 phy"

Argument:

{"rollType": "damage", "damageType": "physical", "staticDamageValue": 5, "modifier": 0}

Written Example: "12 phy"

Argument:

{"rollType": "damage", "damageType": "physical", "staticDamageValue": 12, "modifier": 0}

Stress Damage

Used when an effect makes a target mark Stress dice instead of HP.

Written Example: "1d4+1 Stress"

Argument:

{"rollType": "damage", "damageType": "stress", "damageDice": {"count": 1, "size": "d4"}, "modifier": 1}

Direct Damage (Bypasses Armor)

Use "direct physical" or "direct magic" for damage that cannot be reduced by armor.

Written Example: "8d10 direct mag"

Argument:

{"rollType": "damage", "damageType": "direct magic", "damageDice": {"count": 8, "size": "d10"}, "modifier": 0}

Written Example: "3d6 direct phy"

Argument:

{"rollType": "damage", "damageType": "direct physical", "damageDice": {"count": 3, "size": "d6"}, "modifier": 0}

Attack + Damage as a Pair

Most weapon and spell entries pair an attack roll and a damage roll. The attack rolls first; on a successful hit, the damage rolls right after.

Don't forget the Category!
For the damage to automatically tail onto its related attack roll, select Damage in the Category field of the action's Modal. Without this, the damage roll won't fire after a successful hit — you'll have to trigger it manually.

Screenshot 2026-05-22 132029

Example: A PC Weapon (Broadsword, d8 phy, Agility)

Attack action Argument:

{"rollType": "action", "traitName": "Agility", "difficulty": 10, "modifier": 0}

Damage action Argument:

{"rollType": "damage", "damageType": "physical", "damageDieSize": "d8", "modifier": 0}

Example: A PC Spell (Arcane Bolt, d6+1 mag)

Attack action Argument:

{"rollType": "action", "useSpellcastingTrait": true, "difficulty": 10, "modifier": 0}

Damage action Argument:

{"rollType": "damage", "damageType": "magic", "damageDieSize": "d6", "modifier": 1}

Example: An Adversary Attack (1d12+2 phy, +3 attack)

Attack action Argument:

{"rollType": "gm", "difficulty": 10, "modifier": 3}

Damage action Argument:

{"rollType": "damage", "damageType": "physical", "damageDice": {"count": 1, "size": "d12"}, "modifier": 2}

Standalone Hope & Fear Dice (/roll)

Sometimes you just want to roll a single Hope or Fear die outside the context of an action roll. Use the plain /roll command:

  • /roll 1d12rdh — a single Hope die

  • /roll 1d12rdf — a single Fear die

These rolls can be manipulated with standard dice modifiers:

Modifier

Effect

kh1

Keep highest 1 die

kl1

Keep lowest 1 die

dh1

Drop highest 1 die

=N

Equal to N (success check)

>N

Greater than N

<N

Less than N

>=N

Greater than or equal to N

<=N

Less than or equal to N

For example, /roll 2d12rdhkh1 rolls two Hope dice and keeps the highest, while /roll 1d12rdh>=8 rolls a Hope die and checks for a success of 8 or higher.


Quick Reference Cheat Sheet

Written Example

Argument

Agility Roll (10)

{"rollType": "action", "traitName": "Agility", "difficulty": 10, "modifier": 0}

Spellcast Roll (12)

{"rollType": "action", "useSpellcastingTrait": true, "difficulty": 12, "modifier": 0}

+3 attack (adversary)

{"rollType": "gm", "difficulty": 10, "modifier": 3}

d8 phy (PC weapon)

{"rollType": "damage", "damageType": "physical", "damageDieSize": "d8", "modifier": 0}

2d6+3 phy (adversary)

{"rollType": "damage", "damageType": "physical", "damageDice": {"count": 2, "size": "d6"}, "modifier": 3}

5 phy (static)

{"rollType": "damage", "damageType": "physical", "staticDamageValue": 5, "modifier": 0}

1d4+1 Stress

{"rollType": "damage", "damageType": "stress", "damageDice": {"count": 1, "size": "d4"}, "modifier": 1}

8d10 direct mag

{"rollType": "damage", "damageType": "direct magic", "damageDice": {"count": 8, "size": "d10"}, "modifier": 0}

Any roll with advantage

add "advantageState": "advantage" to any Argument


Common Gotchas

  • damageDieSize vs damageDicedamageDieSize: "d8" is for PC weapons where proficiency multiplies the count. damageDice: {"count": 2, "size": "d8"} is for everything else.

  • Stress is a damage type — Stress dice are rolled with rollType: "damage", not a separate roll type. Just change the damageType to "damageType": "stress".

  • Lowercase damage types"physical", not "Physical". Same for "magic", "direct physical", "direct magic", "stress".

  • modifier is always required, even when zero — Include "modifier": 0 rather than omitting the key.

  • Spellcasting overrides trait selection — When useSpellcastingTrait: true is present, omit traitName. The two are mutually exclusive.

Did this answer your question?