1. Wiki
  2. /Items
  3. /Crafting and furnace recipes

Crafting and furnace recipes

Add shaped, shapeless and furnace recipes to Minecraft Bedrock: patterns, keys, item tags, recipe book unlocking, stations and priority.

An item nobody can get is not much fun. In this guide you will add three recipes for the ruby items from the earlier guides: a shaped recipe for the Ruby Sword, a shapeless recipe for the Ruby Apple, and a furnace recipe that smelts raw ruby into a ruby. You will also learn how the recipe book unlocks recipes and what tags and priority do.

The quick way: GodCraft

GodCraft has Crafting, Furnace, Smithing and Brewing recipe objects with a real crafting grid. You tap items into slots instead of typing a pattern.

  1. Open the Workshop and add a Crafting or Furnace recipe to your add-on.
  2. Fill the grid with your own items or vanilla ones.
  3. Pick the result and how many you get.
  4. Tap Export. The recipe file is written for you.

The rest of this page shows what those files look like.

By hand

Recipes live in the behavior pack, in a folder called recipes. Each recipe is one JSON file, and the file name does not matter to the game. We use the namespace myname. Replace it with your own everywhere.

Every recipe has the same basic shape:

  • a type: minecraft:recipe_shaped, minecraft:recipe_shapeless or minecraft:recipe_furnace
  • a description.identifier: a unique ID for the recipe (not the item)
  • tags: which crafting stations can use it
  • unlock: when it appears in the recipe book
  • the ingredients and the result

A shaped recipe

Shaped recipes care about where each item goes in the grid, like a sword that must be a vertical line.

BP/recipes/ruby_sword.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shaped": {
    "description": {
      "identifier": "myname:ruby_sword"
    },
    "tags": ["crafting_table"],
    "pattern": [
      "R",
      "R",
      "S"
    ],
    "key": {
      "R": {
        "item": "myname:ruby"
      },
      "S": {
        "item": "minecraft:stick"
      }
    },
    "unlock": [
      {
        "item": "myname:ruby"
      }
    ],
    "result": {
      "item": "myname:ruby_sword"
    }
  }
}

How the pattern works:

  1. pattern draws the grid. Each string is one row, and each character is one slot. Up to 3 rows of up to 3 characters.
  2. A space means "leave this slot empty". For a pickaxe you would write "RRR", " S ", " S ".
  3. key says what each character means. You choose the letters. Pick ones that are easy to remember.
  4. result is what you get. Add "count": 4 to get more than one.

The pattern does not have to fill all 3x3. The sword above is 1 wide and 3 tall, so players can craft it in any column of the grid. Mirrored versions of a pattern also work by default.

A shapeless recipe

Shapeless recipes only care about what is in the grid, not where. Good for mixing things together.

BP/recipes/ruby_apple.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shapeless": {
    "description": {
      "identifier": "myname:ruby_apple"
    },
    "tags": ["crafting_table"],
    "ingredients": [
      {
        "item": "minecraft:apple"
      },
      {
        "item": "myname:ruby",
        "count": 2
      }
    ],
    "unlock": [
      {
        "item": "minecraft:apple"
      }
    ],
    "result": {
      "item": "myname:ruby_apple"
    }
  }
}

Each entry in ingredients is one item. Add "count" when you need several of the same item: here the player puts one apple and two rubies anywhere in the grid. A shapeless recipe can use up to 9 items in total.

A furnace recipe

Furnace recipes turn one item into another with heat. They are the simplest of all:

BP/recipes/smelt_raw_ruby.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_furnace": {
    "description": {
      "identifier": "myname:smelt_raw_ruby"
    },
    "tags": ["furnace", "blast_furnace"],
    "input": "myname:raw_ruby",
    "output": "myname:ruby",
    "unlock": [
      {
        "item": "myname:raw_ruby"
      }
    ]
  }
}

input goes in the top slot, output comes out. Make myname:raw_ruby the same way as the ruby in Your first custom item, or use a vanilla item to test.

The tags field: which station?

tags lists every station that accepts the recipe. A recipe can be in several at once.

TagStation
crafting_tableCrafting table (and the 2x2 grid in the inventory if the pattern fits)
stonecutterStonecutter
furnaceFurnace
blast_furnaceBlast furnace (vanilla uses it for ores and metal)
smokerSmoker (vanilla uses it for food)
campfire, soul_campfireCampfires (food)

So a recipe that cooks food should list "furnace", "smoker", "campfire", "soul_campfire", just like vanilla raw beef does.

Item tags as ingredients

Instead of one exact item, a key or ingredient can accept a whole group of items with tag:

Inside key
"P": {
  "tag": "minecraft:planks"
}

Now any kind of planks fits that slot. This is how vanilla lets you craft a crafting table from oak, birch or any other wood. Other handy vanilla tags are minecraft:logs and minecraft:wooden_slabs.

The unlock field: the recipe book

unlock decides when the recipe shows up in the player's recipe book. Without it, players have to guess your recipe.

  • An item list: the recipe unlocks once the player has picked up any of the items. You can use "tag" here too, like { "tag": "minecraft:planks" }.
  • A context: unlock in a special situation, written as an object instead of a list:
Always in the recipe book
"unlock": {
  "context": "AlwaysUnlocked"
}

Other contexts vanilla uses are PlayerInWater and PlayerHasManyItems. For most custom recipes, unlocking on the main ingredient is the friendliest choice.

Tip

Unlock on the ingredient players get first. For the sword, that is the ruby, so the recipe pops up the moment they find their first one.

Priority: when two recipes clash

If two recipes have the same ingredients in the same shape, the game has to pick one. The "priority" field (a whole number, placed next to tags) is how recipes are ranked against each other. Vanilla uses small numbers like -1, 0, 1 and 2 for recipes that overlap, for example the barrel recipes that accept any wooden slab next to ones for a single kind of slab.

Ranking by priority is a last resort, though. The best fix is to avoid clashes: check the vanilla items and pick a pattern no other recipe uses, then test that your recipe gives the result you expect.

Test it

  1. Load the packs into a world (see Export and install).
  2. Give yourself the ingredients with /give, for example /give @s myname:ruby 5.
  3. Open the recipe book. Your recipes should appear once you hold the unlock items.
  4. Craft each one, and smelt a raw ruby.

When something goes wrong

What you seeMost likely cause
The recipe does nothingA typo in an item ID, or a character in pattern is missing from key
It is not in the recipe bookThe unlock field is missing or the player never had the unlock item
Two recipes fightSame ingredients and shape: change the pattern or set priority
The furnace ignores the itemThe tags list does not include that kind of furnace
Two recipes share an IDEvery description.identifier must be unique

More fixes are in Troubleshooting. Need something to craft? Make food, weapons and tools or armor.

Items: Guides

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