Recipe (Java Edition)
Minecraft Wiki article. Categories: Needs_updating, Pending_split, Missing_discussion_link_for_split, In_development, In_development_Java_Edition, Java_Edition_upcoming, Data_packs
This article is reproduced from Recipe (Java Edition) on the Minecraft Wiki. Mirrored from revision 3697058. It is licensed CC BY-NC-SA 3.0 by the Minecraft Wiki contributors — not under the Codex’s CC BY-SA 4.0, and it may not be used commercially. Edits belong upstream, not here.
Reason: Many changes in Java Edition 26.1 Snapshot 5 are not documented.
Recipes provide a structured way for players to perform item and block transformations in-game. Every crafting, smelting, blasting, campfire cooking, smoking, stonecutting and smithing recipe uses this system. Recipes are data driven and can be configured by data packs.
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 /recipe command. Advancements can be configured to award recipes when triggered; in vanilla, there are many 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 is added to the player's recipe book. Discovered recipes are stored in the player's [NBT Compound / JSON Object] recipeBook NBT.
Usage
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 doLimitedCrafting game rule is enabled.
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 recipe book can also be used in the furnace, showing exclusively smelting recipes.
The anvil, cartography table, loom, brewing stand, and grindstone don't use the recipe system; they use different, hardcoded systems for their mechanics.
JSON format
Vanilla recipes are stored as separate JSON files in the data/minecraft/recipe folder in the .minecraft/versions/<version>/<version>.jar file. This folder can be found by changing the extension of the .jar file to .zip and navigating within it.
Custom recipe files are stored in the data/<namespace>/recipe folder of a data pack. A recipe with ID foo:path/to/file would have its JSON file located at data/foo/recipe/path/to/file.json within a data pack. Data packs that load later with a recipe file in same identifier replace the existing recipe.
Recipe JSON files have different structures dependent on their type, but they all have a [String] type tag in its root tag. These types are listed below.
blasting
Represents a recipe in a blast furnace.
- [NBT Compound / JSON Object] The root tag.
- [String] type:
minecraft:blasting - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
blocksandmisc. Defaults tomisc. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] ingredient: The ingredient for the recipe. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [Int] cookingtime: Optional. The cook time of the recipe in ticks. Defaults to
100. - [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [Double] experience: Optional. The output experience of the recipe.
- [String] type:
Usage example json:
{
"type": "minecraft:blasting",
"category": "misc",
"cookingtime": 100,
"experience": 0.1,
"group": "coal",
"ingredient": "minecraft:coal_ore",
"result": {
"id": "minecraft:coal"
}
}
| Name | Ingredients | Smelting recipe | Description |
|---|---|---|---|
| Coal | Coal Ore + Any fuel |
Illustrative recipe |
brewing
Represents a recipe in a brewing stand.
- [NBT Compound / JSON Object] The root tag.
- [String] type:
minecraft:brewing - [NBT Compound / JSON Object] input: The input bottle item of the recipe.
- [String] item: An item ID.
- [NBT Compound / JSON Object] potion_contents: Optional.
- [String] potion: Optional. Additional information about the item. See Potion § Item data.
- [NBT Compound / JSON Object] reagent: The input potion ingredient item of the recipe.
- [String] item: An item ID.
- [NBT Compound / JSON Object] potion_contents: Optional.
- [String] potion: Optional. Additional information about the item. See Potion § Item data.
- [NBT Compound / JSON Object] output: The output item of the recipe.
- [String] id: An item ID.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String] type:
Usage example json:
{
"type": "minecraft:brewing",
"input": {
"item": "minecraft:potion",
"potion_contents": {
"potion": "minecraft:water"
}
},
"output": {
"components": {
"minecraft:potion_contents": {
"potion": "minecraft:awkward"
}
},
"id": "minecraft:potion"
},
"reagent": {
"item": "minecraft:nether_wart"
}
}
| Ingredients | Brewing recipe |
|---|---|
| Nether Wart + Water Bottle |
campfire_cooking
Represents a recipe in a campfire.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:campfire_cooking - [String] category: Optional. Does nothing for campfire recipes, since campfires do not have a recipe book. Available values are:
food. Defaults tofood. - [String] group: Optional. Does nothing for campfire recipes, since campfires do not have a recipe book.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] ingredient: The ingredient for the recipe. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [Int] cookingtime: Optional. The cook time of the recipe in ticks. Defaults to
100. - [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [Double] experience: Optional. Does nothing for campfire recipes, since they do not drop experience.
- [String] type:
Usage example json:
{
"type": "minecraft:campfire_cooking",
"category": "food",
"cookingtime": 600,
"experience": 0.35,
"ingredient": "minecraft:potato",
"result": {
"id": "minecraft:baked_potato"
}
}
Even though all vanilla campfire cooking recipes have a cook time of 600 ticks, the default is 100 ticks.
Campfire recipes do not trigger the recipe_unlocked criteria.
crafting_dye
Represents an armor dyeing recipe in a crafting table, the survival inventory and the crafter.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:crafting_dye - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc. - [String][NBT List / JSON Array] dye: An item that corresponds to the dyes usable on this object. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs.- The
minecraft:dyecomponent is required on matching items for the whole recipe to match
- The
- [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Falls back to 1 if the field is absent.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String][NBT List / JSON Array] target: The item this recipe applies to. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs.
- [String] type:
Usage example json:
{
"type": "minecraft:crafting_dye",
"category": "misc",
"dye": "#minecraft:dyes",
"group": "dyed_armor",
"result": {
"id": "minecraft:leather_horse_armor"
},
"target": "minecraft:leather_horse_armor"
}
crafting_imbue
Represents a crafing recipe in a Crafting Table and Crafter. With one item in the center and eight other items around it. The result keeps the potion_contents from the source item.
Used for the Tipped Arrow crafting recipe.
[NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:crafting_imbue - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true - [String] source: The ingredient which is in the center of the crafting grid.
- [String] material
: The ingredient which is in the eight other slots.
- [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
crafting_shaped
Represents a shaped crafting recipe in a crafting table, the survival inventory and the crafter.
The key used in the pattern may be any single character except , the space character, which is reserved for empty slots in a recipe.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:crafting_shaped - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [NBT List / JSON Array] 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 / JSON Object] key: All keys used for this shaped crafting recipe.
- [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Falls back to 1 if the field is absent.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String] type:
Usage example json:
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"A": "minecraft:milk_bucket",
"B": "minecraft:sugar",
"C": "minecraft:wheat",
"E": "#minecraft:eggs"
},
"pattern": [
"AAA",
"BEB",
"CCC"
],
"result": {
"count": 1,
"id": "minecraft:cake"
}
}
| Ingredients | Crafting recipe | Description |
|---|---|---|
| Milk Bucket + Sugar + Any Egg + Wheat |
Illustrative recipe. |
crafting_shapeless
Represents a shapeless crafting recipe in a crafting table, the survival inventory and the crafter.
The ingredients list must have at least one and at most nine entries.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:crafting_shapeless - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [NBT List / JSON Array] ingredients: A list of entries for this shapeless crafting recipe. Must have 1 to 9 entries.
- [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String] type:
Usage example json:
{
"type": "minecraft:crafting_shapeless",
"category": "equipment",
"ingredients": [
"minecraft:iron_ingot",
"minecraft:flint"
],
"result": {
"count": 1,
"id": "minecraft:flint_and_steel"
}
}
| Ingredients | Crafting recipe | Description |
|---|---|---|
| Iron Ingot + Flint |
Illustrative recipe. |
If the recipe contains the same 9 ingredients, it turns into minecraft:crafting_shaped recipe.
crafting_transmute
Represents a crafting recipe in a crafting table, a crafter and the survival inventory.
When matched, output copies the input item stack, changing the item type or, optionally, the original stack components.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:crafting_transmute - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] input: Ingredient for item to copy. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [String][NBT List / JSON Array] material: Additional ingredient to use. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [Int][NBT Compound / JSON Object] material_count: Optional. The allowed amount of slots containing the item matched by the
materialingredient. Can be an [Int] integer or an [NBT Compound / JSON Object] integer range (inclusive) with the fields below. Defaults to1- [Int] min: The minimum amount of slots, must be at least
1. - [Int] max: The maximum amount of slots, must be at most
8.
- [Int] min: The minimum amount of slots, must be at least
- [Boolean] add_material_count_to_result: When
true, the amount of slots containing items matched by thematerialingredient will be added to the final count of the result. Defaults tofalse - [NBT Compound / JSON Object] result: The output item of the recipe, keeping the components of the
inputingredient.- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Can override or remove components of the
inputingredient. See item components.
- [String] type:
Usage example json:
{
"type": "minecraft:crafting_transmute",
"category": "misc",
"group": "shulker_box_dye",
"input": "#minecraft:shulker_boxes",
"material": "minecraft:blue_dye",
"result": {
"id": "minecraft:blue_shulker_box"
}
}
| Ingredients | Crafting recipe | Description |
|---|---|---|
| Any Shulker Box + Blue Dye |
Illustrative recipe. |
crafting_special_*
Represents a crafting recipe in a crafting table, a crafter and the survival inventory that is handled with built-in logic instead of being data-driven.
When the vanilla data pack is disabled, they can be used to re-enable desired built-in crafting recipes.
- [NBT Compound / JSON Object]: The root tag.
- [String] type: A identifier indicating the type of serializer of the recipe.
- [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc.
Unlike most other recipe types, they do not have a group field and cannot be displayed in recipe books.
crafting_special_armordye*[removed in Java Edition 26.1]
- The armor dyeing recipe.
- Regular recipes cannot handle multiple dyes.
crafting_special_bannerduplicate
- The banner copying recipe.
- Regular recipes cannot copy NBT data associated to the banner item.
- Additional fields:
- [String] banner: The item used for both the source and target. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [NBT Compound / JSON Object] result: The output item of the recipe. Preserves all components of the source item.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String] banner: The item used for both the source and target. Can be one of an [String] ID, a [String] tag with
crafting_special_bookcloning
- The written book copying recipe.
- Regular recipes cannot copy NBT data associated to the written book item and cannot control the generation of copies.
- Additional fields:
- [String] source: Ingredient to be used as source book.
written_book_contentsrequired to match recipe. Will be kept in crafting grid. Can be one of an [String] ID, a [String] tag with#, or an [NBT List / JSON Array] array containing IDs. - [String] material: Ingredient to target the item to be cloned. Number of items beyond the first one will be added to the result stack size. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [NBT List / JSON Array] allowed_generations
- [String] source: Ingredient to be used as source book.
: Integer range describing the allowed value of generation field of written_book_contents. Must be a subrange of [0, 2]. Defaults to [0, 1]
- [Int]: The minimum generation.
- [Int]: The maximum generation.
- [NBT Compound / JSON Object] result: The output item of the recipe. Preserves all components of the source item, but
generationfield inwritten_book_contentsis incremented by 1.- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
crafting_special_firework_rocket
- The firework rocket recipe using firework stars.
- Regular recipes cannot handle inputs flexibly or add NBT data from a firework star to the firework rocket.
crafting_special_firework_starcrafting_special_firework_star_fade
- The firework star crafting recipes and their fade additions.
- Regular recipes cannot handle inputs flexibly or add NBT data to the firework star.
crafting_special_mapcloning*[removed in Java Edition 26.1]
- The map copying recipe.
- Regular recipes cannot copy NBT data associated to the map item.
crafting_special_mapextending
- The map zooming recipe.
- Regular recipes cannot update NBT data associated to the map item.
crafting_special_repairitem
- The item repair recipe.
- Regular recipes cannot update damage data associated to the tool item.
crafting_special_shielddecoration
- The shield pattern application recipe.
- Regular recipes cannot add NBT data from a banner item to a shield item.
crafting_special_tippedarrow*[removed in Java Edition 26.1]
- The 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 recipe in a crafting table and a crafter.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:crafting_decorated_pot - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
equipment,building,misc, andredstone. Defaults tomisc.
- [String] type:
smelting
Represents a recipe in a furnace.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:smelting - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
food,blocks, andmisc. Defaults tomisc. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] ingredient: The ingredient for the recipe. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [Int] cookingtime: Optional. The cook time of the recipe in ticks. Defaults to
200. - [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [Double] experience: Optional. The output experience of the recipe.
- [String] type:
Usage example json:
{
"type": "minecraft:smelting",
"category": "blocks",
"cookingtime": 200,
"experience": 0.1,
"ingredient": "minecraft:stone_bricks",
"result": {
"id": "minecraft:cracked_stone_bricks"
}
}
| Name | Ingredients | Smelting recipe | Description |
|---|---|---|---|
| Cracked Stone Bricks | Stone Bricks + Any fuel |
Illustrative recipe |
smithing_transform
Represents a upgrading recipe in a smithing table.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:smithing_transform - [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] template: Optional. Ingredient specifying an item to act as the template. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [String][NBT List / JSON Array] base: Ingredient specifying an item to be upgraded. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [String][NBT List / JSON Array] addition: Optional. Ingredient specifying an item to be added. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [NBT Compound / JSON Object] result: Item specifying the resulting upgraded item.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String] type:
The resulting item copies the components of the base item. Usage example json:
{
"type": "minecraft:smithing_transform",
"addition": "#minecraft:netherite_tool_materials",
"base": "minecraft:diamond_axe",
"result": {
"id": "minecraft:netherite_axe"
},
"template": "minecraft:netherite_upgrade_smithing_template"
}
| Ingredients | Smithing recipe | Description |
|---|---|---|
| Netherite Upgrade + Diamond Axe + Netherite Ingot |
Illustrative recipe. |
smithing_trim
Represents a trimming recipe in a smithing table.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:smithing_trim - [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] template: Optional. Ingredient specifying an item to act as the template. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [String][NBT List / JSON Array] base: Ingredient specifying an item to be trimmed. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [String][NBT List / JSON Array] addition: Optional. Ingredient specifying an item to be added. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs.
- [String] type:
Adds NBT Tags for the trim to the base item. Usage example json:
{
"type": "minecraft:smithing_trim",
"addition": "#minecraft:trim_materials",
"base": "#minecraft:trimmable_armor",
"pattern": "minecraft:silence",
"template": "minecraft:silence_armor_trim_smithing_template"
}
| Ingredients | Smithing recipe | Description |
|---|---|---|
| Silence Armor Trim + Any Armor Piece + Any Material |
Illustrative recipe. |
smoking
Represents a recipe in a smoker.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:smoking - [String] category: Optional. Controls to which recipe book category the recipe belongs to. Available values are:
food. Defaults tofood. - [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.
- [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] ingredient: The ingredient for the recipe. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [Int] cookingtime: Optional. The cook time of the recipe in ticks. Defaults to
100. - [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [Double] experience: Optional. The output experience of the recipe.
- [String] type:
Usage example json:
{
"type": "minecraft:smoking",
"category": "food",
"cookingtime": 100,
"experience": 0.35,
"ingredient": "minecraft:beef",
"result": {
"id": "minecraft:cooked_beef"
}
}
| Name | Ingredients | Smelting recipe | Description |
|---|---|---|---|
| Steak | Raw Beef + Any fuel |
Illustrative recipe. |
stonecutting
Represents a recipe in a stonecutter.
- [NBT Compound / JSON Object]: The root tag.
- [String] type:
minecraft:stonecutting - [Boolean] show_notification: Optional. Determines if a notification is shown when unlocking the recipe. Defaults to
true. - [String][NBT List / JSON Array] ingredient: The ingredient for the recipe. Can be one of an [String] ID, a [String] tag with
#, or an [NBT List / JSON Array] array containing IDs. - [NBT Compound / JSON Object] result: The output item of the recipe.
- [String] id: An item ID.
- [Int] count: Optional. The amount of the item. Defaults to
1. - [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
- [String] type:
Usage example json:
{
"type": "minecraft:stonecutting",
"ingredient": "minecraft:cobbled_deepslate",
"result": {
"count": 1,
"id": "minecraft:cobbled_deepslate_stairs"
}
}
| Ingredients | Cutting recipe | Description |
|---|---|---|
| Cobbled Deepslate | Illustrative recipe. |
History
| 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. | |||||||
| 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. | ||||||
| 1.14.3 | pre3 | Re-added the recipe type crafting_special_repairitem. | |||||
| 1.16 | pre1 | Added the recipe type smithing. | |||||
| 1.19.3 | 22w42a | Recipe book categories are now defined for each recipe individually in the default datapack. | |||||
| 1.19.4 Experiment | 23w04a | Removed the recipe serializer smithing and replaced it with smithing_transform, and smithing_trim. | |||||
| 23w07a | Added a new recipe serializer crafting_decorated_pot for the new decorated pot recipe. | ||||||
Added show_notification field to recipes. | |||||||
| 1.20 | Pre-release 2 | "item": "minecraft:air" can now be used to denote an ingredient that matches an empty slot. | |||||
| Pre-release 6 | "item": "minecraft:air" can no longer be used in data pack recipes. | ||||||
Ingredients in array form are now also allowed in smithing_trim, and smithing_transform recipes on fields template, base and addition. | |||||||
| 1.20.5 | 24w10a | Can now specify item component. | |||||
| 1.21.2 | 24w33a | The crafting_special_suspiciousstew 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). | |||||||
| 24w38a | The crafting_special_shulkerboxcoloring recipe type has been removed. | ||||||
Instead it uses the newly added crafting_transmute, which can copy the input item stack, changing the item type but preserving all stack components. | |||||||
| 1.21.5 | 25w02a | The crafting_transmute result field now supports specifying a count and a components patch to apply to the result.
| |||||
| Result count is now mandatory. | |||||||
| 25w04a | smithing_transform recipe type: the base ingredient field is no longer optional. | ||||||
smithing_trim recipe type: the base, template, and addition ingredient fields are no longer optional, added new pattern field. | |||||||
| 26.1 | snap3 | result field should now be more consistent across all recipe types that contain it. | |||||
| It will now accept short form. | |||||||
For recipe types smelting, blasting, smoking and campfire_cooking this field now also accepts count field. | |||||||
| snap5 | minecraft:crafting_special_mapcloning recipe type has been removed, functionality has been absorbed by minecraft:crafting_transmute. | ||||||
New show_notification fields with the same functionality as existing one in minecraft:crafting_shaped have been added to several existing recipe types. | |||||||
Removed unused group field from recipes without a recipe book. | |||||||
| Renamed several stonecutter recipes, along with the relevant advancement. | |||||||
Added recipe type minecraft:crafting_dye, replacing the minecraft:crafting_special_armordye recipe. | |||||||
| Upcoming Java Edition | |||||||
| 26.3 | snap3 | Potion brewing recipes are now data-driven. New recipes can be added via data packs, and vanilla recipes may be modified. | |||||
Brewing recipes use the minecraft:brewing type. | |||||||
| snap4 | The recipes for smokers and blast furnaces now use the same cooking time in their data definition as their furnace counterparts. The cooking time speedup is now done through the minecraft:cooking/speed_default number provider used by the furnace fuel components. | ||||||
Issues
Issues relating to "Recipe (Java Edition)" are maintained on the bug tracker. Issues should be reported and viewed there.
External links
Navigation
Sources
- Recipe (Java Edition) — Minecraft Wiki, CC BY-NC-SA 3.0, revision 3697058.