đĄī¸ 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.
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.pngcontains the helmet, chestplate, and boots.ruby_armor_layer_2.pngcontains 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>.
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.