Recipe Generator
BetaClick ingredients into the crafting grid (or pick a furnace, stonecutter or smithing table), choose the result, and get the recipe file for your exact version: a Java data pack or a Bedrock behaviour pack, plus the /recipe command.
Describe it — AI writes the command
Type what you want in plain words. The AI fills the form below, so you can see it and change anything. It follows the edition and version you picked.
Checking the AI…
Your command · Java 26.3
30 characters/recipe give @p my_pack:saddle
data/my_pack/recipe/saddle.json{
"type": "minecraft:crafting_shaped",
"category": "equipment",
"pattern": [
"LLL",
"S S",
"I I"
],
"key": {
"L": "minecraft:leather",
"S": "minecraft:string",
"I": "minecraft:iron_ingot"
},
"result": {
"id": "minecraft:saddle"
}
}
- The recipe works as soon as the pack loads; /recipe give only adds it to the recipe book.
- Put the file in your data pack (or press Download data pack), drop the pack in your world's datapacks folder, then run /reload.
Raw editor
How it works
A shaped recipe keeps its pattern: the generator trims empty rows and columns, so a recipe drawn in the top-left corner works anywhere on the grid, and gives every ingredient its own key letter. Use a tag such as #minecraft:planks to accept any plank.
Java 1.14 to 1.20.4
{"type": "minecraft:crafting_shaped",
"pattern": ["LLL", "S S", "I I"],
"key": {"L": {"item": "minecraft:leather"}, "S": {"item": "minecraft:string"},
"I": {"item": "minecraft:iron_ingot"}},
"result": {"item": "minecraft:saddle"}}Furnace recipes give the result as a plain ID with experience and cookingtime in ticks. The blast furnace, smoker, campfire and stonecutter take recipes from 1.14, and recipe book tabs (category) from 1.19.3. Java 1.13 files are the same apart from recipe types without the minecraft: prefix, as the game wrote them then.
Java 1.20.5 to 1.21.1
Results became item stacks: {"id": "minecraft:saddle", "count": 2}. From 1.21 the folder is recipe instead of recipes.
Java 1.21.2 and later (26.x too)
Ingredients are plain strings, and tags start with #:
"key": {"L": "minecraft:leather", "P": "#minecraft:planks"}In 26.3 blast furnace and smoker recipes are written with the furnace’s time; the block itself cooks twice as fast.
Bedrock
Bedrock recipes live in a behaviour pack’s recipes folder and use minecraft:recipe_shaped, recipe_shapeless, recipe_furnace or recipe_smithing_transform with a tags list naming the block. Stonecutter recipes are shapeless recipes tagged stonecutter. Bedrock has no cooking time or experience setting and no recipe book groups. /recipe give exists from Bedrock 1.20.30.
FAQ
Do players have to unlock my recipe before crafting it?
No. A data-pack recipe works as soon as the pack loads. /recipe give only adds it to the recipe book, unless the doLimitedCrafting game rule is on, in which case players can only craft recipes they have unlocked.
Why does my custom recipe not work?
Check the folder and format for your version: recipes before Java 1.21 and recipe after, {"item": …} ingredients before 1.21.2 and plain strings after, and result "item" before 1.20.5 and "id" after. The generator writes the right one when you pick your version.
Can a recipe accept any type of plank or wool?
Yes, with an item tag. Type #minecraft:planks (or #minecraft:wool) as the ingredient. On Bedrock the generator writes tags in crafting-table recipes for 1.21 and later.
Can I override a vanilla recipe?
On Java, yes: use the namespace minecraft and the vanilla file name (for example minecraft:bread) and your file replaces the game's. Any other namespace adds a second recipe next to the vanilla one.
How long do smelting recipes take?
The cook time is in ticks: 200 ticks (10 seconds) is a normal furnace. Before 26.3 blast furnace and smoker recipes store their own faster time (100); from 26.3 you write the furnace time and the block doubles the speed.