Ingredients
Ingredients define what items are required to satisfy a recipe.
Properties
choices list<RecipeChoice>
The only required property. They define what items or tags can be used to satisfy the ingredient.
matching Matcher optional
Defines how the system checks if an item in the inventory matches the ingredient.
See Matchers
consumption Consumer optional
Defines how the ingredient is removed from the inventory.
See Consumers
choices = [
{
identifier {
stack = "{id:'minecraft:iron_nugget'}"
}
},
//...
]
matching {
// Matcher settings
}
consumption {
// Consumer settings
}Matchers Matcher
The matchers handle how the system checks if an item in the inventory matches the ingredient.
Item type = item
The item must match the type and optionally contain or not contain certain components.
Properties
mustContain list<Key> optional
The data components the stack must contain to pass the check.
mustNotContain list<Key> optional
The data components the stack must not contain to pass the check.
// Example: Item must match the type and must have the item name component
type = item
mustContain = [
"minecraft:item_name"
]Exact type = exact
The item must match the choices exactly.
Properties
This type has no properties
type = exactConsumers Consumer
Consumers handle how the ingredient is removed from the inventory.
There are multiple types with different behaviours that are set via the type property.
Consume type = consume
Removes the item from the inventory. If the remains cannot be stored in the ingredient slot, then it either stores remains in the inventory or drops them on the ground.
type = consume
remainder {
// Remainder type-specific settings
}Keep type = keep
The item in the ingredient slot is not removed and kept as is.
Properties
modifier optional
Modifies the source item while it remains in the inventory. There are currently no modifier implementations. For now, this uses an empty list of transformations.
type = keep
modifier = {
transformations = []
}Replace type = replace
Replaces the source item with a specific item regardless of the amount.
type = replace
replacement {
identifier {
type = vanilla
stack = "{id:'minecraft:diamond'}"
}
}Remainders Remainder
Default type = default
Uses the vanilla remainders or modded/plugin remainders, if available and not ignored.
type = default
ignore = {
vanilla = true
others = true
}Custom type = custom
Uses a custom remainder and replaces the existing remainders, unless they are ignored.
Properties
ignore IgnoreOptions
Specifies which remainders should be ignored and should not be replaced. The custom remainder will replace those that are not ignored.
remainder ItemStackRef
The item stack to use as a remainder.
type = custom
remainder {
identifier {
type = vanilla
stack = "{id:'minecraft:iron_nugget'}"
}
}
ignore {
vanilla = true
others = true
}