Content
Recipes
Recipes let players make your custom items with the game's own crafting table, furnaces, stonecutter, smithing table, brewing stand and anvil.
# recipes/gems.yml
ruby_block:
type: shaped # the default
result: mypack:ruby_block # a content ID or a vanilla material
amount: 1 # how many it makes
pattern: ["RRR", "RRR", "RRR"]
keys:
R: mypack:ruby # a space in the pattern is an empty slotPut recipes in a recipes/ folder of your content folder
(here mypack) and run /rp reload. /rp recipes lists what loaded.
Types#
type | What it is |
|---|---|
shaped | A pattern and a key. The default |
shapeless | An ingredients list, in any arrangement |
smelting | A furnace |
blasting · smoking · campfire | The three other cookers |
stonecutting | One in, several out |
smithing | A template, a base and an addition make the result |
smithing_trim | A template, a base and an addition trim the base |
brewing | A base in the bottle slots and an ingredient on top. Needs Paper |
anvil | A base and an optional addition make a result, or repair the base |
sapphire_from_lapis:
type: smelting
result: mypack:sapphire
ingredient: LAPIS_LAZULI
experience: 0.5
time: 100 # ticks; defaults to vanilla's time for that cooker
dust:
type: shapeless
result: mypack:dust
ingredients: [mypack:ruby, FLINT]Exact and loose ingredients#
A content ID matches that item and nothing else
An ordinary diamond won't fill a slot that calls for mypack:ruby, even if
the ruby is a diamond underneath. A vanilla material matches loosely, as in
vanilla: any LAPIS_LAZULI will do.
So your custom items can't be crafted around, and vanilla ingredients still behave like vanilla.
A vanilla potion is the material, a slash and the potion type:
potion/awkward, splash_potion/healing. minecraft:diamond means the
material, the same as DIAMOND.
Smithing#
ruby_sword:
type: smithing
template: NETHERITE_UPGRADE_SMITHING_TEMPLATE
base: mypack:obsidian_sword
addition: mypack:ruby
result: mypack:ruby_sword
copy-data: true # the default
ruby_trim:
type: smithing_trim # no result: the base comes out trimmed
template: mypack:ruby_template
base: mypack:ruby_chestplate
addition: AMETHYST_SHARD
pattern: minecraft:silenceThe base of an upgrade is usually something that has been used, so a worn or
enchanted mypack:obsidian_sword still counts. The result is always your item,
and with copy-data on it keeps the base's enchantments, wear and trim, the
way a netherite upgrade does.
Versions
Before 1.20 the smithing table has two slots, so no template is asked for and
trim recipes need 1.20. From 1.21.5 a trim recipe needs a pattern, unless
its template is a vanilla trim template, which brings its own. Before 1.21.5
the game takes the pattern from the template, so only vanilla trim templates
trim anything.
Brewing#
ruby_tonic:
type: brewing
base: potion/awkward # the bottle slots
ingredient: mypack:ruby_dust
result: mypack:ruby_tonicBrewing recipes need Paper, which adds them to the game's own brewing stand so they brew like vanilla potions. On Spigot they are skipped, and the console says how many.
Anvils#
sharpen:
type: anvil
base: mypack:dull_blade
addition: mypack:whetstone # optional: without it, the right slot must be empty
addition-amount: 1
result: mypack:sharp_blade
cost: 3 # levels; 1 if left out
mend_ruby_sword:
type: anvil
base: mypack:ruby_sword
addition: mypack:ruby
repair: 25% # per ruby, or a number of durability pointsThe game has no anvil recipes, so RP Engine runs these itself. Each use costs
cost levels, one of the base and addition-amount of the addition, and wears
the anvil as normal. A repair mends by repair for each addition-amount,
using as many as it takes, like a vanilla material repair. Take the result with
the mouse: number keys and dropping don't work for anvil recipes.
Vanilla recipes#
A custom item is a vanilla item underneath, but the game's own recipes don't treat it as one: a tomato made from paper won't make a book (at a crafting table or in a crafter), cook, go through a stonecutter or repair a tool on an anvil. A custom item can still be dyed, upgraded to netherite or decorated like its material, because what comes out is still that item.
To use a custom item in a recipe, name it in one of your own. To let one item count as its material in vanilla recipes too, say so on the item:
plain_stick:
material: STICK
vanilla-recipes: true # still a stick to vanilla's recipesitems.vanilla-recipes: true in the config
does the same for every item.
Replacing or removing a vanilla recipe#
To swap one of the game's recipes for your own, add replaces: with its ID:
better_sticks:
type: shapeless
result: STICK
amount: 8
ingredients: [OAK_PLANKS]
replaces: minecraft:stick # or a list; a bare name means minecraft:While your recipe is loaded, the vanilla one is gone from the server. Delete
yours and reload, and the vanilla one comes back. Without replaces:, a recipe
with the same grid as a vanilla one doesn't win: both match and the game picks
one. Any recipe can replace any other, so a crafting recipe can stand in for a
smelting one.
The ID is the one /recipe give lists, which isn't always the item's name:
iron from raw iron in a furnace is minecraft:iron_ingot_from_smelting_raw_iron.
A wrong ID shows a warning when the pack loads. If your recipe fails to load,
the vanilla one is left alone.
RP Engine can only take a vanilla recipe away by replacing it with one of yours: there is no option that just removes one. To remove a recipe outright, use a datapack or a plugin made for that.
Naming#
A recipe ID is not a content ID, so a recipe can be called ruby_block while
an item has the same name. Two recipes can't share a name.
Recipes are cleared and re-added on every reload, so a recipe you delete stops working without a restart.