Custom recipes
Geary provides an extensive recipe system for custom or vanilla items.
Create recipes¶
Create any kind of recipe for an item, all types listed below.
If the recipe is defined in the item prefab itself, result
does not need to be specified, the item will be the result.
set.recipes:
recipes: # (1)!
- type: shaped
...
discoverRecipes: true # (2)!
group: "" # (3)!
removeRecipes: [] # (4)!
result: ... # (5)!
- List of recipes, see available types below.
- Default
false
, Whether to unlock the recipe automatically when a player joins the server - Default empty, set the group of this recipe. Recipes with the same group may be grouped together when displayed in the client
- Optional, a list of existing recipes to remove (ex. if migrating from one recipe to a new one)
- A Serializable Item, or don't pass to use this prefab's
set.item
Set potionmixes¶
set.potionMixes:
potionmixes: # (1)!
- input: ...
ingredient: { type: sugar }
result: ... # (2)!
- List of potion mixes, as defined below
- A Serializable Item, or don't pass to use this prefab's
set.item
Recipe types¶
Shaped¶
Uses keys to define Serializable Items as ingredients. These keys can be used to describe a configuration as below
- type: shaped
items:
M: { type: gold_ingot }
S: { type: stick }
configuration: |-
| MM|
| SM|
|S |
A smaller size can also be used for the configuration, ex:
configuration: |-
|MM|
|SM|
Shapeless¶
Takes a list of Serializable Items as ingredients, they may be placed in any shape.
- type: shapeless
items:
- type: gold_ingot
- prefab: myplugin:custom_item
Cooking¶
There are several options for cooking recipes,
furance
, blasting
, campfire
, smoker
. The input is a Serializable Item that will be consumed.
- type: furnace
input: { prefab: mineinabyss:ashimite_meat_raw }
experience: 1f
cookingTime: 100
Stonecutting¶
Input is a Serializable Item that will be consumed by the stonecutter.
- type: stonecutting
input: { type: stone }
Smithing¶
Transform¶
All inputs are Serializable Item. template, input, addition are ordered left to right in the smithing table. Ex. we have a template for a custom netherite upgrade:
- type: smithing_transform
template: { type: netherite_upgrade_smithing_template }
input: { prefab: mineinabyss:diamond_sickle }
addition: { type: netherite_ingot }
Trim¶
Potionmix¶
All entries are Serializable Items, the input is the potion being brewed, and ingredient is the ingredient being added on top. If input is not specified, will use a water bottle.
- type: potionmix
input: ...
ingredient: { type: sugar }