ItemsAdderAdditionsItemsAdderAdditions

Custom Tags

Define reusable item, block, furniture, and recipe tag groups in ItemsAdder content YAML.

Since v1.0.10

Custom tags let you group content IDs once and reuse the group in supported ItemsAdderAdditions features. They are loaded from a top-level tags section in any ItemsAdder content YAML file.

Basic structure

info:
  namespace: my_pack

tags:
  ruby_tools:
    type: item
    values:
      - ruby_pickaxe
      - ruby_axe
      - mmoitems:tool:ruby_hammer

  decorative_blocks:
    type: block
    values:
      - ruby_lamp
      - minecraft:amethyst_block

  trading_stations:
    type: furniture
    values:
      - alchemy_table
      - forge_table

  ruby_recipes:
    type: recipe
    values:
      - ruby_sword
      - ruby_pickaxe

Reference a tag with #tag_id in the same namespace or #namespace:tag_id across namespaces. See IDs for tag reference rules.

Tag types

TypeAliasesValues can contain
itemitemsItemsAdder items, vanilla items, MMOItems items, and nested item tags.
blockblocksItemsAdder blocks, vanilla blocks, and nested block tags.
furniturefurnituresItemsAdder furniture IDs and nested furniture tags.
reciperecipesRecipe IDs and nested recipe tags.

If type is omitted, the tag is treated as an item tag.

Nested tags

Tags can include other tags of the same type.

info:
  namespace: my_pack

tags:
  ruby_tools:
    type: item
    values:
      - ruby_pickaxe
      - ruby_axe

  mining_tools:
    type: item
    values:
      - "#ruby_tools"
      - minecraft:iron_pickaxe
      - minecraft:diamond_pickaxe

Nested tags are resolved during reload. Circular references are detected and ignored instead of hanging the server.

Where custom tags work

Custom tags are supported by runtime ID matching paths, including:

  • advancement item, block, furniture, and recipe conditions
  • player predicate item, equipment, slot, and block checks
  • stackable behaviour items
  • crafting recipe ingredients (iaa_crafting_table)

Complete example

info:
  namespace: my_pack

tags:
  ruby_tools:
    type: item
    values:
      - ruby_pickaxe
      - ruby_axe

items:
  charged_ruby:
    display_name: "<red>Charged Ruby"
    behaviours:
      stackable:
        blocks:
          - charged_ruby_block
        items:
          - "#my_pack:ruby_tools"
advancements:
  collect_any_ruby_tool:
    display:
      title: "Ruby Tools"
      description: "Obtain any ruby tool."
      icon: my_pack:ruby_pickaxe
    criteria:
      collect:
        trigger: obtain_item
        conditions:
          items:
            - "#my_pack:ruby_tools"

Reload behavior

Custom tags are prepared before actions, behaviours, recipes, advancements, and world generation are reloaded. Run /iareload after changing tags.

Common mistakes

  • Mixing tag types. A furniture tag cannot include an item tag.
  • Defining the same type and tag ID twice. The first declaration wins.
  • Expecting custom tags to create item stacks. Use concrete item IDs for outputs such as recipe results, toast.icon, clear_item.item, and replace_item.item.
  • Overriding a vanilla-looking tag such as #minecraft:planks. Custom tags are resolved first when a custom tag with that ID exists.

On this page