Skip to main content

đŸ›Ąī¸ Creating custom armor using components

Overview​

This tutorial demonstrates how to create a custom armor set using Minecraft's equippable component. Component-based armor requires Minecraft 1.21.2+. For older versions, use the armor trims tutorial.

important

Armor pieces other than helmets do not support 3D models. This is a limitation of Minecraft and cannot be changed by Oraxen. Helmets support 3D models and therefore do not require armor-layer textures.

Tutorial​

Enable component-based armor​

Open plugins/Oraxen/settings.yml and configure the CustomArmor section.

CustomArmor:
type: COMPONENT
auto_select_type: true
disable_leather_repair: true
component_settings:
auto_assign_component: true

This tutorial defines the equippable component for each piece explicitly. With auto_assign_component, Oraxen can instead derive the component from correctly named item IDs.

Add the textures​

Add two transparent worn textures, typically 64x32 pixels:

  • ruby_armor_layer_1.png contains the helmet, chestplate, and boots.
  • ruby_armor_layer_2.png contains the leggings.
plugins/Oraxen/pack/textures/armor/ruby_armor_layer_1.png
plugins/Oraxen/pack/textures/armor/ruby_armor_layer_2.png

Add an inventory icon, typically 16x16 pixels, for each piece in the same directory:

ruby_helmet.png
ruby_chestplate.png
ruby_leggings.png
ruby_boots.png

The exact layer suffixes are required. Oraxen uses their shared ruby prefix to create the oraxen:ruby equipment model.

Configure the armor items​

Create plugins/Oraxen/items/ruby_armor.yml and add all four pieces.

ruby_helmet:
itemname: "<gradient:#ff1744:#9c0025>Ruby Helmet</gradient>"
material: PAPER
components:
equippable:
slot: HEAD
model: oraxen:ruby
pack:
generate_model: true
parent_model: "item/generated"
textures:
- armor/ruby_helmet

ruby_chestplate:
itemname: "<gradient:#ff1744:#9c0025>Ruby Chestplate</gradient>"
material: PAPER
components:
equippable:
slot: CHEST
model: oraxen:ruby
pack:
generate_model: true
parent_model: "item/generated"
textures:
- armor/ruby_chestplate

ruby_leggings:
itemname: "<gradient:#ff1744:#9c0025>Ruby Leggings</gradient>"
material: PAPER
components:
equippable:
slot: LEGS
model: oraxen:ruby
pack:
generate_model: true
parent_model: "item/generated"
textures:
- armor/ruby_leggings

ruby_boots:
itemname: "<gradient:#ff1744:#9c0025>Ruby Boots</gradient>"
material: PAPER
components:
equippable:
slot: FEET
model: oraxen:ruby
pack:
generate_model: true
parent_model: "item/generated"
textures:
- armor/ruby_boots

PAPER avoids an underlying vanilla armor texture. Keep model: oraxen:ruby on every piece and match each slot to its armor piece. Add attribute modifiers separately if the armor needs stats.

Generate and apply the resource pack​

Save the files and run the following command.

/oraxen reload all

Reapply the generated pack, then get the pieces from /oraxen inv or /oraxen give @s <item_id>.

note

With auto_assign_component: true, you may omit components.equippable. Oraxen derives the slot and model from the shared prefix and one of the recognized suffixes: _helmet, _chestplate, _leggings, or _boots.

Troubleshooting​

If equipped armor is invisible or appears vanilla, verify that the server is running Minecraft 1.21.2+, type is set to COMPONENT, the layer suffixes and shared ruby prefix are correct, every slot and model is configured correctly, and the regenerated pack is applied. Automatic assignment also requires recognized item suffixes.