Torch & Anvil

Armor and Toughness, Explained

Verified: Java 26.3 · 2026-09-16 · Java formula; Bedrock computes armor differently · Updated 2026-09-16

The armor bar lies by omission: twenty points does not mean one fixed reduction, because Java scales armor's value by the size of the hit. This guide walks the real formula, shows what toughness is actually for, and separates the armor layer from the Protection layer the way the game does. The armor calculator runs any case you give it.

The formula, in words

Java computes the armor step as min(20, max(armor ÷ 5, armor − 4 × damage ÷ (min(toughness, 20) + 8))) ÷ 25. Unpack it from the inside: the main term starts at your armor points and subtracts a penalty that grows with the incoming damage; the armor ÷ 5 term is a floor guaranteeing every point is worth at least 0.8 percent no matter how huge the hit; the cap of 20 limits the armor step to 80 percent. Divide by 25 and you have the fraction removed. The one non-obvious clamp: toughness contributes through min(toughness, 20), so toughness past 20 — reachable only with commands — does nothing.

Toughness is a slope, not a shield

Diamond and netherite both show 20 armor points, and against a modest hit they feel similar: versus 10 damage, diamond (toughness 8) stops 70 percent, netherite (toughness 12) stops 72. The gap opens as hits grow, because toughness sits in the denominator of the decay term. Against a 15-damage hit, 20 points with no toughness at all would stop just 50 percent — while netherite's 12 toughness holds 68. Against 30 damage netherite still stops 56 percent. That is toughness's whole job: not more protection, but protection that degrades slower. And at the extreme end the floor takes over — versus a hypothetical 1,000-damage hit, netherite's reduction collapses to the guaranteed 16 percent (20 points × 0.8).

The set table, honestly ranked

Full-set defense points: leather 7, golden 11, chainmail 12, iron 15, diamond and netherite 20 — with toughness 8 and 12 respectively (2 and 3 per piece), and the turtle shell helmet contributing 2 points, no toughness. Against a standard 10-damage hit that ladder reads: leather takes 9.2, golden 7.6, chainmail 7.2, iron 6.0, diamond 3.0, netherite 2.8. Iron to diamond is the big jump — 6.0 down to 3.0, damage halved — which matches every veteran's instinct about when armor starts feeling real.

The Protection layer

Enchantments act on what gets past the armor, through the EPF system this site already verified for the fall damage calculator: Protection contributes 1 EPF per level per piece, every EPF point removes a further 4 percent, and the system caps at EPF 20 — 80 percent. Protection alone maxes at 4 levels × 4 pieces = EPF 16, or 64 percent; the specialized enchantments that could push to the cap (Blast, Projectile, Fire) apply only to their own damage types and are out of this tool's general-damage scope. Layered on full netherite versus a 10-hit: 2.8 × 0.36 = 1.008 damage — and in effective-HP terms your 20 hearts of health behave like 198.4 against hits that size, up from 71.4 unenchanted and 20 naked.

What this guide deliberately skips

Fall damage bypasses the armor step entirely — the fall damage calculator owns that math, with Feather Falling in the same EPF system. Bedrock computes armor and enchantment protection differently from Java; this site declares editions rather than averaging them, so the calculator models Java and says so. Also out of scope: damage sources that partially pierce armor, shields, and the Resistance effect. Sources: the Minecraft Wiki's armor documentation (minecraft.wiki/w/Armor), including its own protection-calculator page, which is where both the reduction formula and the set values come from. No second source is claimed here: the wiki page is the source, and the arithmetic on top of it is this site's. Re-verified 2026-09-01; every number here is asserted in our test suite.