promotional bannermobile promotional banner

Not Cosmetic Armor

Makes Cosmetic Armor Reworked's cosmetic slots actually work.

Not Cosmetic Armor

Cosmetic Armor Reworked gives you two sets of armor: one you wear for looks, one for stats. This addon closes the gap. The cosmetic set actually behaves like worn armor — what you see is what you get.

What works from a cosmetic slot

  • Attributes — armor, toughness, knockback resistance, movement speed and anything else the item declares are added on top of your real armor. Modifier UUIDs are regenerated per player and per slot, so they never collide with the real set.
  • Enchantments — Protection, Feather Falling, Thorns, Respiration and the rest apply, and they stack with the real armor's enchantments (vanilla still caps total EPF at 20). Both sides are covered, so client-side checks such as water breathing and flight see the cosmetic piece too.
  • Item ticks — inventoryTick and Forge's onArmorTick run for cosmetic items, so modded armor that does its work on tick (energy storage, jetpacks, water breathing upgrades) behaves normally.
  • Durability — damage taken by the real armor is mirrored onto the cosmetic piece, Unbreaking rolls included.
  • Movement — if a cosmetic item changes your velocity, the change is sent back to you, so a jetpack in a cosmetic slot actually lifts you.
  • Mod equip checks — mods that ask getItemBySlot / getArmorSlots see the cosmetic item. Set bonuses, flight permissions, damage-reduction events and spell containers all follow. The real armor keeps working as real armor: this mod never removes it, never rewrites the armor inventory outside a tick, and has no renderer of its own. Cosmetic Armor Reworked still handles the looks. Cosmetics on top of the real armor

Requirements

Install

  1. Put Cosmetic Armor Reworked (1.20.1) in mods/.
  2. Put notcosmeticarmor-1.20.1-<version>.jar in mods/ on both the client and the server.
  3. Run /notcosmeticarmor status (permission level 2). car: detected and mode=INTERLEAVE mean it is live.

Tested with

| Mod | What works from the cosmetic slot | |---|---| | Tinkers' Construct + Mantle | attributes and durability | | Iron Jetpacks + Cucumber | flight | | ManaitaMTK | zero damage, no death | | Advanced AE | quantum helmet water breathing | | Project E | gem armor flight, step assist, saturation | | Mekanism | MekaSuit effects stay active with cosmetics worn on top | | fantasy_ending + EndingLib | 4-piece set bonus, shield, damage nullification, revive | | Sophisticated Backpacks | a backpack in the cosmetic chest opens with B and renders on your back | | Apotheosis | affix attributes and damage-reduction affixes | | Iron's Spellbooks | upgrade orb attributes and inscribed spells | Armor that uses the vanilla attribute and durability path should work the same way.

Configuration

config/notcosmeticarmor-server.toml. Everything is on by default. | Key | Meaning | |---|---| | general.enabled | master switch | | behavior.mirrorAttributes | add the cosmetic item's attribute modifiers | | behavior.overrideQueries | report the cosmetic item as worn armor | | behavior.interleave | keep the cosmetic item visible inside the tick window | | behavior.tickCosmeticItems | tick cosmetic items | | behavior.cosmeticDurability | mirror durability damage | | behavior.ignoreSkinArmorFlag | also use slots CAR flags as "skin armor" | | behavior.realPriorityNamespaces | namespaces whose real armor wins when both slots are filled (["mekanism"] by default) | | compat.patchProjectE | let Project E's flight and step-assist checks see cosmetics | | compat.patchSophisticatedBackpacks | let the backpack search see a cosmetic chest |

Commands

/notcosmeticarmor status
/notcosmeticarmor cosmetic <feet|legs|chest|head> <item id|none|hand>
/notcosmeticarmor probe

status prints the CAR state, the mode, every slot's real and cosmetic item, modifier counts, armor points and durability. cosmetic swaps a cosmetic slot without leaving the world, and hand copies the held stack with its NBT.

Known limits

  • Enchantment damage reduction is capped by vanilla (EPF 20 = 80%).
  • Jetpack thrust is one stack's worth: a real and a cosmetic jetpack do not stack, the real one wins.
  • Mods that read the raw Inventory#armor list do not see cosmetics. Project E and Sophisticated Backpacks have bundled patches; more can be added through the config.
  • Slots listed in behavior.realPriorityNamespaces show the real armor to mods when both slots are filled, which is what keeps the MekaSuit's abilities alive under a cosmetic set.
  • Anything that reads getItemBySlot / getArmorSlots sees the cosmetic item, including cheat-style mods. Do not put this on a server where that matters.
  • Cosmetic armor does not provoke piglins, because vanilla decides that by checking worn armor.

Links

Licensed under MIT.

Not Cosmetic Armor Team

profile avatar
  • 3
    Projects
  • 173
    Downloads

I am a Japanese programmer living in Japan. Although my development is AI-driven, I thoroughly perform code checks and debugging.

More from code__onigiri