1. Wiki
  2. /Items
  3. /Custom armor

Custom armor

Make a Ruby armor set for Minecraft Bedrock: protection, durability, enchanting and repairing, plus the attachable that draws it on the player.

In this guide you will make a Ruby Chestplate and learn how to turn it into a full set of four pieces. Armor is the first item where the behavior pack and the resource pack each do a big job: the BP decides how much it protects, and the RP decides how it looks on the player's body, not only in the inventory.

This guide builds on Your first custom item. If icons, textures and lang files are new to you, read that first.

The quick way: GodCraft

GodCraft makes all four pieces at once, including the worn look, so you skip the trickiest file of this guide.

  1. Open the Workshop and add an Armor to your add-on.
  2. Paint the icons and the worn texture in the pixel editor.
  3. Set protection, durability and repair items for each piece.
  4. Tap Export and try the set on in game.

Ready to see the files? Here we go.

How armor works

Each armor piece needs three things:

PartPackWhat it does
Item fileBPWhich slot it goes in, how much it protects, durability
IconRPThe small picture in the inventory
AttachableRPThe 3D model and texture drawn on the body when worn

We use the namespace myname. Replace it with your own everywhere.

By hand

Step 1: the item file

BP/items/ruby_chestplate.json
{
  "format_version": "1.26.30",
  "minecraft:item": {
    "description": {
      "identifier": "myname:ruby_chestplate",
      "menu_category": {
        "category": "equipment",
        "group": "minecraft:itemGroup.name.chestplate"
      }
    },
    "components": {
      "minecraft:icon": {
        "textures": {
          "default": "myname_ruby_chestplate"
        }
      },
      "minecraft:display_name": {
        "value": "item.myname:ruby_chestplate.name"
      },
      "minecraft:max_stack_size": 1,
      "minecraft:wearable": {
        "slot": "slot.armor.chest",
        "protection": 7
      },
      "minecraft:durability": {
        "max_durability": 500
      },
      "minecraft:enchantable": {
        "slot": "armor_torso",
        "value": 12
      },
      "minecraft:repairable": {
        "repair_items": [
          {
            "items": ["myname:ruby"],
            "repair_amount": "query.max_durability * 0.25"
          }
        ]
      },
      "minecraft:tags": {
        "tags": ["minecraft:is_armor"]
      }
    }
  }
}

The important parts:

Step 2: the other three pieces

Copy the chestplate file three times and change these values in each copy:

Pieceslot (wearable)slot (enchantable)Diamond protection, for comparison
Helmetslot.armor.headarmor_head3
Chestplateslot.armor.chestarmor_torso8
Leggingsslot.armor.legsarmor_legs6
Bootsslot.armor.feetarmor_feet3

Remember to change the identifier, icon and display name too, and pick the matching creative group (helmet, leggings or boots instead of chestplate).

Step 3: the worn texture

Armor on the body uses a different, bigger texture than the icon. It is laid out like the vanilla armor files: a 64x32 PNG that wraps around the body. Vanilla splits each set into two layers:

  • Layer 1 (ruby_1.png): helmet, chestplate and boots.
  • Layer 2 (ruby_2.png): leggings.
RP/textures/models/armor/ruby_1.png
64x32 PNG: the helmet, chestplate and boots parts
RP/textures/models/armor/ruby_2.png
64x32 PNG: the leggings parts

The easiest way to get the layout right is to start from the vanilla diamond_1.png and diamond_2.png and paint over them. See Pixel textures for painting tips.

Step 4: the attachable

An attachable tells the game what to draw on the player when the item is worn or held. Create an attachables folder in your resource pack:

RP/attachables/ruby_chestplate.json
{
  "format_version": "1.10.0",
  "minecraft:attachable": {
    "description": {
      "identifier": "myname:ruby_chestplate",
      "materials": {
        "default": "armor",
        "enchanted": "armor_enchanted"
      },
      "textures": {
        "default": "textures/models/armor/ruby_1",
        "enchanted": "textures/misc/enchanted_actor_glint"
      },
      "geometry": {
        "default": "geometry.humanoid.armor.chestplate"
      },
      "scripts": {
        "parent_setup": "variable.chest_layer_visible = 0.0;"
      },
      "render_controllers": ["controller.render.armor"]
    }
  }
}

Line by line:

  1. identifier must be the item's ID exactly. This is how the game links the attachable to the item.
  2. materials and the enchanted texture make the purple shimmer show up when the armor is enchanted.
  3. textures.default is your worn texture, without .png.
  4. geometry uses the built-in vanilla armor model, so you do not need to build a 3D model.
  5. parent_setup hides the vanilla armor layer for that body part, so nothing draws on top of yours.
  6. render_controllers uses the vanilla armor controller.

For the other pieces, change three values:

Piecegeometryparent_setupTexture
Helmetgeometry.humanoid.armor.helmetvariable.helmet_layer_visible = 0.0;ruby_1
Chestplategeometry.humanoid.armor.chestplatevariable.chest_layer_visible = 0.0;ruby_1
Leggingsgeometry.humanoid.armor.leggingsvariable.leg_layer_visible = 0.0;ruby_2
Bootsgeometry.humanoid.armor.bootsvariable.boot_layer_visible = 0.0;ruby_1

Step 5: icons and names

Add one icon per piece to item_texture.json (inside texture_data), and save the 16x16 icons in RP/textures/items/:

RP/textures/item_texture.json
"myname_ruby_helmet": { "textures": "textures/items/ruby_helmet" },
"myname_ruby_chestplate": { "textures": "textures/items/ruby_chestplate" },
"myname_ruby_leggings": { "textures": "textures/items/ruby_leggings" },
"myname_ruby_boots": { "textures": "textures/items/ruby_boots" }
RP/texts/en_US.lang
item.myname:ruby_helmet.name=Ruby Helmet
item.myname:ruby_chestplate.name=Ruby Chestplate
item.myname:ruby_leggings.name=Ruby Leggings
item.myname:ruby_boots.name=Ruby Boots

Test it

  1. Load the packs into a world (see Export and install).
  2. Run /give for each piece, for example /give @s myname:ruby_chestplate.
  3. Put it on and check the armor bar. Press F5 on PC, or change the camera view in settings, to see it from the outside.

Invisible armor?

If the armor bar goes up but you cannot see the armor, the BP is fine and the attachable is the problem. Check that the attachable identifier matches the item ID and that the texture path is right.

When something goes wrong

What you seeMost likely cause
You cannot put it onminecraft:wearable is missing or the slot is misspelled
It is invisible when wornThe attachable identifier or texture path is wrong
It looks scrambledThe worn texture is not laid out like the vanilla 64x32 armor texture, or the piece uses the wrong layer
Pink and black on the bodyThe texture path in the attachable points to a file that does not exist

More fixes are in Troubleshooting. Next, let players craft the set in Crafting and furnace recipes, or pair it with a Ruby Sword.

Items: Guides

We use cookies to improve your experience and analyse site traffic. Learn more