Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Recipe (Bedrock Edition): Difference between revisions

From SAS Gaming Wiki
imported>Ivan-r
m Navigation: No articles in other languages
 
SyncBot (talk | contribs)
Remove broken links to missing pages
Line 1: Line 1:
{{About|the ''Bedrock Edition'' recipe system|the ''Java Edition'' recipe system|Recipe (Java Edition)|the command|Commands/recipe|other uses|Recipe}}
{{About|the ''Bedrock Edition'' recipe system|the ''Java Edition'' recipe system|Recipe (Java Edition)|the command|Commands/recipe|other uses|Recipe}}


'''Recipes''' provide a structured way for players to perform item and block transformations in-game. Every [[Minecraft:crafting]], [[Minecraft:smelting]], [[Minecraft:brewing]], [[Minecraft:Blast Furnace#Smelting|blasting]], [[Minecraft:Campfire#Cooking|campfire cooking]], [[Minecraft:Smoker#Cooking|smoking]], [[Minecraft:Stonecutter#Usage|stonecutting]] and [[Minecraft:smithing]] recipe uses this system. Recipes are data driven and can be configured by [[Minecraft:add-on]]s.
'''Recipes''' provide a structured way for players to perform item and block transformations in-game. Every [[Minecraft:crafting]], smelting, [[Minecraft:brewing]], [[Minecraft:Blast Furnace#Smelting|blasting]], [[Minecraft:Campfire#Cooking|campfire cooking]], [[Minecraft:Smoker#Cooking|smoking]], [[Minecraft:Stonecutter#Usage|stonecutting]] and smithing recipe uses this system. Recipes are data driven and can be configured by [[Minecraft:add-on]]s.


== Obtaining ==
== Obtaining ==
Line 7: Line 7:
Recipes can be obtained in various ways. Acquiring an item from the recipe causes the player to automatically discover it. Recipes can also be granted using the {{cmd|recipe}} command.
Recipes can be obtained in various ways. Acquiring an item from the recipe causes the player to automatically discover it. Recipes can also be granted using the {{cmd|recipe}} command.


Once a recipe has been discovered, it is added to the player's [[Minecraft:recipe book]].
Once a recipe has been discovered, it is added to the player's recipe book.


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


Discovered recipes can be found in the player's [[Minecraft:recipe book]]. However, recipes do not need to be discovered for the player to be able to use them, unless the {{gmr|doLimitedCrafting}} game rule is enabled. The game rule {{gmr|recipesUnlock}} can be used to disable the unlocking of recipes, making them all accessible and visible.
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 the {{gmr|doLimitedCrafting}} game rule is enabled. The game rule {{gmr|recipesUnlock}} can be used to disable the unlocking of recipes, making them all accessible and visible.


Recipes appear in the inventory's recipe book if they are 2×2 in size, otherwise they will only appear if the player is using a [[Minecraft:crafting table]].
Recipes appear in the inventory's recipe book if they are 2×2 in size, otherwise they will only appear if the player is using a crafting table.


The [[Minecraft:anvil]], [[Minecraft:cartography table]], [[Minecraft:loom]], and [[Minecraft:grindstone]] don't use the recipe system; they use different, hardcoded systems for their mechanics.
The [[Minecraft:anvil]], cartography table, [[Minecraft:loom]], and [[Minecraft:grindstone]] don't use the recipe system; they use different, hardcoded systems for their mechanics.


== JSON format ==
== JSON format ==
Line 28: Line 28:


=== recipe_shaped ===
=== recipe_shaped ===
Represents a crafting recipe with shape in a [[Minecraft:crafting table]], the [[Minecraft:inventory]], and the [[Minecraft:crafter]].
Represents a crafting recipe with shape in a crafting table, the [[Minecraft:inventory]], and the [[Minecraft:crafter]].


The key used in the pattern can be any single character except the space character <code> </code>, which is reserved for empty slots in a recipe, can also be omitted to accept the recipe format in any location that has enough space. This format is the only format that accepts multiple results.
The key used in the pattern can be any single character except the space character <code> </code>, which is reserved for empty slots in a recipe, can also be omitted to accept the recipe format in any location that has enough space. This format is the only format that accepts multiple results.
Line 126: Line 126:


=== recipe_shapeless ===
=== recipe_shapeless ===
Represents a shapeless crafting recipe in a [[Minecraft:crafting table]], [[Minecraft:inventory]] and the [[Minecraft:crafter]], and is also used for the [[Minecraft:stonecutter]].
Represents a shapeless crafting recipe in a crafting table, [[Minecraft:inventory]] and the [[Minecraft:crafter]], and is also used for the [[Minecraft:stonecutter]].


The ingredient list must have at least one and a maximum of nine entries. Unlike a recipe shaped, multiple results are not possible.
The ingredient list must have at least one and a maximum of nine entries. Unlike a recipe shaped, multiple results are not possible.
Line 240: Line 240:


=== recipe_furnace ===
=== recipe_furnace ===
Represents a [[Minecraft:smelting]] recipe in a [[Minecraft:furnace]], [[Minecraft:blast furnace]], [[Minecraft:smoker]], [[Minecraft:campfire]] and the [[Minecraft:soul campfire]].
Represents a smelting recipe in a [[Minecraft:furnace]], blast furnace, [[Minecraft:smoker]], [[Minecraft:campfire]] and the soul campfire.


It is not possible to set the amount of [[Minecraft:experience]] you will receive when smelting the item.
It is not possible to set the amount of experience you will receive when smelting the item.


<div class="treeview">
<div class="treeview">
Line 304: Line 304:


=== recipe_smithing_trim ===
=== recipe_smithing_trim ===
Represents a [[Minecraft:smithing]] recipe at a [[Minecraft:smithing table]] for adding [[Minecraft:Smithing#Trimming|trims]].
Represents a smithing recipe at a smithing table for adding trims.


It is not possible to create a custom one this is for documentation purposes only.
It is not possible to create a custom one this is for documentation purposes only.
Line 315: Line 315:
**** {{nbt|string|identifier}}: Required to detect the recipe in-game. The namespace can be omitted, but it is highly recommended to avoid conflicts.
**** {{nbt|string|identifier}}: Required to detect the recipe in-game. The namespace can be omitted, but it is highly recommended to avoid conflicts.
*** {{nbt|string}}{{nbt|list|tags}}: Defines where the recipe can be used. It can be {{code|smithing_table}} it does not support custom tags.
*** {{nbt|string}}{{nbt|list|tags}}: Defines where the recipe can be used. It can be {{code|smithing_table}} it does not support custom tags.
*** {{nbt|compound|template}}: Used to define a [[Minecraft:Smithing#Template|template]].
*** {{nbt|compound|template}}: Used to define a template.
**** {{nbt|string|tag}}: Used to set an [[Minecraft:Item tag (Bedrock Edition)|item tag]] using {{code|minecraft:trim_templates}} but has no effect on custom items with that tag.
**** {{nbt|string|tag}}: Used to set an [[Minecraft:Item tag (Bedrock Edition)|item tag]] using {{code|minecraft:trim_templates}} but has no effect on custom items with that tag.
*** {{nbt|compound|base}}: Defines the base items that will be used.
*** {{nbt|compound|base}}: Defines the base items that will be used.
**** {{nbt|string|tag}}: Used to set an item tag for the recipe being used {{code|minecraft:trimmable_armors}} Using this tag on a custom item allows the custom armor to be trimmed.
**** {{nbt|string|tag}}: Used to set an item tag for the recipe being used {{code|minecraft:trimmable_armors}} Using this tag on a custom item allows the custom armor to be trimmed.
*** {{nbt|compound|addition}}: Used to define a [[Minecraft:Smithing#Material|material]].
*** {{nbt|compound|addition}}: Used to define a material.
**** {{nbt|string|tag}}: Used to set an item tag for the recipe being used {{code|minecraft:trim_materials}} using this tag on a custom item has no effect.
**** {{nbt|string|tag}}: Used to set an item tag for the recipe being used {{code|minecraft:trim_materials}} using this tag on a custom item has no effect.
</div>
</div>
Line 346: Line 346:
{{Smithing
{{Smithing
|head=1
|head=1
|ingredients=Any [[Minecraft:Armor Trim]] +<br>Any [[Minecraft:Armor]] Piece +<br>Any [[Minecraft:Smithing#Material|Material]]
|ingredients=Any Armor Trim +<br>Any [[Minecraft:Armor]] Piece +<br>Any Material
|Any Armor Trim Smithing Template
|Any Armor Trim Smithing Template
|Netherite Helmet; Iron Chestplate; Golden Leggings; Diamond Boots; Copper Boots; Chainmail Chestplate; Leather Pants; Turtle Shell; Netherite Helmet; Iron Chestplate; Golden Leggings; Copper Boots; Diamond Boots; Chainmail Chestplate; Leather Pants; Turtle Shell; Netherite Helmet
|Netherite Helmet; Iron Chestplate; Golden Leggings; Diamond Boots; Copper Boots; Chainmail Chestplate; Leather Pants; Turtle Shell; Netherite Helmet; Iron Chestplate; Golden Leggings; Copper Boots; Diamond Boots; Chainmail Chestplate; Leather Pants; Turtle Shell; Netherite Helmet
Line 357: Line 357:


=== recipe_smithing_transform ===
=== recipe_smithing_transform ===
Represents a [[Minecraft:smithing]] recipe at a [[Minecraft:smithing table]] to perform a [[Minecraft:Smithing#Upgrading|upgrading]].
Represents a smithing recipe at a smithing table to perform a upgrading.


<div class="treeview">
<div class="treeview">
Line 366: Line 366:
**** {{nbt|string|identifier}}: Required to detect the recipe in-game. The namespace can be omitted, but it is highly recommended to avoid conflicts.
**** {{nbt|string|identifier}}: Required to detect the recipe in-game. The namespace can be omitted, but it is highly recommended to avoid conflicts.
*** {{nbt|string}}{{nbt|list|tags}}: Defines where the recipe can be used. It can be {{code|smithing_table}} it does not support custom tags.
*** {{nbt|string}}{{nbt|list|tags}}: Defines where the recipe can be used. It can be {{code|smithing_table}} it does not support custom tags.
*** {{nbt|string|template}}: Used to define a [[Minecraft:netherite upgrade]] accepting custom items if they have the [[Minecraft:Item tag (Bedrock Edition)|item tag]] {{code|minecraft:transform_templates}}.
*** {{nbt|string|template}}: Used to define a netherite upgrade accepting custom items if they have the [[Minecraft:Item tag (Bedrock Edition)|item tag]] {{code|minecraft:transform_templates}}.
*** {{nbt|string|base}}: Defines the base items that will be used, the custom item needs to have the item tag {{code|minecraft:transformable_items}}.
*** {{nbt|string|base}}: Defines the base items that will be used, the custom item needs to have the item tag {{code|minecraft:transformable_items}}.
*** {{nbt|string|addition}}: Used to define a base material, custom items with the {{code|minecraft:transform_materials}} tag can be placed, however it does not work. The only truly valid item is the [[Minecraft:netherite ingot]] with the id {{code|minecraft:netherite_ingot}}.
*** {{nbt|string|addition}}: Used to define a base material, custom items with the {{code|minecraft:transform_materials}} tag can be placed, however it does not work. The only truly valid item is the netherite ingot with the id {{code|minecraft:netherite_ingot}}.
*** {{nbt|string|result}}: Used to set an item as a recipe result.
*** {{nbt|string|result}}: Used to set an item as a recipe result.
</div>
</div>
Line 400: Line 400:


=== recipe_brewing_mix ===
=== recipe_brewing_mix ===
Represents a [[Minecraft:brewing]] recipe on a [[Minecraft:brewing stand]].
Represents a [[Minecraft:brewing]] recipe on a brewing stand.


Vanilla potions use this system {{code|minecraft:potion_type:<potion_effect>}} can be added {{cd|long_}} or {{cd|strong_}} for other types like {{cd|minecraft:potion_type:strong_poison}} also accepted is {{cd|minecraft:potion}}, {{cd|minecraft:splash_potion}} and {{cd|minecraft:lingering_potion}}.
Vanilla potions use this system {{code|minecraft:potion_type:<potion_effect>}} can be added {{cd|long_}} or {{cd|strong_}} for other types like {{cd|minecraft:potion_type:strong_poison}} also accepted is {{cd|minecraft:potion}}, {{cd|minecraft:splash_potion}} and {{cd|minecraft:lingering_potion}}.
Line 443: Line 443:


=== recipe_brewing_container ===
=== recipe_brewing_container ===
Represents a [[Minecraft:brewing]] recipe focused on changing one type into another in a [[Minecraft:brewing stand]].
Represents a [[Minecraft:brewing]] recipe focused on changing one type into another in a brewing stand.


Vanilla potions use this system {{code|minecraft:potion_type:<potion_effect>}} can be added {{cd|long_}} or {{cd|strong_}} for other types like {{cd|minecraft:potion_type:strong_poison}} also accepted is {{cd|minecraft:potion}}, {{cd|minecraft:splash_potion}} and {{cd|minecraft:lingering_potion}}.
Vanilla potions use this system {{code|minecraft:potion_type:<potion_effect>}} can be added {{cd|long_}} or {{cd|strong_}} for other types like {{cd|minecraft:potion_type:strong_poison}} also accepted is {{cd|minecraft:potion}}, {{cd|minecraft:splash_potion}} and {{cd|minecraft:lingering_potion}}.
Line 487: Line 487:
=== recipe_material_reduction ===
=== recipe_material_reduction ===
{{education feature}}
{{education feature}}
Represents a [[Minecraft:Minecraft Education]] recipe in a [[Minecraft:material reducer]].
Represents a [[Minecraft:Minecraft Education]] recipe in a material reducer.


<div class="treeview">
<div class="treeview">

Revision as of 16:02, 9 April 2026


Recipes provide a structured way for players to perform item and block transformations in-game. Every Minecraft:crafting, smelting, Minecraft:brewing, blasting, campfire cooking, smoking, stonecutting and smithing recipe uses this system. Recipes are data driven and can be configured by Minecraft:add-ons.

Obtaining

Recipes can be obtained in various ways. Acquiring an item from the recipe causes the player to automatically discover it. Recipes can also be granted using the Template:Cmd command.

Once a recipe has been discovered, it is added to the player's recipe book.

Usage

Template:Main

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 the Template:Gmr game rule is enabled. The game rule Template:Gmr can be used to disable the unlocking of recipes, making them all accessible and visible.

Recipes appear in the inventory's recipe book if they are 2×2 in size, otherwise they will only appear if the player is using a crafting table.

The Minecraft:anvil, cartography table, Minecraft:loom, and Minecraft:grindstone don't use the recipe system; they use different, hardcoded systems for their mechanics.

JSON format

Vanilla recipes are stored as separate Minecraft:JSON files in the Template:Code or Template:Code within the game files.

Vanilla recipes can be easily accessed in the Template:Code folder on the official sample github for addons.

Custom recipe files are stored in the Template:Code in a Minecraft:add-on, but it is allowed to add the recipe to a subfolder, allowing the creation of new recipes and the editing of vanilla recipes.

Recipe JSON files have different structures depending on their type. These types are listed below.

recipe_shaped

Represents a crafting recipe with shape in a crafting table, the Minecraft:inventory, and the Minecraft:crafter.

The key used in the pattern can be any single character except the space character , which is reserved for empty slots in a recipe, can also be omitted to accept the recipe format in any location that has enough space. This format is the only format that accepts multiple results.

Usage example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",
 "minecraft:recipe_shaped": {
   "description": {
   "identifier": "minecraft:cake"
   },


   "tags": [ "crafting_table" ],
   "pattern": [
     "AAA",
     "BEB",
     "CCC"
   ],
   "key": {
     "A": {
       "item": "minecraft:bucket",
       "data": 1
     },
     "B": {
       "item": "minecraft:sugar"
     },
     "C": {
       "item": "minecraft:wheat"
     },
     "E": {
       "tag": "minecraft:egg"
     }
   },

"unlock": [

     {
       "tag": "minecraft:egg"
     }
   ],
  "result": {
     "item": "minecraft:cake",
     "count": 1
   } // for single result
   "result": [
     { "item": "minecraft:cake" },
     { "item": "minecraft:bucket", "count": 3, "data": 0 } // to have multiple results
   ]
 }

} </syntaxhighlight>

Template:Crafting

recipe_shapeless

Represents a shapeless crafting recipe in a crafting table, Minecraft:inventory and the Minecraft:crafter, and is also used for the Minecraft:stonecutter.

The ingredient list must have at least one and a maximum of nine entries. Unlike a recipe shaped, multiple results are not possible.

Crafting table example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",
 "minecraft:recipe_shapeless": {
   "description": {
   "identifier": "minecraft:flint_and_steel"
   },


   "tags": [ "crafting_table" ],
   "ingredients": [
     {
       "item": "minecraft:iron_ingot"
     },
     {
       "item": "minecraft:flint"
     }
   ],

"unlock": [

     {
       "item": "minecraft:flint"

}, { "item": "minecraft:obsidian"

     }
   ],
   "result": {
     "item": "minecraft:flint_and_steel"
   }
 }

} </syntaxhighlight>

Template:Crafting

Stonecutter Example Json: <syntaxhighlight lang="c++"> {

   "format_version": "1.20.10",
   "minecraft:recipe_shapeless": {
       "description": {
           "identifier": "minecraft:polished_deepslate_stairs_from_cobbled_deepslate_stonecutting"
       },
     "tags": ["stonecutter"],
       "ingredients": [
           {
               "data": 0,
               "item": "minecraft:cobbled_deepslate"
           }
       ],
       "unlock": [
         {
           "item": "minecraft:cobbled_deepslate"
         }
       ],
       "result": {
           "count": 1,
           "data": 0,
           "item": "minecraft:polished_deepslate_stairs"
       },
     "priority": 0
   }

} </syntaxhighlight>

Template:Stonecutting

recipe_furnace

Represents a smelting recipe in a Minecraft:furnace, blast furnace, Minecraft:smoker, Minecraft:campfire and the soul campfire.

It is not possible to set the amount of experience you will receive when smelting the item.

Usage example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",
 "minecraft:recipe_furnace": {
   "description": {
   "identifier": "minecraft:furnace_log"
   },
   "unlock": [
     {
       "tag": "minecraft:logs_that_burn"
     }
   ],
   "tags": ["furnace"],
   "input": {
     "tag": "minecraft:logs_that_burn"
   },
   "output": {
     "item": "minecraft:charcoal",
     "count": 1
    },
   "priority": -1
 }

} </syntaxhighlight>

Template:Smelting

recipe_smithing_trim

Represents a smithing recipe at a smithing table for adding trims.

It is not possible to create a custom one this is for documentation purposes only.

Usage example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",
 "minecraft:recipe_smithing_trim": {
   "description": {
     "identifier": "minecraft:smithing_armor_trim"
   },
   "tags": [ "smithing_table" ],
   "template": {
     "tag": "minecraft:trim_templates"
   },
   "base": {
     "tag": "minecraft:trimmable_armors"
   },
   "addition": {
     "tag": "minecraft:trim_materials"
   }
 }

} </syntaxhighlight>

Template:Smithing

recipe_smithing_transform

Represents a smithing recipe at a smithing table to perform a upgrading.

Usage example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",
 "minecraft:recipe_smithing_transform": {
   "description": {
     "identifier": "minecraft:smithing_netherite_chestplate"
   },
   "tags": [ "smithing_table" ],
   "template": "minecraft:netherite_upgrade_smithing_template",
   "base": "minecraft:diamond_chestplate",
   "addition": "minecraft:netherite_ingot",
   "result": "minecraft:netherite_chestplate"
 }

} </syntaxhighlight>

Template:Smithing

recipe_brewing_mix

Represents a Minecraft:brewing recipe on a brewing stand.

Vanilla potions use this system Template:Code can be added Template:Cd or Template:Cd for other types like Template:Cd also accepted is Template:Cd, Template:Cd and Template:Cd.

  • Template:Nbt: The root tag.
    • Template:Nbt: Used to set the version your recipe should work on e.g. Template:Cd.
    • Template:Nbt: Used to set the fermentation recipe type.
      • Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
        • Template:Nbt: Required to detect the recipe in-game. The namespace can be omitted, but it is highly recommended to avoid conflicts.
      • Template:NbtTemplate:Nbt: Defines where the recipe can be used. Template:Code does not support custom tags.
      • Template:Nbt: Item used for this brew recipe, supports custom items and vanilla items in the format mentioned above.
      • Template:Nbt: Used to define an item or block that is used as an ingredient also supports custom items.
      • Template:Nbt: Recipe result item, supports custom items and vanilla items in the format mentioned above.

Usage example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",
 "minecraft:recipe_brewing_mix": {
   "description": {
     "identifier": "minecraft:brew_awkward_poison"
   },
   "tags": [ "brewing_stand" ],
   "input": "minecraft:potion_type:awkward",
   "reagent": "minecraft:spider_eye",
   "output": "minecraft:potion_type:poison"
 }

} </syntaxhighlight> Template:Brewing

recipe_brewing_container

Represents a Minecraft:brewing recipe focused on changing one type into another in a brewing stand.

Vanilla potions use this system Template:Code can be added Template:Cd or Template:Cd for other types like Template:Cd also accepted is Template:Cd, Template:Cd and Template:Cd.

  • Template:Nbt: The root tag.
    • Template:Nbt: Used to set the version your recipe should work on e.g. Template:Cd.
    • Template:Nbt: Used to set the fermentation recipe type.
      • Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
        • Template:Nbt: Required to detect the recipe in-game. The namespace can be omitted, but it is highly recommended to avoid conflicts.
      • Template:NbtTemplate:Nbt: Defines where the recipe can be used. Template:Code does not support custom tags.
      • Template:Nbt: Item used for this brewing recipe, unlike the mix only supports vanilla potions items in the format mentioned above.
      • Template:Nbt: Used to define an item or block that is used as an ingredient also supports custom items.
      • Template:Nbt: Recipe result item, supports custom items and vanilla items in the format mentioned above.

Usage example json: <syntaxhighlight lang="c++"> {

 "format_version": "1.20.10",

"minecraft:recipe_brewing_container": {

   "description": {
     "identifier": "minecraft:brew_potion_sulphur"
   },
   "tags": [ "brewing_stand" ],
   "input": "minecraft:potion",
   "reagent": "minecraft:gunpowder",
   "output": "minecraft:splash_potion"
 }

} </syntaxhighlight> Template:Brewing

recipe_material_reduction

Template:Education feature Represents a Minecraft:Minecraft Education recipe in a material reducer.

Usage example json: <syntaxhighlight lang="c++"> {

  "format_version" : "1.14",
  "minecraft:recipe_material_reduction" : {
     "description" : {
        "identifier" : "minecraft:cobblestone_wall:4"
     },
     "input" : "minecraft:andesite_wall",
     "output" : [
        {
           "count" : 33,
           "item" : "minecraft:element_14"
        },
        {
           "count" : 64,
           "item" : "minecraft:element_8"
        },
        {
           "count" : 3,
           "item" : "minecraft:element_8"
        }
     ],
     "tags" : "material_reducer"
  }

} </syntaxhighlight>

History

Template:HistoryTable

Issues

Template:Issue list

External links

Navigation

Template:Navbox Bedrock Edition