Guides / Commands & Data

Damage types: which 19 ignore armour, and why shields are the weaker guard

26.2 ships 51 damage types. 19 bypass armour, 30 bypass shields, and the overlap is not what people assume — every type that beats armour also beats a shield.

A damage type is not just a death message. It carries flags that decide whether armour counts, whether a raised shield counts, and whether Resistance counts — and datapacks read those same flags through #minecraft:bypasses_armor and friends. Every number below is counted from Mojang's shipped damage_type files for 26.2, which is what the browser on this page renders.

The counts

51 damage types. Of those, 19 ignore armour and 30 ignore a raised shield.

That second number surprises people. A shield looks like the stronger defence because it blocks a hit outright, but it is the flag that gets bypassed more often — by 30 types against armour's 19.

The overlap is one-directional

This is the part worth internalising, and it is a hard structural rule rather than a tendency:

Every damage type that bypasses armour also bypasses shields. There are no exceptions.

Counted directly: the set "bypasses armour but not shields" is empty. So the 19 armour-piercing types are a strict subset of the 30 shield-piercing ones, and 11 types sit in the gap — they go through a shield but armour still reduces them:

cactus, campfire, dry_out, falling_anvil, falling_stalactite, hot_floor, in_fire, lava, lightning_bolt, sulfur_cube_hot, sweet_berry_bush

Read that list and the logic is obvious once seen: they are environmental or overhead sources. You cannot raise a shield against the floor you are standing on, or against an anvil landing on your head, but plate still soaks some of it.

The practical version: if a hit went through your armour, the shield was never going to help either. Fall damage, drowning, freezing, starvation, /kill — armour and shield are both irrelevant. Reach for Feather Falling, Respiration or Frost Walker instead, because those are enchantments the flags do not skip.

Only one type ignores everything

starve is the single damage type that bypasses armour, shields and status effects together — so Resistance does not touch it either. Nothing in the game protects you from an empty hunger bar except food.

Exhaustion is binary

Taking damage makes you hungrier, and the amount is not graded the way you might expect. Across all 51 types there are exactly two exhaustion values in 26.2: 0 and 0.1. 32 of the 51 apply 0.1; the rest apply none.

So there is no "big hits make you hungrier" rule. A point of fall damage and a creeper to the face cost the same exhaustion, and 19 types cost nothing at all.

Scaling has two settings, not a curve

scaling decides whether difficulty multiplies the damage, and it only ever takes one of two values: when_caused_by_living_non_player or always. There is no per-type difficulty curve to tune — a datapack either opts a type into difficulty scaling or it does not.

Why this matters for commands

/damage <target> <amount> <type> takes any of the 51, and picking the wrong one quietly changes the outcome:

/damage @p 10 minecraft:fall      # armour ignored, shield ignored
/damage @p 10 minecraft:lava      # shield ignored, armour still reduces it
/damage @p 10 minecraft:starve    # armour, shield and Resistance all ignored

Three commands, the same 10, three different results on the same target. If a map is "balanced" against a player in full netherite, the type you pick decides whether that armour was part of the balance at all.

Open the Minecraft Data Browsers — Set 1 →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.