1. Wiki
  2. /Recipes
  3. /Recipe types

Recipe types

Every Bedrock recipe type in one place: shaped, shapeless, furnace, brewing mix and container, smithing transform and trim, with examples and station tags.

Minecraft Bedrock has seven kinds of recipe. Each one is a JSON file in the behavior pack, and each one has a type that decides which fields it needs and which station can use it. This page is a quick reference for all seven, with a Ruby example for each.

New to recipes? Read Crafting and furnace recipes first. It explains patterns, keys, item tags, the recipe book (unlock) and priority step by step. This page does not repeat those parts.

The files

All recipes go in one folder. The file names are up to you, and you can make subfolders to keep things tidy.

Behavior pack
BP/
  recipes/
    ruby_block.json
    ruby_from_block.json
    smelt_raw_ruby.json
    brew_ruby_strength.json
    brew_ruby_splash.json
    ruby_sword_upgrade.json

The seven types at a glance

TypeStationWhat it does
minecraft:recipe_shapedCrafting tableItems in a set pattern make a result
minecraft:recipe_shapelessCrafting table, stonecutter, cartography tableItems in any position make a result
minecraft:recipe_furnaceFurnace, blast furnace, smoker, campfiresOne item cooks into another
minecraft:recipe_brewing_mixBrewing standChanges the effect of a potion
minecraft:recipe_brewing_containerBrewing standChanges the kind of bottle, like potion to splash potion
minecraft:recipe_smithing_transformSmithing tableUpgrades an item into another, keeping its enchantments
minecraft:recipe_smithing_trimSmithing tableAdds a colored trim pattern to armor

Every type shares the same outer shape:

Every recipe
{
  "format_version": "1.20.10",
  "minecraft:recipe_shaped": {
    "description": {
      "identifier": "wiki:ruby_block"
    },
    "tags": ["crafting_table"]
  }
}
  • The key under the root (here minecraft:recipe_shaped) is the type.
  • description.identifier is the recipe's own ID. It must be unique, and it is not the item ID.
  • tags lists the stations that accept it. See The tags field below.

Shaped

Items must sit in a pattern.

BP/recipes/ruby_block.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shaped": {
    "description": {
      "identifier": "wiki:ruby_block"
    },
    "tags": ["crafting_table"],
    "pattern": [
      "RRR",
      "RRR",
      "RRR"
    ],
    "key": {
      "R": { "item": "wiki:ruby" }
    },
    "unlock": [{ "item": "wiki:ruby" }],
    "result": { "item": "wiki:ruby_block" }
  }
}
FieldWhat it holds
patternUp to 3 rows of up to 3 characters. A space is an empty slot.
keyWhat each character means: an item or an item tag
resultThe item you get, with an optional count
assume_symmetryOptional. Whether the mirrored pattern also works. It does by default.
priorityOptional. Which recipe wins when two match

result can also be a list. The first item goes to the output slot, and the others are given back too. Vanilla cake does this: you get the cake and your three empty buckets back.

A result list
"result": [
  { "item": "wiki:ruby_cake" },
  { "item": "minecraft:bucket", "count": 3 }
]

Shapeless

Only the ingredients count, not where they go.

BP/recipes/ruby_from_block.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shapeless": {
    "description": {
      "identifier": "wiki:ruby_from_block"
    },
    "tags": ["crafting_table"],
    "ingredients": [
      { "item": "wiki:ruby_block" }
    ],
    "unlock": [{ "item": "wiki:ruby_block" }],
    "result": { "item": "wiki:ruby", "count": 9 }
  }
}
FieldWhat it holds
ingredientsA list of items (or item tags), each with an optional count
resultThe item you get
priorityOptional. Which recipe wins when two match

Stonecutter recipes are shapeless too

The stonecutter has no type of its own. It uses shapeless recipes with one ingredient and the stonecutter tag:

BP/recipes/ruby_bricks_stonecutting.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shapeless": {
    "description": {
      "identifier": "wiki:ruby_bricks_stonecutting"
    },
    "tags": ["stonecutter"],
    "ingredients": [{ "item": "wiki:ruby_block" }],
    "unlock": [{ "item": "wiki:ruby_block" }],
    "result": { "item": "wiki:ruby_bricks", "count": 1 }
  }
}

Each choice in the stonecutter menu is a separate recipe file. Vanilla has hundreds of these.

Furnace

One item goes in, another comes out. It has no result: it uses input and output instead.

BP/recipes/smelt_raw_ruby.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_furnace": {
    "description": {
      "identifier": "wiki:smelt_raw_ruby"
    },
    "tags": ["furnace", "blast_furnace"],
    "input": "wiki:raw_ruby",
    "output": "wiki:ruby"
  }
}
FieldWhat it holds
inputThe item to cook
outputThe item that comes out

The fuel is not part of the recipe. Any normal fuel works.

Brewing mix

A brewing mix turns one potion effect into another. The bottle stays the same kind: a potion stays a potion, a splash potion stays a splash potion.

