⚔️ Equipment
Introduction

CraftEngine offers two ways to create custom equipment. One method is based on Trim (for 1.20 and above), and the other uses the Equippable Component (for 1.21.2 and above).
Applying Equipment to Items:
To apply these equipments to your armor items, go to equipment settings.
Regarding 3D Helmets:
The creation method for 3D helmets is completely unrelated to equipment. Since many users have encountered difficulties when creating 3D helmets, I'm here to explain the correct way to create them and clarify some potential misconceptions you may have.
3D Helmet
Armor items inherently come with an equippable component, which includes an option called asset_id. When this option is specified, Minecraft uses a armor renderer to display the designated armor texture. This means that even if you assign a custom 3D item model to a diamond helmet-based item, it will still be rendered using the default armor renderer when worn by a player.
To fix this, you must disable the armor renderer and allow the helmet to use the default renderer instead.
Solution 1 (For 1.21.2+):
Override the equippable component and remove the asset_id option. Here’s an example:
items:
default:my_3d_helmet:
material: diamond_helmet
data:
equippable:
slot: head
Solution 2 (For 1.20+):
Use client_bound_material to modify how the helmet renders on the client side without affecting its server-side functionality. Here’s an example:
items:
default:my_3d_helmet:
material: diamond_helmet
client_bound_material: paper
Component Based
1.21.2+ Recommendedequipments:
# the equipment asset id
default:topaz:
type: component
humanoid: "minecraft:entity/equipment/humanoid/topaz"
humanoid_leggings: "minecraft:entity/equipment/humanoid_leggings/topaz"
# Add more layer types based on your needs
happy_ghast_body: "minecraft:entity/equipment/happy_ghast_body/topaz"
Supported layer types:
- humanoid
- humanoid_leggings
- wings
- wolf_body
- horse_body
- llama_body
- pig_saddle
- strider_saddle
- camel_saddle
- horse_saddle
- donkey_saddle
- mule_saddle
- skeleton_horse_saddle
- zombie_horse_saddle
- happy_ghast_body
- camel_husk_saddle
- nautilus_body
You can also set it up as a configuration section like this for some extra options
equipments:
default:topaz:
type: component
humanoid:
texture: "minecraft:leather"
dyeable:
color_when_undyed: -6265536 # leather color
# elytra texture
use_player_texture: false
You can also combine multiple textures using lists. Here are two examples:
equipments:
custom:partialy_dyeable_armor:
type: component
humanoid:
- texture: "minecraft:dyeable_part"
dyeable:
color_when_undyed: -6265536
- texture: "minecraft:undyeable_part"
equipments:
custom:red_flower_wreath:
type: component
humanoid:
- texture: "minecraft:wreath"
- texture: "minecraft:red_flower"
custom:yellow_flower_wreath:
type: component
humanoid:
- texture: "minecraft:wreath"
- texture: "minecraft:yellow_flower"
custom:white_flower_wreath:
type: component
humanoid:
- texture: "minecraft:wreath"
- texture: "minecraft:white_flower"
Trim Based
1.20+ Trim Not ApplicableWhen CraftEngine removes a vanilla armor's base texture, the armor becomes completely transparent when worn. By applying custom trims to this invisible armor, we can achieve custom armor textures. However, this approach has one limitation - the armor can no longer receive additional trims afterward.
equipments:
# the equipment asset id
default:topaz:
type: trim
humanoid: minecraft:entity/equipment/humanoid/topaz
humanoid_leggings: minecraft:entity/equipment/humanoid_leggings/topaz
How to fix the "removed" armor
You can fix vanilla chainmail armor by running /ce resource enable legacy_armor. The solution is surprisingly simple - we apply a special trim pattern to vanilla chainmail armor to preserve its original appearance.
Trim-based armor only supports the humanoid and humanoid_leggings model types.
Core Shader Based
CraftEngine currently has no plans to implement custom armor based on core shaders. This approach would inherently rely on leather armor as a base, which would break when used with third-party shaders - though it does offer trim compatibility. However, given that as of 2025, over 90% of servers now run on version 1.21.2+, this feature will likely never be implemented.