The Dice Roller

Astral’s dice roller makes combat and gameplay easy. Any roll can be created before a game starts so that all you have to do during the game is click to roll, and your rolls will be calculated automatically.

Creating Attributes

The dice roller uses “standard dice notation,” which looks like this:

1d[number] +/- {attribute}

An attribute is specified in the character menu.

To edit a character:

  • For GMs: Navigate to “Characters” in the left sidebar. Click on the character token to open that character’s settings.
  • For Players: Click on your character token in the bottom left corner of the screen, and select “Edit Character.”

Within this menu, navigate to “Attributes.” You can make any number an attribute, and the label is up to you. For example, you can use “str” or “strength.”

Once you create your attributes, select Save, and navigate to the dice roller.

When you create a new roll, follow the standard dice notation. Use curly braces to specify your attribute; you must use the exact same word in both places so the dice roller can reference the correct metrics. For example:

1d20 + {strength}

You can even add dice together! For example:

1d20 + {str} + 1d4

Use additional flags for dice rolling. A “flag” can be added to the standard dice notation. Here are a list of flags that can be used in the dice roller:

Flag Description Syntax

e Exploding dice. Re-roll and add dice >= to a threshold. (dice) rr (threshold) (e.g. !r 2d20e15 )
gt Keep die > than a threshold. (dice) gt (threshold) (e.g. !r 3d8gt3 )
gte Keep die >= to a threshold. (dice) gte (threshold) (e.g. !r 3d8gte6 )
lt Keep die < a threshold. (dice) lt (threshold) (e.g. !r 2d8lt5 )
lte Keep die <= to a threshold. (dice) lte (threshold) (e.g. !r 2d8lte4 )
kl Keep the lowest # of dice. (dice) kl (number) (e.g. !r 2d20kl1 )
kh Keep the highest # of dice. (dice) kh (number) (e.g. !r 4d8kh2 )
max Set the die maximum. (dice) max (threshold) (e.g. !r 1d20max16 )
min Set the die minimum. (dice) min (threshold) (e.g. !r 1d8min3 )
ro Re-roll dice once above or below a threshold. (dice) ro comparative (e.g. !r 1d8ro2 )
rr Re-roll dice forever above or below a threshold. (dice) rr comparative (e.g. !r 1d8rr<2 )

Here is a use case: You can write a die string against a known DC and have it be obvious if you passed or failed a contested roll. If you roll

1d20gte15 for a DC 15, and the roll is below 15, the results will display “0” since it failed. This is an easy way to discern successes or fails.

For more info on the Dice Roller, check out our tutorial!
For more information on Add-Ons or FAQs, check out our Knowledge Base!

This appears to be out of date as of the last update.

For instance, it looks like !(1d20) is how you would roll a d20.

Is there going to be an update to the documentation on how dice is rolled now?

@Beyzun, you can still access the Dice Roller from the portal page and use the same syntax shown here. The new syntax and features for Tabletop Chat are documented in our Knowledgebase, but I’d be happy to port them over to the forums as well!

Here’s the new Tabletop Chat documentation, including new syntax, markdown features, new roll flags, etc.

To complement that documenation, check out the Character Actions and Attributes documentation, which will streamline using Tabletop Chat to emote or perform as your character. There’s a ton of helpful stuff there, including cool ways to utilize multiple rolls in tables.

If anything isn’t clear in the documentation, please don’t hesitate to reach out to me so I can update it! In the meantime I’ll port those two docs over to the forums.

1 Like

Perfect! Will do. Thank you!

Is there a timeline when Table Chat will be available for all users ? My understanding is that it is in beta right now.

Thank you

Hi @thinstardust, welcome to the community!

Tabletop Chat is currently available to everyone. If you have any problems accessing it, please let me know. Here’s a link to the Tabletop Chat FAQs

Please reach out with any questions or concerns, I’m here to help.

Thank you for the reply. I assuming from some testing that there is no way to check the sum of 3d6 against a threshold ? Example a ST check in GURPS !(3d6<{ST}).

I know this syntax creates a dice pool against ST, but it looks like the other flags compare each d6 rolled against {ST}.

I am not sure how clear this inquiry is or perhaps I am missing something. I am trying to experiment with the system as much as I can.

Thanks again for any help

The BASH UE game uses 2d6 multiplied by a number. If the dice roll doubles of any kind, an additional 1d6 is rolled and added to total (before multiplying). If the additional die roll matches the other dice, another die roll is made until it doesn’t match. (e.g. you roll 2d6 and the result is 4 and 4 totaling 8. Because you rolled doubles you roll an additional d6. If you get another 4, your total would be 12 and you could then roll another d6 etc etc.)

Can Astral handle this type of exploding dice roll?

Hello thinstardust and Scarbrow

This kind of die roll would require that the total of the 3d6 first be stored in a variable and then compared to the Attribute. Currently there is no way to do this in Astral, but there are Feature Requests that ask for functionality that would permit this.

Holding thumbs that the Devs have a chance to build this feature into the system in the nearish future.

Thanks for the info LaMorte. I hope they do add the capability in the near future…the Astral VTT has so much potential and it is very easy to use.

Hi is there a way to roll !(1d100) vs the stat and then to state the differences between th two in the text, or to add a moddifier ?

Hello @thecodex101

Unfortunately this is not possible at the moment. Except for an option like !(1d100>{stat}) which will show a Success if the roll is greater than the stat, you cannot do comparisons.

Good morning or Evening,

I am new on Astral and I was wondering if it was possible to add bonus to roll as a prompt or something like this?

Or should I create a stats bonus that is added to each roll and set it put for each roll?

For example in a d100 based game like Warhammer we ofter have +10 or -10.

Currently you will need to use a stat, however you can use a checkbox to decide if you should use the advantage / disadvantage.

!(1d100 + {PlusTenCheck ? 10 : MinusTenCheck ? -10 : 0})

Should do the trick if you have two checkboxes, one named PlusTenCheck and one named MinusTenCheck.

how can i roll dices with multiple dice flag ?

in legend of five rings, i need my exploding D10 dice to have as result the sum of all additional dices and the first 10.

and at the same time i need to keep for example the 2 highest dice out of 3.

for exemple :
!({Agi+KJS}d10e10kh{KJS}) (a classical kenjutsu roll with agility in L5R )

where Agi =3 and KJS = 2

I have as result 10 2 3 4 5.
the 10 explode and do another 10 which explode again and do an 5

so after explosion i have : 25 2 3 4 5

so the result of the 2 highest rolled dice is 30 (25+5)

can you tell me please how to do that ?


At the moment this is not possible, although there is a Feature request for exactly this:

I’d suggest heading over there and voting and / or commenting on the request, stating why you need the feature. Each comment on a feature moves it to the top of the list for the Devs to see the interest in a Feature and improves the chances of it being implemented sooner.


I’m brand new to Astral and to virtual TTRPG in general. I wanted to run a Vampire V5 game, so I uploaded the character sheet, filled it with various stats and hit the “roll selected dice pool” on the character sheet. I just ended up with “C, S, ƒ(3)”. No clue what it means or what I did wrong.

Can you enlighten me on this obscur dice roller ? ^^

C is a critical roll, S is a standard Success and ƒ(3) means 3 Fails rolled.

1 Like

Thanks a lot, I was half guessing F for failure and S for success but C (it said costumed but critical makes a lot more sense).

You might want to recreate your character sheets. Another user found a problem with one of my roll tests but the character template has been updated on the server so all good now.