Skip to main content

⚔️ 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).

warning

Applying Equipment to Items:

To apply these equipments to your armor items, go to equipment settings.

tip

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+ Recommended
equipments:
# 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
tip

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
tip

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 Applicable

When 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
Premium Exclusive

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.

caution

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.