Skip to content
JasperLorelai edited this page Jul 27, 2025 · 17 revisions

Description:

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:
    # . . .

Configuration:

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)

Recipe types:

shaped:

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

shapeless:

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

stonecutting:

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

smithing:

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

blasting, campfire, furnace, or smoking

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

potion:

Important

Since 4.0 Beta 18.

Option Description Type Default
input Recipe Choice
ingredient Recipe Choice

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.

Recipe Choice Tags:

Singular:

ingredient: "tag:armor"

List:

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"

Items:

Accepts Magic Item String and Magic Item Config.

Singular:

Example:

# May be in config format:
ingredient:
  type: stick
  name: "<gold>Magic Twig"
# Or string format:
ingredient: 'stick{name: "<gold>Magic Twig"}'

List:

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"}'
- ...
Clone this wiki locally