Skip to main content

📖 Recipes

Overview​

Oraxen supports multiple custom recipe types and loads them from .yml files in the plugins/Oraxen/recipes folder. You can create recipes through the ingame builder, edit them manually, reload them without restarting the server, and disable vanilla or existing recipes by namespaced key.

Configuration​

Recipes are stored in separate files based on recipe type.

  • 📁 plugins
    • 📁 Oraxen
      • 📁 recipes
        • 📄 shaped.yml
        • 📄 shapeless.yml
        • 📄 furnace.yml
        • 📄 blasting.yml
        • 📄 campfire.yml
        • 📄 smoking.yml
        • 📄 stonecutting.yml
        • 📄 smithing.yml
        • 📄 cauldron.yml
        • 📄 anvil.yml
        • 📄 grindstone.yml
        • 📄 disabled.yml

Supported Recipe Types​

shaped.yml - Standard crafting recipes where ingredient position matters.
shapeless.yml - Crafting recipes where ingredient order does not matter.
furnace.yml - Furnace smelting recipes with time and experience.
blasting.yml - Blast furnace recipes with time and experience.
campfire.yml - Campfire cooking recipes with time and experience.
smoking.yml - Smoker recipes with time and experience.
stonecutting.yml - Stonecutter recipes with one input and one result.
smithing.yml - Smithing table transform recipes with template, base, and addition inputs.
cauldron.yml - Recipes performed by right-clicking a cauldron with an input item.
anvil.yml - Fixed-output anvil recipes with an optional addition and level cost.
grindstone.yml - Fixed-output grindstone recipes with an optional addition and experience reward.
disabled.yml - Recipe keys that should be removed when Oraxen loads recipes.

Item Definitions​

Recipe inputs and results support several item formats.

oraxen_item - Use an Oraxen item ID.
minecraft_type - Use a vanilla material such as DIAMOND or STICK.
minecraft_item - Use a fully serialized Bukkit ItemStack.
tag - Use a vanilla item or block tag as an ingredient, such as planks or minecraft:logs. Ingredients only
crucible_item - Use a MythicCrucible item ID. Optional compatibility
mmoitems_type + mmoitems_id - Use an MMOItems item. Optional compatibility
ecoitem_id - Use an EcoItems item ID. Optional compatibility
amount - Set a result stack size, a shapeless ingredient count, or the amount consumed by a cauldron, anvil, or grindstone recipe.
permission - Require a permission to use a shaped, shapeless, smithing, cauldron, anvil, or grindstone recipe. Optional

info

Oraxen creates the recipe files automatically on first load, except disabled.yml. You can add entries manually or generate them ingame with the recipe builder.

note

Existing installations may need to create the new smithing.yml, cauldron.yml, anvil.yml, and grindstone.yml files manually before adding recipes. disabled.yml must also be created manually in plugins/Oraxen/recipes/; it is only auto-created when Plugin.generation.default_configs is false.

Recipe Groups​

Recipes can optionally define a group to combine alternative recipes into one Minecraft recipe book entry. Recipes are grouped when they produce the same result and use the same non-empty group value.

group is supported by shaped, shapeless, furnace, blasting, smoking, campfire, and stonecutting recipes. Smithing, cauldron, anvil, and grindstone recipes do not support recipe groups.

obsidian_ingot_from_obsidian:
group: obsidian_ingot
result:
oraxen_item: obsidian_ingot
ingredients:
A:
minecraft_type: OBSIDIAN
amount: 1

obsidian_ingot_from_crying_obsidian:
group: obsidian_ingot
result:
oraxen_item: obsidian_ingot
ingredients:
A:
minecraft_type: CRYING_OBSIDIAN
amount: 1
note

Omitting group or leaving it empty keeps the recipes as separate recipe book entries.

Recipe Formats​

🧩 Shaped

Use shape and ingredients together. Each character in shape maps to one entry in ingredients, while _ means an empty slot.

shape - Up to three crafting rows.
ingredients - Character-to-item mapping.
result - Crafted output item.

plugins/Oraxen/recipes/shaped.yml
bedrock_pickaxe:
shape:
- AAA
- BCB
- _D_
result:
oraxen_item: bedrock_pickaxe
ingredients:
A:
minecraft_type: DIAMOND_BLOCK
B:
minecraft_type: OBSIDIAN
C:
minecraft_type: NETHER_STAR
D:
minecraft_type: STICK
🌀 Shapeless

Shapeless recipes ignore slot position. Each ingredient entry should include an amount.

ingredients - Arbitrary ingredient keys such as A, B, C.
amount - How many times that ingredient must appear.
result - Crafted output item.

plugins/Oraxen/recipes/shapeless.yml
obsidian_mix:
result:
oraxen_item: obsidian_ingot
ingredients:
A:
minecraft_type: OBSIDIAN
amount: 2
B:
tag: coals
amount: 1
đŸ”Ĩ Cooking Recipes

furnace.yml, blasting.yml, campfire.yml, and smoking.yml all use the same structure.

input - The item that gets cooked.
result - The cooked output item.
cookingTime - Cooking duration in ticks.
experience - Experience granted when the recipe completes.

plugins/Oraxen/recipes/furnace.yml, blasting.yml, campfire.yml, or smoking.yml
amethyst:
experience: 200
cookingTime: 200
result:
oraxen_item: amethyst
input:
oraxen_item: amethyst_ore
đŸĒ¨ Stonecutting

Stonecutting recipes use one input and one result.

plugins/Oraxen/recipes/stonecutting.yml
polished_obsidian:
result:
oraxen_item: polished_obsidian_tile
input:
minecraft_type: OBSIDIAN
🔨 Smithing

