Java Edition only
|“||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|
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
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
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.
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 these 16 types.
smelting[upcoming 1.13] is used for furnace recipes.
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.
ingredient: The ingredient. Used for smelting.[upcoming 1.13]
item: An item ID.
tag: A data pack item tag.
ingredients: A list of ingredients. Used for shapeless crafting.
result: The output item of a crafting recipe.
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.
|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 special crafting types.|
|Converted various special crafting recipes to the recipe system using the special crafting types.|
|17w49a||Added 'tag' key to the recipe json format.|
|18w06a||Furnace recipes now use the recipe system.|
|Added a string