Wiki 9Minecraft Wiki 9Minecraft

Vanilla Item Tags Reference

How to assign built-in Minecraft tags to custom items for tool tiers, recipes, and gameplay mechanics.

5Sections
2Code examples
3Known errors

Item tags are string identifiers attached to items through the `minecraft:tags` component. Applying vanilla tags to your custom items allows them to slot directly into existing game systems—such as mining block tiers, enchanting tables, piglin bartering, and generic crafting recipes—without needing to overwrite vanilla files or write custom Script API handlers.

Applying Tags to a Custom Item

Every tag on an item is declared inside the `minecraft:tags` component in your behavior pack item JSON. This component takes a single `tags` array containing string identifiers. You can mix official `minecraft:` tags with your own namespace tags in the same array.

In modern Bedrock format versions (1.20.50 and later), `minecraft:tags` is a stable component that replaces the legacy `tag:` empty object syntax used in older format versions. Adding a tag does not automatically give an item all the components of that item class; for example, tagging an item as `minecraft:is_pickaxe` lets it mine pickaxe-gated blocks, but you still need to define `minecraft:durability` and `minecraft:digger` if you want it to take damage and mine quickly.

BP/items/ruby_pickaxe.json
{
  "format_version": "1.20.80",
  "minecraft:item": {
    "description": {
      "identifier": "my_pack:ruby_pickaxe",
      "menu_category": {
        "category": "equipment",
        "group": "itemGroup.name.pickaxe"
      }
    },
    "components": {
      "minecraft:max_stack_size": 1,
      "minecraft:hand_equipped": true,
      "minecraft:durability": {
        "max_durability": 850
      },
      "minecraft:tags": {
        "tags": [
          "minecraft:is_tool",
          "minecraft:is_pickaxe",
          "minecraft:diamond_tier"
        ]
      }
    }
  }
}

Tool Type and Material Tier Tags

The most common reason to reach for vanilla item tags is building custom tools and weapons. Vanilla blocks and custom blocks alike check the held item's tags inside their `minecraft:destructible_by_mining` component or loot tables to decide if the block should drop its item and how fast it should break.

A custom tool typically needs two tags: one declaring the tool shape (such as `minecraft:is_pickaxe`) and one declaring its harvesting tier (such as `minecraft:iron_tier`). Note that higher tier tags do not always imply lower tier tags in every custom block query, though vanilla block definitions check for any valid tier at or above the required level. If you want your custom tool to work seamlessly across both vanilla blocks and third-party add-on blocks that might check for a specific tier, you can include multiple tier tags on the same item.

Tag IdentifierWhat it doesNotes
minecraft:is_toolMarks the item as a general tool.Used by various vanilla behaviors and entity item queries.
minecraft:is_pickaxeIdentifies the item as a pickaxe.Allows mining ores, stone, and blocks checking for pickaxes.
minecraft:is_axeIdentifies the item as an axe.Used for stripping logs and fast-mining wood blocks.
minecraft:is_shovelIdentifies the item as a shovel.Used for path creation on dirt/grass and digging soil blocks.
minecraft:is_hoeIdentifies the item as a hoe.Used for tilling dirt into farmland and breaking plant blocks.
minecraft:is_swordIdentifies the item as a sword.Allows sweeping cobwebs and triggers sword-specific checks.
minecraft:wooden_tierAssigns wooden mining tier.Base harvesting level for stone and coal.
minecraft:stone_tierAssigns stone mining tier.Required by vanilla iron, copper, and lapis ore.
minecraft:iron_tierAssigns iron mining tier.Required by vanilla diamond, gold, emerald, and redstone ore.
minecraft:golden_tierAssigns golden mining tier.Fast mining tier with low harvesting level.
minecraft:diamond_tierAssigns diamond mining tier.Required to harvest obsidian and ancient debris.
minecraft:netherite_tierAssigns netherite mining tier.Highest vanilla mining tier.

Recipe, Wood, and Material Tags

Vanilla crafting and smelting recipes frequently accept an item tag instead of a hard-coded item identifier. By attaching these material tags to your custom items, players can use your custom wood, stone, or fuel in standard vanilla recipes—like crafting chests, sticks, beds, or stone tools—without you having to duplicate a single vanilla recipe file.

When creating custom trees or stone variants, place the appropriate tags on the block's item representation or on your custom item definitions so they blend naturally into survival progression.

Tag IdentifierWhat it doesNotes
minecraft:planksIncludes the item in all generic plank recipes.Works for sticks, chests, crafting tables, beds, and wooden doors.
minecraft:logsMarks the item as a log.Used in charcoal smelting and generic log-based recipes.
minecraft:logs_that_burnMarks the item as a flammable overworld-style log.Used specifically by recipes and furnaces expecting burnable wood.
minecraft:stone_tool_materialsAllows the item to craft stone-tier tools.Vanilla cobblestone, blackstone, andobbled deepslate share this tag.
minecraft:stone_crafting_materialsAllows the item to craft furnaces and brewing stands.Often paired with `minecraft:stone_tool_materials`.
minecraft:coalsAllows the item to craft torches and campfires.Shared by vanilla coal and charcoal.
minecraft:soul_fire_base_blocksAllows crafting soul torches and soul campfires.Applied to soul sand and soul soil items.
minecraft:sandIncludes the item in glass smelting, TNT, and concrete powder recipes.Shared by regular sand and red sand.

