跳到正文

Armor CEM Compat

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

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

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 64×64, but every modded armor uses the vanilla 64×32 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.

常见问题

Armor CEM Compat 支持哪些 Minecraft 版本?

Armor CEM Compat 支持 Minecraft Java 版 1.21.11,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

Armor CEM Compat 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。

评论

登录后评论和评分

WHEYLL Studios 的其他作品

查看全部 →