Dicelab
D&D Dice Roller & Probability Calculator
Advanced dice notation with advantage, critical hits, and D&D Beyond integration.
Simple Dice Roller Mode
Enter your dice expression and roll instantly - perfect for quick D&D 5e rolls.
Simple mode is for one-off rolls. Use Notebook to save aliases or multi-step calculations.
Examples
Click an example to try it:
Roll a twenty-sided die.
d20
Roll a hundred-sided die for percentile checks.
d100
Roll two d20s and keep the higher result.
d20 adv
Roll two d20s and keep the lower result.
d20 dis
Roll 4d6 and drop the lowest die.
4d6 dl 1
Roll 6 ability scores at once.
(4d6 dl 1) ^ 6
Infinite rerolls for 1s and 2s, then add modifier.
2d6 rr 1 rr 2 + 3
Each die rerolls a 1 once if it comes up.
4d6 ro 1
Roll 8d6 fire damage for the Fireball spell.
8d6
Returns 1 on success, 0 on failure.
(d20 + 6) >= 15
Half damage on a successful save, full on failure.
(d20 + 2) >= 15 ? 4d6 : 8d6
Attack roll with crit tracking and damage on hit.
(d20 attack + 6) >= 15 ? 2d6 + 4 : 0
Roll with advantage and apply damage on hit.
(d20 adv attack + 6) >= 15 ? 2d6 + 4 : 0
Crits on 19 or 20, with advantage.
(d20 adv attack crit19..20 + 6) >= 15 ? 2d6 + 4 : 0
On a crit, all dice in the damage expression are doubled.
(d20 attack + 6 oncrit double_all) >= 15 ? 2d6 + 4 : 0
On a crit, the damage dice are maximized instead of rolled twice.
(d20 attack + 6 oncrit max_second_dice) >= 15 ? 2d6 + 4 : 0
Triple advantage—roll 3d20 and keep the highest.
(3d20 kh 1 attack + 7) >= 17 ? 1d8 + 4 : 0
Repeat the attack expression 3 times and sum.
((d20 attack + 5) >= 15 ? 1d8 + 4 : 0) ^ 3
View the probability distribution for 3d6.
analyze 3d6
Compare probability curves side by side.
analyze 2d20 kh 1 + 5, d20 + 5
Analysis of a paladin under effects of bless with 2 attacks, with +8 to hit, against an AC of 15, holding a d10 weapon with +5 damage modifier and doing divine smite on crits.
analyze (d20 adv attack crit19..20 + 8 as a1 + d4 > 15 ? (1d10 + 5 + (a1.crit ? 2d8))) + (d20 adv attack crit19..20 + 8 as a2 + d4 > 15 ? (1d10 + 5 + (a1.crit == 0 ? (a2.crit ? 2d8))))