Minecraft:Recipe (Bedrock Edition)
More actions
|
For the {{{Description}}} of the same name, see [[{{{Destination}}}]]. |
Recipes provide a structured way for players to perform item and block transformations in-game. Every Minecraft:crafting, Minecraft:smelting, Minecraft:brewing, blasting, campfire cooking, smoking, stonecutting and Minecraft: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 Minecraft:recipe book.
Usage
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 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 Minecraft: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.
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 Minecraft: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.
- 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 define the 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. This can be a Template:Code or a custom crafting table tag.
- Template:Nbt: Optional used only for information as it has no known use.
- Template:Nbt: A list of single-character keys used to describe a pattern for creating shapes. Each row in the creation grid is a sequence in this list containing 3 or fewer keys. All strings in this list must have the same number of keys. A space can be used to indicate empty space.
- Template:Nbt: All keys used for this crafting recipe with shape.
- Template:Nbt:
- Template:Nbt: Used to define an item or block with the id example Template:Code.
- Template:Nbt: Optional. Integer or Minecraft:Molang expression for dynamic variants.
- Template:Nbt: Used to define an item tag example Template:Code also accepts custom tags.
- Template:Nbt:
- Template:Nbt: Defines the items that unlock the recipe when caught.
- Template:Nbt:
- Template:Nbt: Used to define an item or block that unlocks the recipe.
- Template:Nbt: Optional. Integer or Molang expression for dynamic variants.
- Template:Nbt: Used to set an item tag that unlocks the recipe, also accepts custom tags.
- Template:Nbt: Used to unlock recipes with context currently only known values are Template:Cd and Template:Cd.
- Template:Nbt: Defines the recipe result.
- Template:Nbt: Used to define an item or block that you will receive when crafting the recipe.
- Template:Nbt: Optional. Integer or Molang expression for dynamic variants.
- Template:Nbt: Optional. Number of items manufactured example Template:Code.
- Template:Nbt: Optional, used to give priority if the same recipe exists in duplicate.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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>
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.
The ingredient list must have at least one and a maximum of nine entries. Unlike a recipe shaped, multiple results are not possible.
- 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 type recipe shapeless.
- 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. This can be Template:Code for the crafting table, Template:Code for the Minecraft:stonecutter, or a custom crafting table tag.
- Template:Nbt: Optional used only for information as it has no known use.
- Template:Nbt: All items used for this shapeless crafting recipe.
- Template:Nbt:
- Template:Nbt: Used to define an item or block with the id example Template:Code.
- Template:Nbt: Optional. Integer or Minecraft:Molang expression for dynamic variants.
- Template:Nbt: Used to define an item tag example Template:Code also accepts custom tags.
- Template:Nbt:
- Template:Nbt: Defines the items that unlock the recipe when purchased.
- Template:Nbt:
- Template:Nbt: Used to define an item or block that unlocks the recipe.
- Template:Nbt: Optional. Integer or Molang expression for dynamic variants.
- Template:Nbt: Used to set an item tag that unlocks the recipe, also accepts custom tags.
- Template:Nbt: Used to unlock recipes with context currently only known values are Template:Cd and Template:Cd.
- Template:Nbt: Defines the result of the recipe.
- Template:Nbt: Used to define an item or block that you will receive when crafting the recipe.
- Template:Nbt: Optional. Integer or Molang expression for dynamic variants.
- Template:Nbt: Optional. Number of items produced example Template:Code.
- Template:Nbt: Optional, used to give priority if the same recipe exists in duplicate.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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>
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>
recipe_furnace
Represents a Minecraft:smelting recipe in a Minecraft:furnace, Minecraft:blast furnace, Minecraft:smoker, Minecraft:campfire and the Minecraft:soul campfire.
It is not possible to set the amount of Minecraft:experience you will receive when smelting the item.
- 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 type of smelting recipe.
- 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. It can be Template:Code for the standard furnace, Template:Code for the blast furnace, Template:Code for the smoker, Template:Code for the campfire and Template:Code for the soul campfire. Unlike it does not support custom tags.
- Template:Nbt: Optional used only for information as it has no known use.
- Template:Nbt: All items used for this smelting recipe.
- Template:Nbt: Used to define an item or block with the id example Template:Code.
- Template:Nbt: Optional. Integer or Minecraft:Molang expression for dynamic variants.
- Template:Nbt: Used to define an item tag example Template:Code also accepts custom tags.
- Template:Nbt: Defines the items that unlock the recipe, but without use as there is no recipe book for smelting blocks.
- Template:Nbt:
- Template:Nbt: Used to define an item or block that unlocks the recipe.
- Template:Nbt: Optional. Integer or Molang expression for dynamic variants.
- Template:Nbt: Used to set an item tag that unlocks the recipe, also accepts custom tags.
- Template:Nbt: Used to unlock recipes with context currently only known values are Template:Cd and Template:Cd.
- Template:Nbt: Defines the result of the recipe.
- Template:Nbt: Used to define an item or block that you will receive when crafting the recipe.
- Template:Nbt: Optional. Integer or Molang expression for dynamic variants.
- Template:Nbt: Optional. Number of items manufactured example Template:Code.
- Template:Nbt: Optional, used to give priority if the same recipe exists in duplicate.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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>
recipe_smithing_trim
Represents a Minecraft:smithing recipe at a Minecraft:smithing table for adding trims.
It is not possible to create a custom one this is for documentation purposes only.
- 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 type of smithing recipe.
- 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. It can be Template:Code it does not support custom tags.
- Template:Nbt: Used to define a template.
- Template:Nbt: Used to set an item tag using Template:Code but has no effect on custom items with that tag.
- Template:Nbt: Defines the base items that will be used.
- Template:Nbt: Used to set an item tag for the recipe being used Template:Code Using this tag on a custom item allows the custom armor to be trimmed.
- Template:Nbt: Used to define a material.
- Template:Nbt: Used to set an item tag for the recipe being used Template:Code using this tag on a custom item has no effect.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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>
recipe_smithing_transform
Represents a Minecraft:smithing recipe at a Minecraft:smithing table to perform a upgrading.
- 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 type of smithing recipe.
- 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. It can be Template:Code it does not support custom tags.
- Template:Nbt: Used to define a Minecraft:netherite upgrade accepting custom items if they have the item tag Template:Code.
- Template:Nbt: Defines the base items that will be used, the custom item needs to have the item tag Template:Code.
- Template:Nbt: Used to define a base material, custom items with the Template:Code tag can be placed, however it does not work. The only truly valid item is the Minecraft:netherite ingot with the id Template:Code.
- Template:Nbt: Used to set an item as a recipe result.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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>
recipe_brewing_mix
Represents a Minecraft:brewing recipe on a Minecraft: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.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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 Minecraft: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.
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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 Minecraft:material reducer.
- 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 recipe type of the material reducer.
- 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:Nbt: Defines where the recipe can be used. Template:Code does not support custom tags.
- Template:Nbt: Item used for this recipe.
- Template:Nbt: Defines the result of the recipe.
- Template:Nbt:
- Template:Nbt: Optional. Number of items as result example Template:Code.
- Template:Nbt: Used to define an item or block that you will receive when crafting the recipe.
- Template:Nbt:
- Template:Nbt: Required in any type of recipe, it contains the identifier of a recipe.
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>