Smithing recipes use the smithing table's three input slots. Paper performs the native smithing transform, so data components copied from the base item are preserved.

template - Item in the smithing template slot.
base - Item being transformed.
addition - Material added to the base.
result - Result template for the transform.

plugins/Oraxen/recipes/smithing.yml
ruby_upgrade:
permission: oraxen.recipe.ruby_upgrade
template:
minecraft_type: NETHERITE_UPGRADE_SMITHING_TEMPLATE
base:
oraxen_item: obsidian_sword
addition:
oraxen_item: ruby
result:
oraxen_item: ruby_sword
âš’ī¸ Anvil

Anvil recipes produce a fixed result. The addition is optional; when omitted, the second input slot must be empty.

base - Required first input.
addition - Optional second input.
result - Fixed output item.
experience_cost - Player levels consumed when taking the result. Defaults to 0.

Ingredient sections support amount to consume more than one item from that slot.

plugins/Oraxen/recipes/anvil.yml
repair_obsidian_sword:
permission: oraxen.recipe.repair_obsidian_sword
experience_cost: 5
base:
oraxen_item: damaged_obsidian_sword
addition:
oraxen_item: obsidian_ingot
amount: 2
result:
oraxen_item: obsidian_sword
note

Custom anvil recipes use a fixed transaction and do not apply vanilla rename, repair, enchantment-merging, or anvil-damage behavior.

đŸ—ŋ Grindstone

Grindstone recipes also produce a fixed result. A recipe without addition accepts its base in either input slot.

base - Required input.
addition - Optional second input.
result - Fixed output item.
experience - Experience points granted when taking the result. Defaults to 0.

plugins/Oraxen/recipes/grindstone.yml
extract_ruby:
experience: 7
base:
oraxen_item: ruby_sword
result:
oraxen_item: ruby
note

Custom grindstone recipes do not apply vanilla disenchanting or durability-combination behavior. Vanilla slot restrictions may still prevent some item types from being shift-clicked into the inputs; they can be placed directly when accepted by Paper.

đŸĒŖ Cauldron

Cauldron recipes run when a player right-clicks the matching cauldron with the configured input in their main hand. The result is added to the player's inventory, and overflow is dropped at the cauldron.

input - Held item to consume.
result - Item produced.
fluid - water, lava, powder_snow, or empty. Defaults to water.
level - Exact required water or powder-snow level from 1 to 3. Defaults to 1; lava and empty cauldrons use 1.
level_change - Level change after crafting. When omitted, filled cauldrons default to -1 and empty cauldrons default to 0. Empty cauldrons only accept 0; any other value fails recipe loading.

Water and powder-snow changes may reduce the level to an empty cauldron or raise it up to level 3. Lava supports -1 to empty the cauldron or 0 to preserve it.

plugins/Oraxen/recipes/cauldron.yml
wash_ruby:
permission: oraxen.recipe.wash_ruby
fluid: water
level: 2
level_change: -1
input:
oraxen_item: unwashed_ruby
amount: 2
result:
oraxen_item: ruby

Ingame Builder​

Commands​

You can create recipes ingame with the recipe builder commands listed on the commands page.

/oraxen recipes builder shaped
/oraxen recipes builder shapeless
/oraxen recipes builder furnace <cookingtime> <experience>
/oraxen recipes builder blasting <cookingtime> <experience>
/oraxen recipes builder campfire <cookingtime> <experience>
/oraxen recipes builder smoking <cookingtime> <experience>
/oraxen recipes builder stonecutting
/oraxen recipes builder smithing
/oraxen recipes builder anvil <experience_cost>
/oraxen recipes builder grindstone <experience>
/oraxen recipes save <name> [permission]

Workflow​

  1. Open the builder for the recipe type you want.
  2. Place the input ingredients in the builder UI.
  3. Place the output item in the result slot.
  4. Run /oraxen recipes save <name> to write the recipe to the matching .yml file.
  5. Run /oraxen reload recipes or restart the server to register the new recipe.
note

Running /oraxen recipes builder with no type reopens your current builder if one is already active.

warning

Recipe builders are player-only commands. Cooking builders require both cookingtime and experience arguments. The anvil builder requires experience_cost in player levels; the grindstone builder requires experience in experience points. Use 0 for no cost or reward.

note

For smithing, fill the template, base, addition, and result slots. For anvil and grindstone recipes, fill the base and result slots; the addition is optional. Cauldron recipes must be configured manually in cauldron.yml.

Recipe Showcase And Permissions​

permission can be added to shaped, shapeless, smithing, cauldron, anvil, and grindstone recipes, or passed when saving a supported builder recipe.
Players without that permission cannot use the recipe.

Crafting-table recipes can also appear in /oraxen recipes show, which opens Oraxen's showcase GUI for recipes the player is allowed to use.

info

The showcase GUI is built from Oraxen's whitelisted crafting recipes, so it applies to crafting-style recipes rather than furnace-like cooking recipes.

Disabling Existing Recipes​

You can disable vanilla or already-registered recipes by adding their namespaced keys to disabled.yml.

plugins/Oraxen/recipes/disabled.yml
disabled:
- minecraft:diamond_sword
- minecraft:iron_pickaxe
- oraxen:custom_recipe

Oraxen attempts to remove each listed recipe whenever recipes load or reload.

warning

Invalid keys or recipes that do not exist will log a warning in the console.

Notes​

info

If you edit recipe files manually, use /oraxen reload recipes to apply the changes without a full server restart.

note

If settings.yml has recipe-book support enabled, Oraxen automatically discovers permitted recipes for players when they join.