Skip to main content

⚔️ Equipment

Introduction

CraftEngine offers two ways to create custom equipment. One method is based on Trim (for Minecraft 1.20+), and the other uses the Equippable component (introduced in 1.21.2).

info

Please note all configurations below pertain to equipment settings, not individual item specifications. To apply these equipment configurations to your armor items, please refer to this documentation.

Component Based

1.21.2+ Recommended
equipments:
# the equipment asset id
default:topaz:
type: component
# 'namespace:path' resolves to assets/<namespace>/textures/entity/equipment/<layer_type>/<path>.png.
#
# Example: minecraft:topaz
# ↓
# assets/minecraft/textures/entity/equipment/humanoid/topaz.png
humanoid: "minecraft:topaz"

# other layer types
# assets/minecraft/textures/entity/equipment/humanoid_leggings/topaz.png
humanoid-leggings: "minecraft:topaz"

# more layer types, based on your needs
# assets/minecraft/textures/entity/equipment/happy_ghast_body/topaz.png
happy-ghast-body: "minecraft:topaz"

The image below demonstrates the mapping between configurations and actual texture paths. If a layer type contains hyphens ("-"), you must replace them with underscores ("_") in the path. Example humanoid-leggings -> humanoid_leggings

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
info

❓️Q: Why doesn't CraftEngine let users use random texture paths and relocate them when generating the resource pack?

✔️ A: I want users to follow Minecraft's resource pack standards - I'll only allow custom paths if Mojang breaks their own rules. Then the plugin will handle version-specific paths for you.

tip

You can also set it up as a configuration block like this for some extra options


equipments:
default:topaz:
type: component
humanoid:
texture: "minecraft:leather"
dyeable:
color-when-undyed: -6265536 # leather color
# for 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+ Iris/Optifine Shader Compatibility 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.

By default, the plugin has preconfigured vanilla armor sacrificial options in config.yml. These settings will only take effect when you have configured at least one trim-based armor.

info

Q: Will sacrificed armor still display normally? Does this mean I can't use chainmail armor at all?

A: CraftEngine anticipated this scenario. The solution is surprisingly simple, at least for CraftEngine - we apply a default trim pattern to vanilla chainmail armor to preserve its original appearance. This is achieved through CraftEngine's exclusive client-bound-data feature.

# config.yml
equipment:
sacrificed-vanilla-armor:
type: chainmail
asset-id: minecraft:chainmail
humanoid: minecraft:trims/entity/humanoid/chainmail
humanoid-leggings: minecraft:trims/entity/humanoid_leggings/chainmail

# legacy_armor/configuration/chainmail.yml
items:
minecraft:chainmail_helmet:
client-bound-data:
trim:
pattern: chainmail # the pattern that preserves its original appearance
material: custom
hide-tooltip:
- trim
...leggings, chestplate and boots

This configures a trim-based armor set. The texture paths have no strict requirements - CraftEngine will automatically relocate texture directories for you.

equipments:
# the equipment asset id
default:topaz:
type: trim
humanoid: minecraft:entity/equipment/humanoid/topaz
humanoid-leggings: minecraft:entity/equipment/humanoid_leggings/topaz
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.