Basic Recipes

Introduction

How to Make a Recipe File

First go to <your server location>\plugins\RecipeManager\recipes folder and create a text file (.txt extension).

Then you can open that file with a text editor and start writing recipes.

Recipe Files

You can have as many recipe files and recipes per file as you want. You can also create folders for organization.

Comments and Spacing

Default supported comments: //, /* */ and #

// This is a comment
#  This is also a comment
/* Multi line comments
   are also supported
*/

The text in recipe files can be any letter case and can have any amount of spaces, tabs and new lines.

// Recipe files support any casing
craft
cobblestone
= cobblestone

// Add any amount of new lines between recipes

CRAFT
COBBLESTONE
= COBBLESTONE

  // Space/Tabs at the beginning are fine as well
  CrAfT
  cobbleSTONE
  = COBBLEstone

  // Spacing does not need to be consistent
  craft
    cobblestone
      = cobblestone

Required and Optional

Required fields are surrounded by < >
Optional fields are surrounded by [ ]

craft [recipe name] // A recipe name is optional and can be skipped
<material> // This material is required
= <material> // The result material is also required

// Do not type <, >, [ or ]
craft [my recipe]
<cobblestone>
= <cobblestone>

// Correct way to write the above recipe
// Note that characters outside of <, >, [ and ] are constants and never change
craft my recipe // 'craft' is a constant here
cobblestone
= cobblestone

Special Characters

NOTE: If you are having issues with special characters not showing up:
- Make sure that your recipe files are saved as UTF-8 and
- Include the following flag: " -Dfile.encoding=UTF-8" in your startup script.

Defining Items

Item / Ingredient formats:

material // Material name or alias. See name index.html and 'item aliases.yml'.

// Material Choice (Multiple material options for a single slot)
material[, ..]
// '..' means that the format can be repeated as seen below
material, material2, material3

Tags and aliases:

// Material can also be defined by tags and aliases, which act as a material choice without having to write all materials
// Tags (see 'name index.html')
tag:tagname
t:tagname

// Aliases are RecipeManager's equivalent to tags, but you can define them yourself in 'choice aliases.yml'
alias:aliasname
a:aliasname

Tag Example:

// tag:sand is equivalent to 'sand, red_sand'
craft
tag:sand
= cobblestone
Sand
Red Sand
Shaped Workbench
Cobblestone

Result formats:

// Simple material
= material

// Material and data
// 'data' is the damage/durability of an item if it has any (tools, weapons, etc.) or a data name defined in 'item aliases.yml', defaults to 0
= material:data

// Material with data and stack amount
// 'amount' is stack amount, defaults to 1
= material:data:amount

Flags

Flags are how you can modify an ingredient or result. See advanced recipes.html and recipe flags.html for more examples.

craft
cobblestone
= cobblestone
@ingredientcondition cobblestone | name Old Cobble
@name Test Cobblestone
@lore Test Lore
@lore <red>Now in red
Old Cobble
Shaped Workbench
Test Cobblestone
Test Lore
Now in red

Multi-results

Certain recipes support having multiple results.

Only one result type can be crafted at one time, therefore each result has a set chance of success.

craft
dirt + dirt + dirt
dirt + grass_block + dirt
dirt + dirt + dirt
= wheat_seeds
= pumpkin_seeds
= melon_seeds
= beetroot_seeds
Dirt
Dirt
Dirt
Dirt
Grass Block
Dirt
Dirt
Dirt
Dirt
Shaped Workbench
25%
Wheat Seeds
25%
Pumpkin Seeds
25%
Melon Seeds
25%
Beetroot Seeds

Additionally you can set 'air' as result to make the recipe fail by that chance, which gives no result item but still decreases ingredients.

craft
t:sand + t:sand + t:sand
t:sand + air + t:sand
t:sand + t:sand + t:sand
= 40% bone
= 10% quartz
= .1% diamond
= air
Sand
Red Sand
Sand
Red Sand
Sand
Red Sand
Sand
Red Sand
Sand
Red Sand
Sand
Red Sand
Sand
Red Sand
Sand
Red Sand
Shaped Workbench
40%
Bone
10%
Quartz
0.1%
Diamond
49.9%

Chances must be a total of 100%, if you do not define the chance for one or more items the chance will be evenly calculated for the remaining chance up to 100%.

The options for this can be extended even more with flags, be sure to see the advanced recipes.html file after reading this one.

Recipe Names

Recipe names are used by recipe books.

If you define a custom name it must be unique and between 3 and 32 characters long (18 recommended).

