D&D Combat Roll Simulator

One attack roll, laid out as a table: a d20 to hit against Armor Class, then a damage die. Change the numbers and every outcome updates. Further down, the page answers a design question: is a bonus worth more on the attack roll or on the damage roll?

Damage die

≈ 8.1 average hits (1 hit ≈ 4.91 HP)

Outcome table

Hits on
Hit chance
Crit chance
Average damage on a hit
Expected per round
Expected over 20 rounds

Hits to kill
Rounds to kill
Kill within 20 rounds

How these numbers are worked out

Hit chance
= d20 faces that hit / 20
= (21 − (AC − attack bonus)) / 20, kept between 1 and 19 faces
A natural 1 always misses and a natural 20 always hits, so it is always 1 to 19 faces: 5% to 95%.
Expected per round
= P(normal hit) × (avg die + D) + P(crit) × (2 × avg die + D)

Value of the next +1

+1 to hit:

+1 to damage:

+1 to hit
= (avg die + D) / 20 per round: one more d20 face becomes a normal hit. 0 once capped.
+1 to damage
= P(hit) per round: every hit deals 1 more.
Which wins
+1 to hit wins only while avg die + D > 20 × P(hit).

Compare +N to hit vs +N to damage

The same attack three ways: as set above, with +N added to the attack roll, and with +N added to the damage roll. All tables share the color scale in the legend above, so the same damage is the same color everywhere.

Bonus sweep, +0 to +20

Expected damage over 20 rounds for every extra bonus from +0 to +20, at the settings above. Point at or drag across the chart to read any N; the slider sets the marker.

+N to hit (added to the attack roll)
+N to damage (added to the damage roll)
Shaded: the to-hit curve is flat (95% cap, or only a nat 20 hits)
Current +N from the slider
Where the curves cross, if they do

Expected damage over 20 rounds

The dashed line (+N to damage).

The solid line (+N to hit).

What moves the crossover.

20 rounds, rolled for real

The numbers above are exact averages. This rolls a real d20 and real damage dice for 20 rounds at the settings above (two damage dice on a crit), so you can see how far one fight lands from the average. Nothing rolls until you click, and changing a setting never re-rolls. The Enemy HP column tracks the enemy from the top of the page: rounds after a kill still roll and count toward the total, and changing Enemy HP re-scores the same rolls.

Try this

Each button sets the controls at the top of the page, and every table, chart and figure follows. Read what to look for, then use the links below to go and see it.

Go to the chart Go to the controls