BP/recipes/brew_ruby_strength.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_brewing_mix": {
    "description": {
      "identifier": "wiki:brew_ruby_strength"
    },
    "tags": ["brewing_stand"],
    "input": "minecraft:potion_type:awkward",
    "reagent": "wiki:ruby",
    "output": "minecraft:potion_type:strength"
  }
}
FieldWhat it holds
inputThe potion in the bottom slots, as minecraft:potion_type:<name>
reagentThe item in the top slot. This can be your own item.
outputThe potion you get, as minecraft:potion_type:<name>

Here, a ruby turns an Awkward Potion into a Potion of Strength, just like blaze powder does.

Potion names are lower case, with _ between words. Some useful ones: water, awkward, mundane, thick, strength, swiftness, healing, regeneration, fire_resistance, slow_falling, water_breathing, invisibility and leaping. Night vision is written nightvision. Longer versions start with long_ (long_strength) and stronger ones with strong_ (strong_strength).

Brewing container

A brewing container recipe changes the bottle, and keeps the effect. Vanilla uses it for gunpowder (potion to splash potion) and dragon's breath (splash potion to lingering potion).

BP/recipes/brew_ruby_splash.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_brewing_container": {
    "description": {
      "identifier": "wiki:brew_ruby_splash"
    },
    "tags": ["brewing_stand"],
    "input": "minecraft:potion",
    "reagent": "wiki:ruby_dust",
    "output": "minecraft:splash_potion"
  }
}
FieldWhat it holds
inputThe bottle item going in, like minecraft:potion
reagentThe item in the top slot
outputThe bottle item coming out, like minecraft:splash_potion or minecraft:lingering_potion

Smithing transform

Upgrades one item into another at the smithing table. The enchantments, name and damage of the old item carry over to the new one. Vanilla uses it to turn diamond gear into netherite.

BP/recipes/ruby_sword_upgrade.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_smithing_transform": {
    "description": {
      "identifier": "wiki:ruby_sword_upgrade"
    },
    "tags": ["smithing_table"],
    "template": "wiki:ruby_upgrade_template",
    "base": "minecraft:diamond_sword",
    "addition": "wiki:ruby",
    "result": "wiki:ruby_sword"
  }
}
FieldSlotNeeds this item tag
templateLeft: the smithing templateminecraft:transform_templates
baseMiddle: the item to upgrademinecraft:transformable_items
additionRight: the materialminecraft:transform_materials
resultThe upgraded itemnone

The item tags are not optional

The smithing table only lets an item into a slot if it has the tag in the table above. Vanilla diamond gear already has minecraft:transformable_items. For your own template and material, add the tags with the minecraft:tags item component, or the slots stay locked.

BP/items/ruby_upgrade_template.json (inside components)
"minecraft:tags": {
  "tags": ["minecraft:transform_templates"]
}

Only one of each template and material is used up, even if the stack is bigger.

Smithing trim

Adds a trim pattern to armor. It has no result: the armor comes back with the trim on it. Here is what one looks like:

BP/recipes/ruby_armor_trim.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_smithing_trim": {
    "description": {
      "identifier": "wiki:ruby_armor_trim"
    },
    "tags": ["smithing_table"],
    "template": { "tag": "minecraft:trim_templates" },
    "base": { "tag": "minecraft:trimmable_armors" },
    "addition": { "tag": "minecraft:trim_materials" }
  }
}
FieldSlotNeeds this item tag
templateThe trim patternminecraft:trim_templates
baseThe armor pieceminecraft:trimmable_armors
additionThe material that sets the colorminecraft:trim_materials

Each field takes an item, or an item tag like above. This is the same shape as the single trim recipe vanilla uses: because it only uses tags, it covers every template, armor and material at once.

Trimming custom armor

You usually do not need a trim recipe at all. Give your armor pieces the minecraft:trimmable_armors tag and the vanilla recipe already accepts them. See Armor for making the armor itself.

The tags field

tags is a list of the stations that can use a recipe. Each type only makes sense with certain tags:

Recipe typeTags it accepts
Shapedcrafting_table
Shapelesscrafting_table, stonecutter, cartography_table
Furnacefurnace, blast_furnace, smoker, campfire, soul_campfire
Brewing mix and containerbrewing_stand
Smithing transform and trimsmithing_table

A few rules:

  • List every station you want. A furnace recipe tagged only furnace does not work in a smoker.
  • Mix freely within a type. Food usually lists furnace, smoker, campfire and soul_campfire together.
  • Ignore deprecated. Some vanilla files use this tag to keep old recipes around without showing them. Your recipes do not need it.

More about each station, and the 2x2 inventory grid, is in Crafting and furnace recipes.

When something goes wrong

What you seeMost likely cause
The recipe never shows upThe tags list does not include that station
A smithing slot will not take my itemThe item is missing the item tag the slot needs
A brewing recipe does nothingThe potion name is wrong, or minecraft:potion_type: is missing
The stonecutter ignores my recipeIt has more than one ingredient, or it is not shapeless
Two recipes share an IDEvery description.identifier must be unique, across all types

More help is in Troubleshooting. Need items to use in your recipes? Start with Your first custom item.

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