A worn wooden tabletop in a resistance-hideout safehouse with a single hooded brass-and-iron oil lantern centered as the only light source. Four unfired ammunition cartridges of distinctly different silhouettes are laid out in a row across the table — a squat red shotgun shell, a stubby brass rifle round with a copper bullet, a longer brass sniper magnum, and a fourth cartridge — the arsenal before action. Same painted-tavern grammar as the D&D pillars, swapped for resistance-fighter props: every weapon a different damage profile.

Diceplots → Games → XCOM 2

XCOM 2 weapon damage math — exact rationals for every shot

XCOM 2 splits each shot into four explicit outcomes — hit, crit, graze, miss. The displayed hit-chance hides what the variance actually looks like, especially once graze is in the model. Every weapon below links to the per-shot distribution as exact rationals — no Monte Carlo, no tooltip rounding, shareable URLs for every aim/cover combination.

The recurring XCOM shot questions, in one click each

The per-shot math players keep re-asking. Each card links to either the live engine or the worked-out concept pillar.

The outcome model

In vanilla WotC, every shot rolls against four buckets:

  • Crit — full damage doubled (or +crit-bonus depending on class). Conditional on a hit: P(crit) = P(hit) · crit_chance.
  • Hit — full damage in the weapon's range.
  • Graze — half damage (floor). Eats into the miss probability — a 65% hit / 15% graze build has 80% chance of dealing some damage.
  • Miss — zero damage. P(miss) = 1 - P(hit) - P(graze).

Worked-out math, why graze matters more than its 15% suggests, and why crit-fishing on Sharpshooter has a different shape than crit-fishing on Ranger — see the XCOM 2 outcome model pillar.

Per-shot distributions, by weapon

Each row links to the live per-shot distribution. Damage ranges taken from typical mid-tier (mag) and late-tier (beam) configurations. Click a slug to open the panel with the exact rational mean, full PMF, and kill-probability curve.

Weapon Damage range Default shot With graze Notes
Assault Rifle (mag) 5-7 1d3+4 @ hit 65 crit 10 1d3+4 @ hit 65 crit 10 graze 15 Trooper class default, balanced range
Heavy Cannon (beam) 8-10 1d3+7 @ hit 65 crit 10 graze 15 1d3+7 @ hit 65 crit 10 graze 15 Grenadier class, single-target high damage
Sniper Rifle (mag) 8-10 1d3+7 @ hit 35 crit 15 1d3+7 @ hit 35 crit 15 Sharpshooter class, often low-percentage long-range shots
Shotgun (mag) 6-9 1d4+5 @ hit 80 crit 30 1d4+5 @ hit 50 crit 10 graze 30 Ranger class close-range, high crit
Pistol (sidearm, mag) 5-7 1d3+4 @ hit 75 crit 50 1d3+4 @ hit 75 crit 50 Sharpshooter secondary, opportunist build favours crit

The big aim-arc question — how much does +10 to-hit buy you?

A common Sharpshooter loadout question: is Squadsight's reduced crit chance worth the long-range positioning? Compare the same Sniper damage range at 35% hit (low-percentage flank shot) vs. 95% hit (full Squadsight overwatch chain):

1d3+7 @ hit 35 crit 15
min 0 max 13 mean 3.25 651/200
  • 0 65.00%
  • 1 0.00%
  • 2 0.00%
  • 3 0.00%
  • 4 0.00%
  • 5 0.00%
  • 6 0.00%
  • 7 0.00%
  • 8 9.92%
  • 9 10.50%
  • 10 11.08%
  • 11 1.75%
  • 12 1.17%
  • 13 0.58%
1d3+4 @ hit 95 crit 25
min 0 max 10 mean 6.17 247/40
  • 0 5.00%
  • 1 0.00%
  • 2 0.00%
  • 3 0.00%
  • 4 0.00%
  • 5 23.75%
  • 6 26.39%
  • 7 29.03%
  • 8 7.92%
  • 9 5.28%
  • 10 2.64%

The 95% build has a tighter distribution and a real damage floor; the 35% build is a long-tail Hail Mary with most of its mass at zero. Mean-only comparisons miss the per-mission variance picture entirely.

Run-and-Gun bursts

Two-shot Run-and-Gun rounds convolve two independent shot distributions. The result skews heavier than the per-shot mean suggests because the worst case (zero hits) has probability (1-P(hit))² — small but non-zero, and the kill-curve at low HP is what determines whether you actually drop the target.

1d3+4 @ hit 65 crit 10
min 0 max 10 mean 4.03 403/100
  • 0 35.00%
  • 1 0.00%
  • 2 0.00%
  • 3 0.00%
  • 4 0.00%
  • 5 19.50%
  • 6 20.22%
  • 7 20.94%
  • 8 2.17%
  • 9 1.44%
  • 10 0.72%
1d3+4 @ hit 65 crit 10 attacks 2
min 0 max 20 mean 8.06 403/50
  • 0 12.25%
  • 1 0.00%
  • 2 0.00%
  • 3 0.00%
  • 4 0.00%
  • 5 13.65%
  • 6 14.16%
  • 7 14.66%
  • 8 1.52%
  • 9 1.01%
  • 10 4.31%
  • 11 7.89%
  • 12 12.26%
  • 13 9.32%
  • 14 5.83%
  • 15 1.77%
  • 16 0.94%
  • 17 0.37%
  • 18 0.05%
  • 19 0.02%
  • 20 0.01%

Streak protection — the hidden RNG-fudging

XCOM 2 silently boosts a shot's effective hit chance after consecutive misses, capping the realistic miss streak well below what a fair coin-flip model would produce. The engine models this as a state-carrying Markov walk: each chain strike's hit chance is modulated by the current miss-streak counter, with the counter advancing on miss / resetting on hit.

Postfix grammar: attacks N streak. Per the Steam Community / Long War community datamining, the real rule is linear +15% (Commander) or +10% (lower difficulties) per consecutive miss, no cap, and the boost only activates when the base hit chance is ≥50%. The engine ships both rules: the streak preset uses the Commander +15-per-miss ladder, and the ≥50% gate is enforced at evaluation time so low-aim chains see no boost (matching the in-game behaviour). Worked-out math and the variance-reduction picture vs unprotected chains live in the Luck and streak protection pillar. Companion to /games/hard-west/ for the Hard West deterministic dodge-pool variant (different state primitive, same family of variance softeners).

Bring your own shot

Any percentage shot the engine accepts: 1d3+4 @ hit 65 crit 10 for an assault rifle, 1d4+5 @ hit 50 crit 10 graze 30 for a half-cover shotgun shot, 1d3+7 @ hit 95 crit 25 for a clean Sniper Squadsight overwatch. Use the comparison tool to put two builds side-by-side. The engine handles brutal/dr postfixes the same way as the d20 attack path — XCOM 2 itself doesn't have those mechanics, but modded rulesets do.

Full grammar at /syntax.