MC Toolkit

Guides / Building & Resources

The armor texture you replace is not the one you think

Armor is layered and split by material, so painting the wrong file leaves your pack looking untouched in game.

Armor is the most common first project for a texture pack, and the most common first failure. You paint a chestplate, load the pack, and nothing changes — because the file you edited is not the file the game reads for that piece.

Every armor material is a separate file

There is no single armor.png. Diamond, iron, gold, chainmail, leather and netherite each carry their own layer files, and each layer is its own image. A full set is not one texture; it is a small family of them, split by slot and by layer.

The practical consequence: a pack that recolors diamond armor does nothing to iron. If your goal is "make all armor look like X", you are editing one file per material, not one file total.

The layer split, and why it matters

Armor renders in two passes:

LayerWhat it covers
Layer 1Helmet, chestplate, boots — the body-covering pieces
Layer 2Leggings, and the overlay pass on the other pieces

Leggings live on layer 2 because they need to draw over the body without z-fighting with layer 1. Paint layer 1 and wonder why the leggings are untouched, and you have found the split the hard way.

Elytra and the trim trap

An elytra is not armor in the file sense — it has its own texture, and it does not inherit armor materials. A pack that reskins chestplates leaves elytra alone.

Trims are worse. Trim patterns and trim materials are separate registries, and a trim renders as a palette-shifted overlay on top of the base armor texture. You cannot paint a trim into the armor file; the game composites it at runtime. Recoloring armor under a trim changes the base, not the trim.

Java and Bedrock differ here

Java reads armor layers from a fixed path under assets/minecraft/textures/models/armor/, named by material and layer. Bedrock uses its own layout and its own naming, and a pack built for one will not load in the other. If you are targeting both, you are building two packs.

Working at the real size

Armor textures are not 16×16. They are larger, laid out as an unwrapped model — head, body, arms and legs in one image, in fixed regions. Painting a 16×16 square and scaling it up gives you a smeared result, because you are stretching one region across the whole unwrap.

The reliable approach is to start from the vanilla file itself, at its native size, and paint over it. That way the regions line up, the alpha channel survives, and the output path matches what the game replaces.

Draw over the real vanilla texture at its native size and download the pack with the Texture Maker.

Texture Maker →

More guides

Browse all →

Looking for more Minecraft tools?

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