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.
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 |
|---|---|---|
crafting_shaped |
Crafting Table | Pattern-based crafting |
crafting_shapeless |
Crafting Table | Order-independent crafting |
crafting_transmute |
Crafting Table | Transform item with material |
crafting_special_* |
Crafting Table | Built-in special recipes |
smelting |
Furnace | Standard smelting |
blasting |
Blast Furnace | Faster ore smelting |
smoking |
Smoker | Faster food cooking |
campfire_cooking |
Campfire | Slow food cooking |
smithing_transform |
Smithing Table | Upgrade items |
smithing_trim |
Smithing Table | Apply armor trims |
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
Shaped Crafting
Pattern-based recipes where ingredient positions matter:
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
Transmute Crafting
Transform an item while preserving its components:
The result item copies all components from the input item.
Special Crafting
Special recipes use built-in game logic for complex crafting that can't be data-driven:
These are useful when the vanilla datapack is disabled and you need to re-enable specific special recipes.
Cooking Recipes
All cooking recipes share a similar structure:
| Property | Description |
|---|---|
ingredient |
Input item or tag |
result |
Output item |
experience |
XP awarded when collecting output |
cookingTime |
Time in ticks |
Smelting (Furnace)
Blasting (Blast Furnace)
Twice as fast as smelting (100 ticks default):
Smoking (Smoker)
For food items, twice as fast as furnace:
Campfire Cooking
Slow cooking without fuel:
Smithing Recipes
Smithing Transform
Upgrade items at the 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
Organize recipes in the recipe book:
Crafting Categories
BUILDING- Building blocksREDSTONE- Redstone componentsEQUIPMENT- Tools, weapons, armorMISC- Everything else
Cooking Categories
FOOD- Food itemsBLOCKS- Block transformations (sand → glass)MISC- Everything else
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
Override vanilla recipes by using the minecraft namespace:
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
- Set categories - Help players find recipes in the recipe book
- 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