Mob Interaction, Armor, and Utility Tags

Beyond tools and crafting, several mob behaviors, wearable interactions, and block mechanics check the tags on an item before allowing an action. For example, Piglins in the Nether check for specific gold-related tags to decide whether to attack a player, barter with them, or run toward a dropped item.

Similarly, utility blocks like bookshelves, jukeboxes, and campfires look for tags on the item in the player's hand to determine whether the item can be inserted or cooked.

Tag IdentifierWhat it doesNotes
minecraft:is_armorMarks the item as a piece of armor.Paired with `minecraft:wearable` for equipment behavior.
minecraft:is_tridentMarks the item as a trident.Used in combat and enchantment checks.
minecraft:is_foodIdentifies the item as edible food.Used by entity temptation behaviors and item sorting.
minecraft:is_meatMarks the item as meat.Allows feeding and breeding tamed wolves.
minecraft:is_cookedMarks food as cooked.Often paired with `minecraft:is_meat` or `minecraft:is_fish`.
minecraft:bookshelf_booksAllows placing the item inside a Chiseled Bookshelf.Shared by books, enchanted books, and writable books.
minecraft:Hanging_signIdentifies hanging sign items.Note casing; check standard `minecraft:sign` for standing/wall signs.
minecraft:music_discMarks the item as a music disc.Used by jukeboxes and Allay/Parrot interactions.
minecraft:trim_materialsAllows the item to be used as an armor trim material in a Smithing Table.Requires a corresponding trim material registry entry.
minecraft:trim_templatesAllows the item to act as a smithing template in a Smithing Table.Shared by armor trim templates and the netherite upgrade.
minecraft:arrowAllows bows and crossbows to fire the item as ammunition.Used by vanilla arrows and tipped arrows.

Querying Vanilla Item Tags in Recipes and Scripts

You are not limited to putting vanilla tags on your items; you can also check for vanilla tags in your own recipes, Molang queries, and Script API code. In a shaped or shapeless recipe file, replace the `"item"` key inside an ingredient object with `"tag"` to accept any vanilla or custom item carrying that tag.

In Molang (used in entity behaviors, animations, and block permutations while they remain supported), you can test held items with `query.equipped_item_any_tag('slot.weapon.mainhand', 'minecraft:is_pickaxe')`. In the `@minecraft/server` Script API, you can inspect an `ItemStack` using its `.hasTag("minecraft:is_pickaxe")` or `.getTags()` methods.

BP/recipes/reinforced_stick.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shaped": {
    "description": {
      "identifier": "my_pack:reinforced_stick"
    },
    "tags": ["crafting_table"],
    "pattern": [
      "#",
      "I",
      "#"
    ],
    "key": {
      "#": {
        "tag": "minecraft:planks"
      },
      "I": {
        "item": "minecraft:iron_ingot"
      }
    },
    "result": {
      "item": "minecraft:blaze_rod",
      "count": 1
    }
  }
}

Which versions this applies to

The `minecraft:tags` item component is stable and requires format_version 1.20.50 or higher with no experimental toggles needed. On older format versions (1.16.100 through 1.20.40), tags were applied as empty objects prefixed with `tag:` directly inside the `components` block.

When it does not work

What you seeWhyThe fix
Content Log Error: [Item][error]-my_pack:ruby_pickaxe | minecraft:item -> components -> tag:minecraft:is_pickaxe: component is not supported in this format_version.You used the legacy `"tag:minecraft:is_pickaxe": {}` component syntax inside an item file with a `format_version` of 1.20.50 or newer.Replace all individual `tag:...` keys with a single `"minecraft:tags": { "tags": [ "minecraft:is_pickaxe" ] }` component.
Custom pickaxe with `minecraft:is_pickaxe` and `minecraft:diamond_tier` breaks stone and ores at bare-hand speed.Item tags only satisfy tag queries (such as whether a block is allowed to drop its loot); they do not automatically set mining speed on a custom item.Add the `minecraft:digger` component to your item alongside `minecraft:tags` and configure `destroy_speeds` for the blocks or block tags your tool should mine quickly.
Custom tool tagged with `minecraft:is_axe` cannot strip vanilla logs when right-clicked.Stripping logs, tilling dirt, and flattening grass paths are hardcoded vanilla behaviors or require specific interaction components, not just the item tag alone.Implement a custom Script API handler listening to `world.beforeEvents.itemUseOn` (or use custom item components) to transform the target block and damage the tool when used on logs.

Reference, straight from the game files

Read out of the game itself, so the ids match the version you are building for.