Dice Roller
Math Rocks Spinning Machine
Roll RPG notation with reel-style visuals and instant results. Up to 30 dice, keep highest/lowest, and highlight rules.
Notation reference — what you can roll and how
Type notation in the box below and pull the lever. The Math Rocks Spinning Machine parses standard RPG dice expressions, rolls immediately, then spins the reels to land on those results.
- Dice per spin
- 1–30
- Sides per die
- 2–100, or %
Basic rolls
Standard tabletop notation: how many dice (N), how many sides (S). Spaces are ignored. If you omit the quantity, it defaults to 1.
| Notation | Meaning |
|---|---|
| 1d20 | Roll one twenty-sided die (1–20). |
| d20 | Same as 1d20. |
| 3d6 | Roll three six-sided dice; total is the sum of all three. |
| 2d6+3 | Roll 2d6, sum the dice, then add 3 to the total. |
| 1d12-2 | Roll 1d12, then subtract 2 from the result. |
Limits
You can roll between 1 and 30 dice per spin. Each die must have between 2 and 100 sides. Use d% for a percentile die (1–100).
Keep highest / lowest (kh / kl)
After rolling, keep only the highest or lowest values and drop the rest. The total uses kept dice only. Keep count must be between 1 and the number of dice rolled. On the reel, kept dice show bright green values with a green wash; dropped dice keep the gold frame but use a dimmer green with no wash.
| Notation | Meaning |
|---|---|
| 4d6kh3 | Roll four d6; keep the three highest; total = sum of those three. |
| 5d10kl2 | Roll five d10; keep the two lowest. |
Highlight (hN+) — visual only
After the reels land, any die showing value N or higher gets a purple accent text glow on top of the normal keep styling. Does not change the math. On d%, highlight compares the full 1–100 result — both tens and units cells glow together when it matches. The + in h5+ is part of the highlight token, not a modifier.
| Notation | Meaning |
|---|---|
| 30d6h5+ | Roll thirty d6; purple glow on every die showing 5 or higher. |
| 4d6kh3h5+ | Keep highest 3; purple glow on any die (kept or dropped) that is 5+. |
| 30d6h5++3 | Highlight 5+, then add +3 to the total (not the same + as in h5+). |
| d%h50+ | Percentile roll 1–100; both reel cells glow when the full roll is 50 or higher. |
Token order (required)
When combining keep, highlight, and modifiers, write them in this order only: kh/kl → hN+ → +/- modifier. Out-of-order forms are rejected.
| Notation | Meaning |
|---|---|
| 4d6kh3h5+ | Valid — keep, then highlight. |
| 4d6h5+kh3 | Invalid — highlight must come after keep. |
Percentile (d%)
d% rolls one number from 1 to 100. On the reel it appears as two cells: tens (00, 10, … 90) and units (0–9). A roll of 100 shows as 00 and 0.
What you see on the machine
The total in the result panel is authoritative (including keep rules and modifiers). While spinning, every active cell shows the same neon green digits. After the reels land, outcome styling applies instantly: every rolled die gets a gold frame; kept dice add a bright green value and green wash; dropped dice (from kh/kl) stay framed but dimmed; hN+ adds a purple accent glow on matching values and stacks with keep styling. The cabinet is a fixed 5×6 grid — your dice fill from the bottom row up, centered; unused slots show decorative filler digits that are not part of the roll.
| Notation | Meaning |
|---|---|
| 3d6 | All three dice: gold frame, bright green values, and green wash (no drops). |
| 4d6kh3 | Four gold frames; three bright green + wash; one dimmed green drop. |
| 4d6kh3h5+ | Same as kh3, plus purple glow on any die showing 5+ (kept or dropped). |
| 7d6 | Seven dice: bottom row holds five, next row holds two centered. |
Reproducible rolls (testing)
Append ?seed=any-text to the URL to get the same results and spin timing on reload. Useful for screenshots and bug reports. Without a seed, rolls use your browser’s secure random source.
| Notation | Meaning |
|---|---|
| ?seed=tabletop-night | Same rolls every time you spin with that seed until you change notation or refresh the seed. |

Composer
Build a roll with named groups and pools.
pool-default|sum||piece-default:die:1d20: