{{About|the Java and Bedrock Edition recipe system|crafting recipes|Crafting#Complete recipe list|smelting recipes|Smelting#Recipes|brewing recipes|Brewing#Recipes|the command|Commands/recipe}}

'''Recipes''' are a way to gradually guide new players into ''Minecraft'' by assisting them with the usage of crafting, smelting, and other block and item transformations in-game.<!-- This description fits things like the tutorial hints better; recipes are mainly to provide ways to obtain items. -->

Recipes are data driven and can be configured by [[data pack]]s {{in|java}} or [[add-on]]s {{in|bedrock}}. Every [[crafting]], [[smelting]], [[Blast Furnace#Usage|blasting]], [[Campfire#Cooking|campfire cooking]], [[Smoker#Smoking|smoking]], [[Stonecutter#Usage|stonecutting]] and [[Upgrade|smithing]] recipe uses this system. {{IN|bedrock}}, [[cartography table]]s and [[brewing]] recipes also use this system. [[Loom]] recipes cannot currently be controlled in any version.

== Obtaining ==

Recipes can be obtained in various ways. Using the recipe automatically makes the player discover it. Recipes can also be granted using the {{cmd|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.{{only|java}}

Once a recipe has been discovered, it is added to the player's [[recipe book]].{{only|java}} Discovered recipes are stored in the player's {{nbt|compound|recipeBook}} [[Player.dat format#NBT structure|NBT]].

== Usage ==
{{main|Recipe book}}

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 {{cmd|gamerule doLimitedCrafting}} is set to <code>true</code>.

Recipes appear only if the player is using the recipe book in a block associated to the recipe's type; for example, furnace recipes only show up when the player use the recipe book in the furnace GUI. When the player is using the recipe book in the inventory, crafting recipes appear that can fit into the player's 2×2 inventory crafting grid.

== JSON Format ==

Recipes are stored as separate JSON files in the {{code|data/minecraft/recipe}} folder in the {{code|.minecraft/versions/<version>/<version>.jar}} file. This folder can be found by changing the extension of the {{Code|code=.jar}} file to {{code|.zip}} and navigating within it.

Custom recipe files are stored in the {{code|data/<namespace>/recipe}} folder of a [[data pack]]. A recipe with ID {{code|foo:path/to/file}} would have its JSON file located at {{code|data/foo/recipe/path/to/file.json}} within a [[data pack]].

[[Data packs]] that load later with a recipe file in same resource location replace the existing recipe.

Recipe JSON files have different structures dependent on their type, but they all have a {{nbt|string|type}} tag in its root tag. These types are listed below.

=== blasting ===
Represents a recipe in a [[blast furnace]].
<div class="treeview">
* {{nbt|compound}} The root tag.
** {{nbt|string|type}}: {{code|minecraft:blasting}}
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|blocks}}{{InvSprite|Redstone Ore|scale=1}}, and {{code|misc}}{{InvSprite|Iron Shovel|scale=1}}{{InvSprite|Golden Leggings|scale=1}}. Defaults to {{code|misc}}.
** {{nbt|string|group}}: Optional. A string identifier. Used to group multiple recipes together in the recipe book. Recipes with same group identifier but different categories splits into two different groups.
** {{nbt|string}}{{nbt|list|ingredient}}: The ingredient for the recipe. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|int|cookingtime}}: Optional. The cook time of the recipe in ticks. Defaults to {{code|100}}.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
** {{nbt|double|experience}}: Optional. The output [[experience]] of the recipe.
</div>

=== campfire_cooking ===
Represents a recipe in a [[campfire]].
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:campfire_cooking}}
** {{nbt|string}}{{nbt|list|ingredient}}: The ingredient for the recipe. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|int|cookingtime}}: Optional. The cook time of the recipe in ticks. Defaults to {{code|100}}.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
</div>

Even though all vanilla campfire cooking recipes have a cook time of {{code|600}} ticks, the default is {{code|100}} ticks.

Campfire recipes do not trigger the {{code|recipe_unlocked}} criteria.

=== crafting_shaped ===
Represents a shaped crafting recipe in a [[crafting table]].

The key used in the pattern may be any single character except <code> </code>, the space character, which is reserved for empty slots in a recipe.

<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:crafting_shaped}}
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|equipment}}{{InvSprite|Iron Axe|scale=1}}{{InvSprite|Golden Sword|scale=1}}, {{code|building}}{{InvSprite|Bricks|scale=1}}, {{code|misc}}{{InvSprite|Lava Bucket|scale=1}}{{InvSprite|Apple|scale=1}}, and {{code|redstone}}{{InvSprite|Redstone Dust|scale=1}}. Defaults to {{code|misc}}.
** {{nbt|string|group}}: Optional. A string identifier. Used to group multiple recipes together in the recipe book. Recipes with same group identifier but different categories splits into two different groups.
** {{nbt|boolean|show_notification}}: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to {{code|true}}.
** {{nbt|list|pattern}}: A list of single-character keys used to describe a 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.
** {{nbt|compound|key}}: All keys used for this shaped crafting recipe.
*** {{nbt|string}}{{nbt|list|(A key)}}: An item that corresponds to this key. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|int|count}}: Optional. The amount of the item. Falls back to 1 if the field is absent.
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
</div>

=== crafting_shapeless ===
Represents a shapeless crafting recipe in a [[crafting table]].

The ingredients list must have at least one and at most nine entries.

<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:crafting_shapeless}}
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|equipment}}{{InvSprite|Iron Axe|scale=1}}{{InvSprite|Golden Sword|scale=1}}, {{code|building}}{{InvSprite|Bricks|scale=1}}, {{code|misc}}{{InvSprite|Lava Bucket|scale=1}}{{InvSprite|Apple|scale=1}}, and {{code|redstone}}{{InvSprite|Redstone Dust|scale=1}}. Defaults to {{code|misc}}.
** {{nbt|string|group}}: Optional. A string identifier. Used to group multiple recipes together in the recipe book. Recipes with same group identifier but different categories splits into two different groups.
** {{nbt|list|ingredients}}: A list of entries for this shapeless crafting recipe. Must have 1 to 9 entries.
*** {{nbt|string}}{{nbt|list}}: An entry made of a single ingredient or a list of acceptable ingredients. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|int|count}}: Optional. The amount of the item. Defaults to {{code|1}}.
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
</div>
If the recipe contains same 9 ingredients, it turns into {{code|minecraft:crafting_shaped}} recipe.

=== crafting_transmute ===
{{anchor|crafting_transmute}}
Represents a crafting recipe in a [[crafting table]].

When matched, output will copy the input item stack, changing the item type but preserving all stack components.
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: A resource location indicating the type of serializer of the recipe.
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|equipment}}{{InvSprite|Iron Axe|scale=1}}{{InvSprite|Golden Sword|scale=1}}, {{code|building}}{{InvSprite|Bricks|scale=1}}, {{code|misc}}{{InvSprite|Lava Bucket|scale=1}}{{InvSprite|Apple|scale=1}}, and {{code|redstone}}{{InvSprite|Redstone Dust|scale=1}}. Defaults to {{code|misc}}.
** {{nbt|string|group}}: Optional. A string identifier. Used to group multiple recipes together in the recipe book. Recipes with same group identifier but different categories splits into two different groups.
** {{nbt|string}}{{nbt|list|input}}: Ingredient for item to copy. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|string}}{{nbt|list|material}}: Additional ingredient to use.  Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|string|result}}: The output item of the recipe. It will keep item components from the input.
</div>

=== crafting_special_* ===
{{anchor|Crafting special *}}

Represents a crafting recipe in a [[crafting table]] that is handled with built-in logic instead of being data-driven.

When the {{code|vanilla}} [[data pack]] is disabled, they can be used to re-enable desired built-in crafting recipes.
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: A resource location indicating the type of serializer of the recipe.
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|equipment}}{{InvSprite|Iron Axe|scale=1}}{{InvSprite|Golden Sword|scale=1}}, {{code|building}}{{InvSprite|Bricks|scale=1}}, {{code|misc}}{{InvSprite|Lava Bucket|scale=1}}{{InvSprite|Apple|scale=1}}, and {{code|redstone}}{{InvSprite|Redstone Dust|scale=1}}. Defaults to {{code|misc}}.
</div>
Unlike most other recipe types, they do not have a {{code|group}} field and cannot be displayed in [[Recipe Book|recipe books]].

* {{anchor|crafting_special_armordye}}<!--
-->{{anchor|Crafting special armor dye}}<!--
-->{{code|crafting_special_armordye}}
:The [[Dye#Dyeing armor|armor dyeing]] recipe. 
:Regular recipes cannot handle multiple dyes.

* {{anchor|crafting_special_bannerduplicate}}<!--
-->{{anchor|Crafting special banner duplicate}}<!--
-->{{code|crafting_special_bannerduplicate}}
:The [[Banner#Copying|banner copying]] recipe.
:Regular recipes cannot copy [[NBT]] data associated to the [[banner]] item.

* {{anchor|crafting_special_bookcloning}}<!--
-->{{anchor|Crafting special book cloning}}<!--
-->{{code|crafting_special_bookcloning}}
:The [[Written Book#Copying|written book copying]] recipe.
:Regular recipes cannot copy NBT data associated to the [[written book]] item and cannot control the generation of copies.

* {{anchor|crafting_special_firework_rocket}}<!--
-->{{anchor|Crafting special firework rocket}}<!--
-->{{code|crafting_special_firework_rocket}}
:The [[Firework Rocket#Crafting|firework rocket]] recipe using [[firework star]]s.
:Regular recipes cannot handle inputs flexibly or add NBT data from a firework star to the firework rocket.

* {{anchor|crafting_special_firework_star}}<!--
-->{{anchor|crafting_special_firework_star_fade}}<!--
-->{{anchor|Crafting special firework star}}<!--
-->{{anchor|Crafting special firework star fade}}<!--
-->{{code|crafting_special_firework_star}}
* {{code|crafting_special_firework_star_fade}}
:The [[Firework Star#Crafting|firework star]] crafting recipes and their fade additions.
:Regular recipes cannot handle inputs flexibly or add NBT data to the firework star.

* {{anchor|crafting_special_mapcloning}}<!--
-->{{anchor|Crafting special mapcloning}}<!--
-->{{anchor|Crafting special map cloning}}<!--
-->{{code|crafting_special_mapcloning}}
:The [[Map#Cloning|map copying]] recipe.
:Regular recipes cannot copy NBT data associated to the map item.

* {{anchor|crafting_special_mapextending}}<!--
-->{{anchor|Crafting special map extending}}<!--
-->{{code|crafting_special_mapextending}}
:The [[Map#Zooming out|map zooming]] recipe.
:Regular recipes cannot update NBT data associated to the map item.
* {{anchor|crafting_special_repairitem}}<!--
-->{{anchor|Crafting special repair item}}<!--
-->{{code|crafting_special_repairitem}}
:The [[item repair]] recipe.
:Regular recipes cannot update damage data associated to the tool item.

* {{anchor|crafting_special_shielddecoration}}<!--
-->{{anchor|Crafting special shield decoration}}<!--
-->{{code|crafting_special_shielddecoration}}
:The [[Shield#Applying patterns|shield pattern]] application recipe.
:Regular recipes cannot add [[NBT]] data from a [[banner]] item to a [[shield]] item.

* {{anchor|crafting_special_tippedarrow}}<!--
-->{{anchor|Crafting special tipped arrow}}<!--
-->{{code|crafting_special_tippedarrow}}
:The [[Tipped Arrow#Crafting|tipped arrow]] recipe.
:Regular recipes cannot copy NBT data from a [[lingering potion]] item to a [[tipped arrow]] item.

=== crafting_decorated_pot ===
The [[Decorated Pot#Crafting|decorated pot]] recipe.
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:crafting_decorated_pot}}
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|equipment}}{{InvSprite|Iron Axe|scale=1}}{{InvSprite|Golden Sword|scale=1}}, {{code|building}}{{InvSprite|Bricks|scale=1}}, {{code|misc}}{{InvSprite|Lava Bucket|scale=1}}{{InvSprite|Apple|scale=1}}, and {{code|redstone}}{{InvSprite|Redstone Dust|scale=1}}. Defaults to {{code|misc}}.
</div>

=== smelting ===
Represents a recipe in a [[furnace]].
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:smelting}}
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|food}}{{InvSprite|Raw Porkchop|scale=1}}, {{code|blocks}}{{InvSprite|Stone|scale=1}}, and {{code|misc}}{{InvSprite|Lava Bucket|scale=1}}{{InvSprite|Emerald|scale=1}}. Defaults to {{code|misc}}.
** {{nbt|string|group}}: Optional. A string identifier. Used to group multiple recipes together in the recipe book. Recipes with same group identifier but different categories splits into two different groups.
** {{nbt|string}}{{nbt|list|ingredient}}: The ingredient for the recipe. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|int|cookingtime}}: Optional. The cook time of the recipe in ticks. Defaults to {{code|200}}.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
** {{nbt|double|experience}}: Optional. The output [[experience]] of the recipe.
</div>

=== smithing_transform ===
Represents a [[smithing#Upgrading|upgrading]] recipe in a [[smithing table]].
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:smithing_transform}}
** {{nbt|string}}{{nbt|list|template}}: Optional. Ingredient specifying an item to act as the template. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|string}}{{nbt|list|base}}: Optional. Ingredient specifying an item to be upgraded. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|string}}{{nbt|list|addition}}: Optional. Ingredient specifying an item to be added. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|compound|result}}: Item specifying the resulting upgraded item.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|int|count}}: Optional. The amount of the item. Defaults to {{code|1}}.
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
</div>
The resulting item copies the components of the base item.

=== smithing_trim ===
Represents a [[smithing#Trimming|trimming]] recipe in a [[smithing table]].
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:smithing_trim}}
** {{nbt|string}}{{nbt|list|template}}: Optional. Ingredient specifying an item to act as the template. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|string}}{{nbt|list|base}}: Optional. Ingredient specifying an item to be trimmed. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|string}}{{nbt|list|addition}}: Optional. Ingredient specifying an item to be added. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
</div>
Adds NBT Tags for the trim to the base item.

=== smoking ===
Represents a recipe in a [[smoker]].
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:smoking}}
** {{nbt|string|category}}: Optional. Controls to which [[recipe book]] category the recipe belongs to. Available values are: {{code|food}}{{InvSprite|Raw Porkchop|scale=1}}. Defaults to {{code|food}}.
** {{nbt|string|group}}: Optional. A string identifier. Used to group multiple recipes together in the recipe book. Recipes with same group identifier but different categories splits into two different groups.
** {{nbt|string}}{{nbt|list|ingredient}}: The ingredient for the recipe. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|int|cookingtime}}: Optional. The cook time of the recipe in ticks. Defaults to {{code|100}}.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
** {{nbt|double|experience}}: Optional. The output [[experience]] of the recipe.
</div>

=== stonecutting ===
Represents a recipe in a [[stonecutter]].
<div class="treeview">
* {{nbt|compound}}: The root tag.
** {{nbt|string|type}}: {{code|minecraft:stonecutting}}
** {{nbt|string}}{{nbt|list|ingredient}}: The ingredient for the recipe. Can be one of an {{nbt|string}} [[Java Edition data values#Items|ID]], a {{nbt|string}} [[Tag#Item Tags|tag]] with {{code|#}}, or an {{nbt|list}} array containing IDs.
** {{nbt|compound|result}}: The output item of the recipe.
*** {{nbt|string|id}}: An [[Java Edition data values#Items|item ID]].
*** {{nbt|int|count}}: Optional. The amount of the item. Defaults to {{code|1}}.
*** {{nbt|compound|components}}: Optional. Additional information about the item. See [[Data component format|item components]].
</div>

== History ==
{{HistoryTable
|{{HistoryLine|java}}
|{{HistoryLine||1.12|dev=17w13a|Introduced the recipe system for most crafting recipes.}}
|{{HistoryLine|||dev=17w16a|Added 'group' key to the recipe json format.}}
|{{HistoryLine||1.13|dev=17w47a|Removed 'data' key from the recipe json format.}}
|{{HistoryLine|||dev=17w48a|Custom recipes can now be added to data packs.
|Added {{tooltip|these 13 recipe types|crafting_special_armordye, crafting_special_banneraddpattern, crafting_special_bannerduplicate, crafting_special_bookcloning, crafting_special_firework_rocket, crafting_special_firework_star, crafting_special_firework_star_fade, crafting_special_mapcloning, crafting_special_mapextending, crafting_special_repairitem, crafting_special_shielddecoration, crafting_special_shulkerboxcoloring, crafting_special_tippedarrow}}.
|Converted various special crafting recipes to the recipe system using the special recipe types.}}
|{{HistoryLine|||dev=17w49a|Added 'tag' key to the recipe json format.}}
|{{HistoryLine|||dev=18w06a|Smelting recipes now use the recipe system.
|Added <code>smelting</code> to <code>type</code>.
|Added a string <code>result</code>.
|Added <code>experience</code>.
|Added <code>cookingtime</code>.}}
|{{HistoryLine||1.14|dev=18w43a|Added a recipe type <code>crafting_special_suspiciousstew</code>.}}
|{{HistoryLine|||dev=18w48a
|Removed {{tooltip|these 2 recipe types|crafting_special_banneraddpattern, crafting_special_repairitem}}.}}
|{{HistoryLine|||dev=18w50a
|Added recipe types <code>blasting</code> and <code>smoking</code>.}}
|{{HistoryLine|||dev=19w02a
|Added a recipe type <code>campfire_cooking</code>.}}
|{{HistoryLine|||dev=19w04a
|Added a recipe type <code>stonecutting</code>.}}
|{{HistoryLine||1.14.3|dev=pre3
|Re-added the recipe type <code>crafting_special_repairitem</code>.}}
|{{HistoryLine||1.16|dev=pre1
|Added the recipe type <code>smithing</code>.}}
|{{HistoryLine||1.18.1|dev=?
|Result count is mandatory in this version.}}
|{{HistoryLine||1.19.3|dev=22w42a|Recipe book categories are now defined for each recipe individually in the default datapack.}}
|{{HistoryLine||1.19.4|exp=Update 1.20|dev=23w04a|Removed the recipe serializer <code>smithing</code> and replaced it with <code>smithing_transform</code>, and  <code>smithing_trim</code>.}}
|{{HistoryLine|||dev=23w07a|Added a new recipe serializer <code>crafting_decorated_pot</code> for the new [[decorated pot]] recipe.|Added <code>show_notification</code> field to recipes.}}
|{{HistoryLine||1.20|dev=Pre-release 2|{{cd|"item": "minecraft:air"}} can now be used to denote an ingredient that matches an empty slot.}}
|{{HistoryLine|||dev=Pre-release 6|{{cd|"item": "minecraft:air"}} can no longer be used in data pack recipes.|Ingredients in array form are now also allowed in {{cd|d=and|smithing_trim|smithing_transform}} recipes on fields template, base and addition.}}
|{{HistoryLine||1.20.5|dev=24w10a|Can now specify item component.}}
|{{HistoryLine||1.21.2|dev=24w33a|The <code>crafting_special_suspiciousstew</code> recipe type has been removed.|The format used for recipe ingredients has been simplified and aligned with other fields that accept item lists (like item predicates).}}
|{{HistoryLine|||dev=24w38a|The <code>crafting_special_shulkerboxcoloring</code> recipe type has been removed.|Instead it use newly added <code>crafting_transmute</code> which can copy the input item stack, changing the item type but preserving all stack components.}}

|{{HistoryLine|bedrock}}
|{{HistoryLine||1.12.0|dev=beta 1.12.0.2|Introduced the recipe system for most crafting recipes.}}
|{{HistoryLine||1.19.40|dev=Preview 1.19.40.22|Added <code>tag</code> key to the recipe JSON format.}}
|{{HistoryLine||1.20.10|dev=Preview 1.20.10.20|Added <code>unlock</code> field to the recipe JSON format.}}
}}

== Issues ==
{{Issue list}}

== External links ==
* [https://misode.github.io/recipe/ Recipe Generator on misode.github.io]

== Navigation ==
{{Navbox Java Edition technical|datapack}}

[[de:Rezeptdaten]]
[[es:Receta]]
[[fr:Recette]]
[[ja:レシピ (システム)]]
[[pt:Receita]]
[[ru:Рецепт]]
[[zh:配方]]