The custom name will be displayed in the books if defined, otherwise it will use the result.

In the 'books/*.yml' files the recipe names (custom or auto-generated) are used to add and sort recipes in the books.

More about recipe books...

Recipe Syntaxes

Craft/Shaped Workbench Recipe

CRAFT [recipe name]
<material[, ...]> + [material[, ...]] + [material[, ...]]
[material[, ...]] + [material[, ...]] + [material[, ...]]
[material[, ...]] + [material[, ...]] + [material[, ...]]
= [chance]% <material:[data]:[amount]>
[...]

The ingredients are in the shape of the recipe grid, it will also work if horizontally mirrored.

NOTE: The recipe is exactly the same if you place the ingredients reversed horizontally, it's how the game works.

Number of ingredients is optional, you can specify only 1 or all 9 of them if you want.

Specifying a square of 4 or smaller makes it work in player's inventory crafting.

The '[, ...]' part means that you can add multiple ingredients as matches for that grid item.

 

As for the result the 'chance%' part is optional and if defined then 'chance' must be a number between 0.0 and 100.0 (yes, accepts decimals)

The '[...]' part means that you can repeat the previous statement, so you can define more than one result and the recipe will randomly pick one of the results.

You can avoid defining the chance number or use *% even to allow it to be calculated.

You can also add a chance of failure to the recipe by using fail, air or 0 as one of the results.

Examples:
// this is just a comment by the way
// a hoe craftable in player inventory
craft
oak_planks + oak_planks
stick
= wood_hoe
Oak Planks
Oak Planks
Stick
Shaped Workbench
Wooden Hoe
// fragile bowl named recipe
craft   Bowl craft attempt
stick + oak_planks + stick
air + stick
= bowl // undefined chance, will be calculated
= 25% fail // 'fail' is alias for 'air'
Stick
Oak Planks
Stick
Stick
Shaped Workbench
75%
Bowl
25%
// Multiple ingredients that can match. Each ingredient can have as many material choices as you'd like,
// as long as the combination of ingredients is still unique to each recipe
craft
cobblestone,stone + dirt,grass_block
= light_gray_terracotta
Cobblestone
Stone
Dirt
Grass Block
Shaped Workbench
Light Gray Terracotta

Combine/Shapeless Workbench Recipe

COMBINE [recipe name]
<material[, ...]:[amount]> + [...]
= [chance]% <material:[data]:[amount]>
[...]

Unlike shaped recipe, this recipe's ingredients can be placed in any order anywhere on the grid.

You can specify up to 9 items added up.

The optional amount can only be added at the end of a list of materials

EXAMPLE: cobblestone,stone:5 would be valid and expect the recipe to have 5 ingredients of either cobblestone OR stone

This recipe also supports multiple results just like shaped recipe, read above for information.

Examples:
// 3 sulphur + 2 sand = 2 TNT
combine
sulphur:3 + sand + sand
= TNT:0:2
Gunpowder
Gunpowder
Gunpowder
Sand
Sand
Shapeless Workbench
2
TNT
// smash 2 diamonds and pray for something good
combine Smash 2 diamonds and pray
diamond + diamond
= 0.1% diamond:0:32
= coal:0:4 // let it calculate the chance evenly for this and the next two
= iron_ingot
= gold_ingot
= 75% fail
Diamond
Diamond
Shapeless Workbench
32
0.1%
Diamond
4
8.3%
Coal
8.3%
Iron Ingot
8.3%
Gold Ingot
75%

Smelt/Furnace Recipe

SMELT [recipe name]
<material[, ...]> % [time]
& [material:[data]]
= [chance]% <material:[data]:[amount]>
// one result max!

The first '<material[, ...]>' is the ingredient.

(optional) '% [time]' can be the time to smelt, 'time' should be a 'instant', a float number or a range of float numbers separated by a dash. Default time: 10

(optional) '& [material:[data]]' can be an item to act as the ONLY fuel for this recipe (no need to have a fuel recipe for the item!)

And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance but this recipe type only supports 1 result!

Examples:
// smelt gold_ingot to ore
smelt
gold_ingot
= gold_ore
Gold Ingot
Furnace
10s
Gold Ore
// glowstone and bottle as fuel makes an exp bottle
smelt Exp Bottle Alchemy
glowstone % 20.5-30 // random cook time between 20.5 and 30 seconds
& bottle // fuel
= 25% exp_bottle // 25% chance to get the result, rest 75% will result in nothing
Glowstone
Bottle
Furnace
20.5 - 30s
25%
Bottle of Enchanting
75%

