Advanced Dice Roller

Roll any tabletop dice expression — 4d6kh3, 2d20+5, 1d100, exploding dice.

Open tool

Overview

The Advanced Dice Roller parses standard tabletop notation and rolls anything you can write down — from a single d20 to compound expressions like 4d6kh3 + 2d8 - 1. It supports the full range of polyhedral dice (d4, d6, d8, d10, d12, d20, d100), arbitrary die sizes, keep-highest and keep-lowest selectors, drop modifiers, exploding dice, and flat arithmetic.

Roll-by-roll results are shown alongside the running total so you can see exactly which die contributed what, which is handy for verifying D&D ability scores, GURPS damage, or any system where individual die values matter. Each expression re-rolls independently, and previous results stay visible so you can compare attack rolls, damage spreads, and saves at a glance.

How it works

Dice notation follows the pattern NdS where N is the number of dice and S is the number of sides per die. Each die is sampled uniformly from 1 to S using a cryptographically suitable pseudorandom generator. Modifiers attached with + or - are added after the dice resolve, and selectors like kh3 (keep highest three) or dl1 (drop lowest one) trim the result set before summing.

Exploding dice — triggered by ! — re-roll any die that lands on its maximum face and add the new value to the original, repeating until a non-maximum face appears. The order of operations is: roll all dice, apply explosions, apply keep/drop selectors, sum the surviving dice, and finally add or subtract any flat modifiers.

Examples

  • 4d6kh3 rolls four six-sided dice and keeps the three highest — the standard D&D 5e ability-score generator. A roll of 6, 4, 3, 1 keeps 6+4+3 = 13.
  • 2d20+5 rolls two d20s, sums them, and adds 5 — useful for advantage rolls plus modifier in some systems.
  • 1d100 rolls a percentile die — common for crit tables and rare-loot checks.
  • 8d6! rolls eight six-sided exploding dice; any 6 re-rolls and adds, so the theoretical maximum is unbounded.

FAQ

What's the largest die I can roll?
The parser accepts any positive integer side count, so 1d1000 or 1d10000 work fine. Practical limits depend on display width.

How does keep-highest interact with explosions?
Each die explodes to a single combined value first, then the keep selector picks the top N of those combined values.

Are the rolls truly random?
They use a strong PRNG seeded fresh on each request, which is more than enough for tabletop play.

Can I roll negative dice?
You can subtract a roll, e.g. 1d20 - 1d4, but the number of dice must be positive.

Is there a maximum number of dice per roll?
The roller caps very large pools to avoid hanging the page; a few hundred dice in one expression is fine.

Try Advanced Dice Roller

An unhandled error has occurred. Reload ×