Armor CEM Compat

Quick rating

Community listing page, reviews may not be monitored by the author.

Armor CEM Compat

By MaguetOwner

No reviews yet

Fixes 3D armor resource packs breaking every modded armor. Adds the item condition EMF is missing, and makes armor models actually refresh in-game.

Mod Loaders
Minecraft

About

Description

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

  1. Drop the jar into your mods/ folder
  2. Install your 3D armor pack as-is - don't modify it
  3. 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.