From Minecraft Wiki
Jump to: navigation, search
Java Edition.png
Dinnerbone-twitter.png The way it works in vanilla survival* is that you either "discover" a recipe by crafting it manually, or some other condition where we think "okay now you have sticks, we'll teach you how to make a pickaxe". After a recipe is "discovered" it's available in this recipe book, an optional thing you can click to in a crafting screen. From there you can see all the recipes you've discovered and how to craft them, so you don't need to google for the shape and ingredients.

*I say vanilla survival because this is customizable. For example, a custom map could require you to only craft things they've given you, and nothing else. In vanilla survival this is purely a tool to help remember recipes you don't use much, or teach you about new ones that you may not have known about.

Dinnerbone on using recipes[1]

Recipes are a way to gradually guide new players into Minecraft. Most crafting and all furnace recipes use this system.


Recipes can be obtained in various ways. Using the recipe will automatically make the player discover it. Recipes can also be granted using the /recipe command or as a reward for completing an advancement. Vanilla survival has multiple advancements that grant recipes, which trigger when for example the player obtains an item required in the recipe.

Once a recipe has been discovered, it will be added to the player's recipe book. Discovered recipes are stored in the player's recipeBook NBT.


Discovered recipes can be found in the player's recipe book. However, recipes do not need to be discovered for the player to be able to use them, unless /gamerule doLimitedCrafting is set to true.

Crafting recipes requiring a 3x3 grid will not show up in the recipe book when the player is using their inventory crafting grid. Likewise, furnace recipes will not show up if the player is not using a furnace.

JSON format[edit]

Custom recipes in the data/(namespace)/recipes folder of a data pack store the recipe data for that world as separate JSON files.

All recipe JSON files are structured according to the following format:

  • The root tag.
    •  type: The type of crafting recipe. Can be one of below :
      • minecraft:blasting , minecraft:campfire_cooking , minecraft:crafting_shaped , minecraft:crafting_shapeless , minecraft:smelting , minecraft:smoking,minecraft:stonecutting or minecraft:crafting_special_*
    •  group: An identifier. Used to group multiple recipes together in the recipe book.
    •  pattern: A list of keys used to describe the 3x3 pattern for shaped crafting. Each row in the crafting grid is one string in this list containing 3 or less keys. All strings in this list need to have the same amount of keys. A space can be used to indicate an empty spot.
    •  key: All keys used for shaped crafting.
      •  (A key): The single character representing this item.
        •  item: An item ID.
        •  tag: A data pack item tag.
      •  (A key): The single character representing these possible items
        • .
          •  item: An item ID.
          •  tag: A data pack item tag.
    •  ingredient: The ingredient. Used for smelting.
      •  item: An item ID.
      •  tag: A data pack item tag.
    •  ingredient: The list of ingredients. Used for smelting.
        •  item: An item ID.
        •  tag: A data pack item tag.
    •  ingredients: A list of ingredients. Used for shapeless crafting.
        •  item: An item ID.
        •  tag: A data pack item tag.
      • : list of possible ingridients.
          •  item: An item ID.
          •  tag: A data pack item tag.
    •  ingredients: A list of ingredients. Used for shapeless crafting.
        •  item: An item ID.
        •  tag: A data pack item tag.
    •  result: The output item of a crafting recipe.
      •  count: The amount of the item.
      •  item: An item ID.
    •  result: An item ID. The output item of a smelting recipe.
    •  experience: The output experience of a smelting recipe.
    •  cookingtime: The cook time of a smelting recipe in ticks.


Java Edition
1.12 17w13a Introduced the recipe system for most crafting recipes.
17w16a Added 'group' key to the recipe json format.
1.13 17w47a Removed 'data' key from the recipe json format.
17w48a Custom recipes can now be added to data packs.
Added these 13 recipe types.
Converted various special crafting recipes to the recipe system using the special recipe types.
17w49a Added 'tag' key to the recipe json format.
18w06a Smelting recipes now use the recipe system.
Added smelting to type.
Added a string result.
Added experience.
Added cookingtime.
Upcoming Java Edition
1.14 18w43a Added a recipe type crafting_special_suspiciousstew .
18w48a Removed these 2 recipe types.
18w50a Added recipe types blasting and smoking.
19w02a Added a recipe type campfire_cooking .
19w04a Added a recipe type stonecutting.


Issues relating to "Recipe" are maintained on the bug tracker. Report issues there.