Skip to main content

The Roll Command Action

Roll Command is an action step that rolls dice using the same notation as the /roll command. It also supports conditional rolls, levels of success, and configurable re-rolls.

This article covers the options. For the notation itself (dice, custom dice, $attribute, $skill, $tracker, $prompt, $current, success counting), see The /roll Command.

Adding a Roll Command step

  1. Open the action editor for a new or existing action.

  2. Set Type to Roll Command. It's the first option in the list.

  3. Type your roll into the Roll Command field, e.g. 2d6+[$attribute(might)].

If the action has more than one step, every Roll Command step after the first gets a Name field. That name becomes the title of the journal card for the step. Otherwise the card uses the action's name.

If any step includes a $prompt, the player sees a single prompt window before anything is rolled, with every prompt from every step in it. When two prompts share an id, the player is only asked once and both get the same answer:

[$prompt(value, {id: "bonus", name: "Bonus Dice"})] [$prompt(value, {id: "bonus"})]

Conditional Logic (Advanced)

Use Conditional Logic when the dice to roll depend on a number, such as rolling a different pool when a character has no dice at all.

When the action's first step is a Roll Command, a Conditional Logic (Advanced) switch appears in the action settings, just below Category. Turn it on and the Roll Command field becomes four fields:

Field

What it does

IF

An expression that works out to a number. Sheet values and prompts both work here, e.g. [$current]+[$prompt(value, {id: "bonus", name: "Bonus Dice"})]

IS

A comparison (Equal to, Not equal to, Greater than, Less than, Greater than or equal to, Less than or equal to) and the number to compare against

TRUE

The roll to make when the comparison holds

FALSE

The roll to make when it doesn't

The IF expression is read from the rolling character's sheet. If no character is rolling, it counts as 0.

Levels of Success

Levels of Success put a label like "Partial Success" or "Critical" at the bottom of the journal card, based on the roll.

Turn on Levels of Success under Options, then press + and pick the kind of row you want:

  • Result of Roll Total matches the roll's total. If the roll counts successes (for example 5d6>=6), it matches the number of successes.

  • Result of Die Face counts how many dice landed on a particular face. Enter the face in FACE. Dice dropped by keep/drop notation such as kl1 aren't counted.

Each row has a min and a max, and a label that shows on the card when the result falls in that range (min and max included). Leave max empty for no upper limit.

Rows are checked from top to bottom, and the last row that matches wins. Put the weakest outcome first and the strongest last. Here's a Blades in the Dark action roll:

Type

Face

Min

Max

Label

Die Face

1

1

Failure

Die Face

2

1

Failure

Die Face

3

1

Failure

Die Face

4

1

Partial Success

Die Face

5

1

Partial Success

Die Face

6

1

Success

Die Face

6

2

Critical

For a roll of 2, 4, and 6, the Failure, Partial Success, and Success rows match. Success is the last matching row, so the card shows Success. A roll with two 6s also matches the Critical row, so the card shows Critical.

− removes the last row. When a roll is re-rolled, its level of success is worked out again from the new dice.

Customize Re-Roll

Turn on Customize Re-Roll to put a re-roll button on the journal card and set its rules. Turn it off and new rolls from the action won't have the button.

Players can re-roll in two ways:

  • Pick dice: select dice on the card, then press the button. Only the selected dice are re-rolled.

  • Push the whole roll: press the button without selecting anything, and every eligible die is re-rolled.

Setting

What it does

Button Label

The text on the button, e.g. "Push". Left empty, it uses your system's default re-roll label.

Journal Card Suffix

Added to the level of success once any die has been re-rolled, e.g. "Success – Pushed".

Always Show Button

Shows the button before any dice are selected, so players can push the whole roll. When this is off, the button only appears once a die is selected.

Re-Roll Command

Extra dice added to the roll each time it's pushed, e.g. +1c(Stress)>=6. A leading + is allowed. A comparison at the end is ignored, because the original roll's success rule applies. Flat numbers are ignored because this field only adds dice. Sheet values are read when the button is pressed, not when the roll was made.

Re-Roll Command (Per Die)

Changes each re-rolled die. Start with an operator (-1, *2) to apply it to the new result, or write @die for the new result, e.g. (@die/2)+1. Results are rounded down and can't go below 1. Use max() or min() in the expression to set your own bounds.

Ignored Results

Faces that are never re-rolled when the whole roll is pushed. Type a number and press Enter to add it.

Disable Individual Re-Rolls

Players can't pick dice, and the button always pushes the whole roll.

Limit Re-Rolls

The maximum number of times the whole roll can be pushed. Leave it empty for no limit.

Toast

A message shown to the player who re-rolled. Supports Markdown.

Ignored Results and Limit Re-Rolls only apply when the whole roll is pushed. Dice picked by hand are not affected by either setting, so a player can re-roll a die showing an ignored face, or re-roll after the limit is reached.

Hide Roll Total

Turn on Hide Roll Total to show only the dice on the journal card, without the total.

Example: ALIEN skill roll with a push

This action rolls a skill with Base dice and Stress dice. A 6 on any die is a success, and the player can push once.

Roll Command

{[$skill(Ranged Combat, {useAttachedAttribute: true})]+[$prompt(value, {id: "bonus", name: "Bonus/Penalty Dice"})]}c(Base)>=6+{[$sheetData(alien_stress_current, {name: "Stress", defaultValue: 0})]}c(Stress)>=6

Levels of Success: Result of Die Face rows for faces 1 through 5 labelled "Failure", then a row for face 6 labelled "Success". Each row has a min of 1 and no max.

Customize Re-Roll

  • Button Label: Push

  • Journal Card Suffix: Pushed

  • Always Show Button: on

  • Re-Roll Command: +1c(Stress)>=6

  • Ignored Results: 1, 6

  • Limit Re-Rolls: 1

  • Toast: on, with a reminder to increase Stress by 1

Hide Roll Total: on

When the player pushes, every die that isn't a 1 or a 6 is re-rolled, one Stress die is added, the card label is recalculated and gets " – Pushed" on the end, and the player sees the Stress reminder.

Example: Blades in the Dark action roll

Blades players roll one d6 per point of their action rating. At zero dice, they roll two and keep the lowest.

Conditional Logic

  • IF [$current]+[$prompt(value, {id: "bonus", name: "Bonus Dice"})]

  • IS Less than or equal to 0

  • TRUE 2d6kl1

  • FALSE ([$current]+[$prompt(value, {id: "bonus"})])d6

Levels of Success: the same rows as the table in the Levels of Success section above.

$current is replaced by the skill or attribute the action was rolled from, so one action works for every action rating on the sheet. The bonus prompt shows up once, because both prompts use id: "bonus".

Troubleshooting

  • If there's no label on the card, check that your rows cover the result you got and that the matching row has a label. A row with an empty label doesn't show anything.

  • If the wrong label shows, check the row order. The last matching row determines the label. Move the stronger outcomes further down the list.

  • If the re-roll button doesn't appear, check Always Show Button and Disable Individual Re-Rolls. With both off, the button only appears once a die is selected. It also disappears when the whole-roll limit is used up, or when every die shows an ignored face.

  • If the Conditional Logic switch is missing, make sure the action's first step is a Roll Command. The switch doesn't appear otherwise.

Did this answer your question?