Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Armor CEM Compat
Stop 3D armor resource packs from breaking every modded armor.
The problem
You install a 3D armor resource pack (CEM) and suddenly every modded armor looks destroyed — misplaced colors, dark patches, and holes you can see the player's skin through. Vanilla armor looks fine. Modded armor doesn't. All of it.
And it's not just cosmetic: it blocks your modpack. Any new armor tier you add comes in broken, so you can't add progression or new dimensions.
Two details that make it hard to diagnose:
- The inventory icon looks fine. The bug only shows on worn armor (F5).
- It also affects zombies, skeletons, piglins and armor stands wearing modded armor.
Why it happens
A *_chestplate.jem doesn't describe "the diamond chestplate". It describes the entity's armor layer — whatever item it comes from. So it captures modded armor too.
The pack's textures are 64x64, but every modded armor uses the vanilla 64x32 layout. The UVs get squeezed and read from the wrong place.
And EMF had no way to filter that. Its items property comes back empty on armor layers. One-line proof: items=none matches while you're wearing armor.
What this mod does
| # | Problem | Fix |
|---|---|---|
| 1 | items= is empty on armor layers |
adds the armor_item property, reading getItemBySlot(slot) from the live entity - no NBT, no caching |
| 2 | ETF only allows re-evaluation the first time a rule matches | mixin on PropertiesRandomProvider.entityCanUpdate() |
| 3 | The armor layer keeps the model it got at startup | mixin on HumanoidArmorLayer.getArmorModel() |
| 4 | Writing 48 rules by hand | ships a built-in resource pack with them ready |
Point 3 matters on its own: without this mod, any EMF armor model variant won't update until you press F3+T. The armor you see is whichever you were wearing when you joined the world. That affects every CEM armor pack using variants.
Installation
- Drop the jar into your
mods/folder - Install your 3D armor pack as-is - don't modify it
- That's it
The mod ships a resource pack that enables itself and sits above your armor pack. Nothing to copy or move.
Requires: EMF and ETF - the same ones any CEM pack already needs.
If modded armor still looks wrong
Check in Options -> Resource Packs that the compat pack is above your armor pack, then restart the game - reloading isn't enough, because EMF doesn't rebuild armor models on the fly. It's placed correctly by default.
When to disable the built-in pack
You can disable it and the mod still works (the armor_item property stays). Do it if:
- Your armor pack already ships its own rules - ours would override them
- Your pack already uses its own variants (
<model>2.jem) - they'd collide - You want to write your own rules
armor_item syntax
models.1=2
armor_item.1=chest:minecraft:*_chestplate
armor_item.<n>=<slot>:<id> [more patterns, space separated]
slot : head | chest | legs | feet (also helmet/chestplate/leggings/boots)
id : supports '*'; namespace defaults to minecraft
'!' : negates the pattern - goes BEFORE the slot
armor_item.1=head:minecraft:*_helmet head:minecraft:turtle_helmet
armor_item.1=!chest:minecraft:*_chestplate
minecraft:*_chestplate excludes any mod by namespace - including ones installed later. No list to maintain.
Tested with
Just 3D Armors HMI 1.4 + Advanced Netherite, on Fabric 1.21.11 with EMF 3.3.5 and ETF 7.2.1.
Works with other CEM armor packs in principle - the file names are defined by EMF, not by the pack author. If you try it with another pack, please let me know how it went.
Credits
Full write-up of the investigation - including everything that was tried and ruled out - is in HALLAZGOS.md.
Thanks to Traben for EMF and ETF, and to nagi for Just 3D Armors.
Licensed MIT. Use it, modify it, bundle it in your modpack - no permission needed.


