forked from nisovin/MagicSpells
-
Notifications
You must be signed in to change notification settings - Fork 71
Custom Recipes
JasperLorelai edited this page Jul 27, 2025
·
17 revisions
Custom recipes can be defined in the general.yml
file or any spell file. The main configuration looks like this:
recipes:
randomKey:
# (Recipe configuration section)
# type:
# . . .
Option | Description | Type | Default |
---|---|---|---|
type |
See Recipe types below. | String | |
result |
Magic Item String or Magic Item Config | ||
quantity |
Quantity of the result. | Integer | 1 |
Before 4.0 Beta 18:namespace-key
|
This namespaced key makes the recipe unique from all other recipes. You can only specify the key as the namespace is always magicspells . |
String | magicspells:(configKey) |
Since 4.0 Beta 18:namespaced-key (alias: namespace-key ) |
This namespaced key makes the recipe unique from all other recipes. The default namespace is magicspells , but any is supported. |
String | magicspells:(configKey) |
Option | Description | Type | Default |
---|---|---|---|
group |
An optional text identifier that can be used to group recipes in the Recipe Book under one entry. | String | |
auto-discover |
Recipes marked as true will be discovered by any online player. |
Boolean | true |
category |
Since 4.0 Beta 14. | Category | misc |
shape |
For a 3x3 recipe, it should have 3 string elements, each 3 characters long. For 2x2, it should be a 2-element list of 2 characters. Take a look below for an example. | String List | |
ingredients |
Map of the ingredients. Key-value pair, where the key is a shape character, and the value is a Recipe Choice. Unmapped characters usually represent air. | Config Section |
Example:
shape:
- "I#I"
- "III"
- "III"
ingredients:
I: iron_ingot
Option | Description | Type | Default |
---|---|---|---|
group |
An optional text identifier that can be used to group recipes in the Recipe Book under one entry. | String | |
auto-discover |
Recipes marked as true will be discovered by any online player. |
Boolean | true |
category |
Since 4.0 Beta 14. | Category | misc |
ingredients |
Map of the ingredients. Key-value pair, where the key is ignored, and the value is a Recipe Choice. | Config Section |
Example:
type: shapeless
result: written_book
ingredients:
1: book
2: inc_sac
three: feather
Option | Description | Type | Default |
---|---|---|---|
group |
An optional text identifier that can be used to group recipes in the Recipe Book under one entry. | String | |
auto-discover |
Recipes marked as true will be discovered by any online player. |
Boolean | true |
ingredient |
Recipe Choice |
Option | Description | Type | Default |
---|---|---|---|
auto-discover |
Recipes marked as true will be discovered by any online player. |
Boolean | true |
base |
Recipe Choice | ||
template |
Since 4.0 Beta 13, and MC 1.20. | Recipe Choice | |
addition |
Recipe Choice | ||
copyNbt |
Since 4.0 Beta 13. Defines whether to copy the NBT from the base item to the result . |
Boolean | true |
Cooking recipes.
Option | Description | Type | Default |
---|---|---|---|
group |
An optional text identifier that can be used to group recipes in the Cooking Book under one entry. | String | |
auto-discover |
Recipes marked as true will be discovered by any online player. |
Boolean | true |
category |
Since 4.0 Beta 14. | Category | misc |
ingredient |
Recipe Choice | ||
experience |
Number of experience points to reward. | Double | 0 |
cooking-time |
Server ticks duration. | Integer | 0 |
Important
Since 4.0 Beta 18.
Option | Description | Type | Default |
---|---|---|---|
input |
Recipe Choice | ||
ingredient |
Recipe Choice |
Warning
Before 4.0 Beta 13, a "Recipe Choice" could only be a material name.
ingredient: stick
Everything below this alert is only valid since 4.0 Beta 13.
Recipe Choice defines what items are allowed as ingredients for a recipe in a specific slot. It may either be Recipe Choice Tags or specific Items.
-
Before 4.0 Beta 18: Only Material Tags are supported, prefixed by
tag:
(e.g.tag:armor
). -
Since 4.0 Beta 18: Tags may be prefixed with
tag:
or#
, with supported values being:
ingredient: "tag:armor"
Example of a slot that accepts any armor piece. This is the same as the singular armor
material tag.
ingredient:
- "tag:helmets"
- "tag:chestplates"
- "tag:leggings"
- "tag:boots"
Accepts Magic Item String and Magic Item Config.
Example:
# May be in config format:
ingredient:
type: stick
name: "<gold>Magic Twig"
# Or string format:
ingredient: 'stick{name: "<gold>Magic Twig"}'
An example of an ingredient may be a stick named "Magic Twig", colored gold or red.
type: stonecutting
#
ingredient:
# Compact config format:
- {type: stick, name: "<gold>Magic Twig"}
# String format:
- 'stick{name: "<red>Magic Twig"}'
- ...