Recipes
Recipes define how items are transformed through crafting tables, furnaces, smithing tables, stonecutters, and other workstations. Kore provides a type-safe DSL to create all vanilla recipe types programmatically.
The recipes example of the playground runs in your browser and shows the JSON it generates.
Overview
Recipes have several key characteristics:
- Type-specific: Each workstation has its own recipe format
- Discoverable: Recipes can be unlocked via advancements
- Customizable results: Output items can have custom components
- Tag-based ingredients: Use item tags for flexible ingredient matching
Recipe Types
| Type | Workstation | Description |
|---|---|---|
blasting |
Blast Furnace | Faster ore smelting |
campfire_cooking |
Campfire | Slow food cooking |
crafting_decorated_pot |
Crafting Table | Craft a decorated pot from sherds |
crafting_dye |
Crafting Table | Dye an item with a dye |
crafting_imbue |
Crafting Table | Imbue items (e.g. tip arrows) |
crafting_shaped |
Crafting Table | Pattern-based crafting |
crafting_shapeless |
Crafting Table | Order-independent crafting |
crafting_special_bannerduplicate |
Crafting Table | Copy a banner pattern |
crafting_special_bookcloning |
Crafting Table | Copy a written book |
crafting_special_firework_rocket |
Crafting Table | Craft a firework rocket |
crafting_special_firework_star |
Crafting Table | Craft a firework star |
crafting_special_firework_star_fade |
Crafting Table | Add a fade colour to a star |
crafting_special_mapextending |
Crafting Table | Extend a map with paper |
crafting_special_shielddecoration |
Crafting Table | Apply a banner to a shield |
crafting_special_* |
Crafting Table | Remaining hardcoded special recipes |
crafting_transmute |
Crafting Table | Transform item with material |
smelting |
Furnace | Standard smelting |
smithing_transform |
Smithing Table | Upgrade items |
smithing_trim |
Smithing Table | Apply armor trims |
smoking |
Smoker | Faster food cooking |
stonecutting |
Stonecutter | Cut blocks |
File Structure
Recipes are stored as JSON files in data packs at:
For complete JSON specification, see the Minecraft Wiki - Recipe.
Creating Recipes
Use the recipes block inside a data pack to define recipes:
This generates data/my_datapack/recipe/diamond_sword_upgrade.json.
Crafting Recipes
Banner Duplicate
Copy a banner's pattern onto a blank banner:
Book Cloning
Copy a written book, with an optional generation limit:
Decorated Pot
Craft a decorated pot from sherds:
Dye Crafting
Dye an item using a dye ingredient. Replaces the old crafting_special_armordye recipe:
Firework Rocket
Craft a firework rocket from its component ingredients:
Firework Star
Craft a firework star with dye, fuel, optional shape modifiers, trail, and twinkle effects:
Firework Star Fade
Add a fade colour to an existing firework star:
Imbue Crafting
Imbue items with properties from a source (e.g. tip arrows with lingering potions). Replaces the old crafting_special_tippedarrow recipe:
Map Extending
Extend a map by combining it with paper:
Shaped Crafting
Pattern-based recipes where ingredient positions matter:
In game: my_pickaxe in a crafting table
Pattern Rules
- Patterns can be 1x1 to 3x3
- Use space
for empty slots - Each character must be mapped in
key()orkeys {} - Patterns are automatically trimmed (no need for padding)
Shapeless Crafting
Order-independent recipes:
Multiple of Same Ingredient
Using Tags
Shield Decoration
Apply a banner pattern to a shield:
Special Crafting
Remaining hardcoded special recipes with no configurable ingredients:
These are useful when the vanilla datapack is disabled and you need to re-enable specific special recipes.
Transmute Crafting
Transform an item while preserving its components:
The result item copies all components from the input item.
Recipe Book Category
Shaped, shapeless, dye, imbue and transmute recipes take an optional category (BUILDING, EQUIPMENT, MISC or REDSTONE) choosing the recipe book tab they show up in:
Cooking Recipes
All cooking recipes share a similar structure:
| Property | Description |
|---|---|
ingredient |
Input item or tag |
result |
Output item |
category |
Recipe book tab, a CookingRecipeCategory (BLOCKS, FOOD, MISC) |
experience |
XP awarded when collecting output |
cookingTime |
Time in ticks |
Blasting (Blast Furnace)
Twice as fast as smelting (100 ticks default):
Campfire Cooking
Slow cooking without fuel:
Smelting (Furnace)
In game: iron_ingot smelting in a furnace, the arrow fills in cookingTime (10 seconds)
Smoking (Smoker)
For food items, twice as fast as furnace:
Smithing Recipes
Smithing Transform
Upgrade items at the smithing table:
In game: the netherite_sword upgrade in a smithing table
The result item copies components from the base item.
Multiple Addition Options
Smithing Trim
Apply armor trims:
Stonecutting
Single-item recipes for the stonecutter:
Result Items with Components
Add custom components to recipe results:
Recipe Categories
The recipe book tab of craftingDye, craftingImbue and craftingTransmute recipes is set with category, a RecipeCategory:
BUILDING- Building blocksREDSTONE- Redstone componentsEQUIPMENT- Tools, weapons, armorMISC- Everything else
Setting a category on shaped, shapeless or cooking recipes isn't possible yet because those Kore recipe types don't expose the category field; the game then files them under its default tab.
Recipe Groups
Group similar recipes in the recipe book:
Recipes with the same group appear together in the recipe book.
Using Recipes in Commands
Reference Recipes
Store a recipe reference for use in commands:
Give/Take Recipes
Overriding Vanilla Recipes
A recipe overrides the vanilla one with the same id, so it has to live in the minecraft namespace. Every recipe builder takes an optional namespace after the name, defaulting to the pack's:
Full Example
Generated JSON (Shaped Recipe)
Best Practices
- Use meaningful names - Recipe file names should describe the output
- Group related recipes - Use the
groupfield for recipe book organization - Prefer tags - Use item tags for flexible ingredient matching
- Test in-game - Verify recipes work as expected in all crafting interfaces
- Consider balance - Ensure custom recipes maintain game balance
See Also
- Advancements - Unlock recipes as advancement rewards
- Components - Customize recipe result items
- Commands - Give or take recipes with commands
- Tags - Use item tags for flexible ingredient matching
External Resources
- Minecraft Wiki: Recipe - Official JSON format reference
- Minecraft Wiki: Crafting - Crafting mechanics overview
