đ 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
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.
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
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.
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.
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.
amethyst:
experience: 200
cookingTime: 200
result:
oraxen_item: amethyst
input:
oraxen_item: amethyst_ore
đǍ Stonecutting
Stonecutting recipes use one input and one result.
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.
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.
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
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.
extract_ruby:
experience: 7
base:
oraxen_item: ruby_sword
result:
oraxen_item: ruby
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.
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â
- Open the builder for the recipe type you want.
- Place the input ingredients in the builder UI.
- Place the output item in the result slot.
- Run
/oraxen recipes save <name>to write the recipe to the matching.ymlfile. - Run
/oraxen reload recipesor restart the server to register the new recipe.
Running /oraxen recipes builder with no type reopens your current builder if one is already active.
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.
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.
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.
disabled:
- minecraft:diamond_sword
- minecraft:iron_pickaxe
- oraxen:custom_recipe
Oraxen attempts to remove each listed recipe whenever recipes load or reload.
Invalid keys or recipes that do not exist will log a warning in the console.
Notesâ
If you edit recipe files manually, use /oraxen reload recipes to apply the changes without a full server restart.
If settings.yml has recipe-book support enabled, Oraxen automatically discovers permitted recipes for players when they join.