Blasting/Blast Furnace Recipe

BLASTING [recipe name]
<material[, ...]> % [time]
& [material:[data]]
= [chance]% <material:[data]:[amount]>
// one result max!

Works the same as SMELT RECIPES, but for BLAST FURNACES

Default time: 5

See SMELT RECIPE for examples

Smoking/Smoker Recipe

SMOKING [recipe name]
<material[, ...]> % [time]
& [material:[data]]
= [chance]% <material:[data]:[amount]>
// one result max!

Works the same as SMELT RECIPES, but for SMOKERS

Default time: 5

See SMELT RECIPE for examples

Furnace Fuel Recipe

FUEL [recipe name]
<material:data> % <time>
...

Adds a fuel with the specified burn time.

'time' is required and can be a float number or a range of float numbers separated by a dash.

The '...' part means you can specify more than one item, they are all added just like individual fuel recipes.

Example:
FUEL
sulphur % 0.75 // see advanced recipes.html for how to make this EXPLODE!
jackolantern % 20 // 'jackolantern' is alias for 'jack_o_lantern'
Gunpowder
.75s
Jack O' Lantern
20s

Campfire Recipe

CAMPFIRE [recipe name]
<material[, ...]> % [time]
= [chance]% <material:[data]:[amount]>

The first '<material[, ...]>' is the ingredient.

(optional) '% [time]' can be the time to cook, 'time' should be a 'instant', a float number or a range of float numbers separated by a dash. Default time: 30

NOTE: Due to API limitations, random cook times will only be set random on server start for campfire recipes.

And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance.

Stonecutting/Stonecutter Recipe

STONECUTTING [recipe name]
<material[, ...]>
= [chance]% <material:[data]:[amount]>

The first '<material[, ...]>' is the ingredient.

Multiple recipes can be added with the same ingredient as long as the result is different for each.

No Flag support yet

Compost/Composter Recipe

COMPOST [recipe name]
<material[, ...]> % [chance per level] % [levels]
= [chance]% <material:[data]:[amount]>

The first '<material[, ...]>' is the ingredient.

(optional) '% [chance per level]' is the percentage chance that the level will be increased by [levels]. Value can be a float number >0 and <=100. Default is 100.

(optional) '% [levels]' is the levels to Value can be a float number >0 and <=7. Default is 1.

While the composter is being used for a recipe, it will be locked to that recipe (or the same result from another recipe), so no conflicting recipes can be made.

Anvil Recipe

ANVIL [recipe name]
<material[, ...]> + <material[, ...]> % [experience levels] % [allowrename or true] % [anvil damage chance]
= [chance]% <material:[data]:[amount]>

The first '<material[, ...]>' is the left ingredient.

The second '<material[, ...]>' is the right ingredient.

(optional) '% [experience levels]' is the experience levels per craft and shown in the anvil.

(optional) '% [allowrename or true]' will enable renaming. Will add an extra experience level to the cost and set the name after all flags. Defaults to false.

(optional) '% [anvil damage chance]' will adjust the chance to damage the anvil on craft. Default is 12. Allowed values from 0-300. Over 100 will damage multiple levels. Ex: 150 will damage 1 level with a 50% chance of damaging a second.

Grindstone Recipe

GRINDSTONE [recipe name]
<material[, ...]> + <material[, ...]>
= [chance]% <material:[data]:[amount]>

The first '<material[, ...]>' is the top ingredient.

The second '<material[, ...]>' is the bottom ingredient.

Cartography Recipe

CARTOGRAPHY [recipe name]
<material[, ...]> + <material[, ...]>
= [chance]% <material:[data]:[amount]>

The first '<material[, ...]>' is the top ingredient.

The second '<material[, ...]>' is the bottom ingredient.

Brew/Brewing Stand Recipe

This is an experimental feature. Expect bugs and frequent changes.

BREW [recipe name]
<material:[data]:[amount]> // ingredient
<material:[data]> // potion
= [chance]% <material:[data]:[amount]>
[...]

The first '<material>:[data]' is the ingredient with optional data and amount.

The second '<material>:[data]' is the potion with optional data.

And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance.

Note: Currently requires a vanilla brewing recipe, but can have customized items.

Example:
brew
nether_wart
potion
= stone
@name <red>Test Stone. Please Ignore
@ingredientcondition nether_wart | name &cTest
@ingredientcondition potion | potion type water

For more customization options and examples see advanced recipes.html.

If you don't get these instructions, please stop by Discord and ask for assistance. Please be as descriptive as possible in your questions.