Recipe Types
LumenSmith supports 10 different recipe types covering every crafting station in Minecraft, including the brewing stand.
Overview
| Type | Crafting Station | Description |
|---|---|---|
shaped | Crafting Table | 3x3 grid with specific item layout |
shapeless | Crafting Table | Any arrangement, up to 9 ingredients |
furnace | Furnace | Standard furnace smelting |
blasting | Blast Furnace | Blast furnace smelting (2x speed) |
smoking | Smoker | Smoker cooking (2x speed) |
campfire | Campfire | Campfire cooking (slow, no fuel) |
stonecutting | Stonecutter | Single input, one output |
smithing_transform | Smithing Table | Template + base + addition |
adjacent_pair | Crafting Table | Two items placed side by side |
brewing | Brewing Stand | Ingredient + bottle → custom potion NEW v0.1.5 |
Auto-Unlock (auto_unlock_on)
Every recipe type below supports the auto_unlock_on field, which controls
when the recipe appears in a player's recipe book. LumenSmith watches every way a
player can acquire an item; the moment a trigger material lands in their inventory,
the recipe shows up. No relog, no /ls reload needed.
Default behaviour (no field set)
If you omit auto_unlock_on, the plugin auto-derives the trigger list
from the recipe's ingredients. The recipe appears as soon as the player obtains
any ingredient it needs. This is the right default for 90% of recipes.
Custom trigger list
Add a YAML list to hide a recipe behind a different milestone. The player only sees it after picking up one of the materials you list. Mix as many trigger materials as you like.
- key: "ancient_blade"
type: "shaped"
shape:
- " D "
- " D "
- " S "
ingredients:
D: "DIAMOND"
S: "STICK"
result:
item: "DIAMOND_SWORD"
name: "&6Ancient Blade"
auto_unlock_on: # ignore ingredients, gate on something rarer
- ANCIENT_DEBRIS
- NETHERITE_SCRAP
What counts as "obtaining" a trigger
The plugin unlocks the recipe instantly (same tick) for all of these paths:
- Picking up an item from the ground (
EntityPickupItemEvent) - Crafting an item, including shift-click and number-key crafts
- Shift-clicking out of chests, shulkers, ender chests, villager trades, furnace outputs, brewing stands
- Hopper output and any other inventory click that moves a matching material into the player's inventory
/giveand/minecraft:give(both player-issued and console-issued)- Joining the server (full inventory rescan for every player on join)
- Items the player is holding on the cursor at the moment of the check
/ls fixbook. It re-discovers every LumenSmith recipe for every online player.
Picking triggers from the GUI
The Knowledge Book button in the in-game editor (slot 40) lets you skip YAML entirely. Click it, then click materials in your inventory to add them as triggers. Right-click to clear the list and fall back to the auto-from-ingredients default. See the full GUI walkthrough in Using the In-Game GUI.
Adjacent-pair recipes
Adjacent-pair recipes register multiple internal placements (one per rotation). All placements share a recipe group, so when one is unlocked the recipe book shows all rotations as a single cyclable entry. You don't need to do anything special; the auto-unlock works the same way as for any other type.
Shaped Recipe
A shaped recipe uses a 3x3 crafting grid where each slot maps to a specific ingredient.
The shape field defines the pattern using letters, and the ingredients
map assigns materials to each letter.
- key: "ender_eye_bundle"
type: "shaped"
shape:
- "ABC"
- "DEF"
- "GHI"
ingredients:
A: "ECHO_SHARD"
B: "PRISMARINE_CRYSTALS"
C: "BLAZE_POWDER"
D: "RESIN_CLUMP"
E: "ENDER_PEARL"
F: "NETHERITE_UPGRADE_SMITHING_TEMPLATE"
G: "HEART_OF_THE_SEA"
H: "WIND_CHARGE"
I: "TOTEM_OF_UNDYING"
result:
item: "ENDER_EYE"
amount: 12
auto_unlock_on: ["ENDER_PEARL"]
" ") in the shape to leave a slot empty. Example: [" D ", " D ", " S "]
Shapeless Recipe
A shapeless recipe doesn't care about arrangement. Players can place the ingredients in any slot. Supports up to 9 ingredients.
- key: "cheap_torch"
type: "shapeless"
ingredients: ["STICK", "COAL"]
result:
item: "TORCH"
amount: 8
auto_unlock_on: ["COAL", "CHARCOAL"]
Furnace Recipe
Standard furnace smelting recipe with configurable experience and cooking time.
- key: "smelt_rotten_flesh"
type: "furnace"
input: "ROTTEN_FLESH"
experience: 0.35
cooking_time: 200 # ticks (200 = 10 seconds)
result:
item: "LEATHER"
amount: 1
auto_unlock_on: ["ROTTEN_FLESH"]
Cooking time reference
| Ticks | Seconds | Typical use |
|---|---|---|
| 100 | 5s | Quick smelt |
| 200 | 10s | Standard (vanilla default) |
| 600 | 30s | Campfire cooking (vanilla) |
Blasting Recipe
Blast furnace recipe. Works the same as furnace but only in a blast furnace (2x speed in vanilla).
- key: "blast_raw_iron"
type: "blasting"
input: "RAW_IRON"
experience: 1.0
cooking_time: 100
result:
item: "IRON_INGOT"
amount: 2
name: "&fRefined Iron"
auto_unlock_on: ["RAW_IRON"]
Smoking Recipe
Smoker recipe for food items. Behaves like furnace but only works in a smoker.
- key: "smoke_apple"
type: "smoking"
input: "APPLE"
experience: 2.0
cooking_time: 100
cooldown: 300 # 5-minute cooldown between crafts
result:
item: "GOLDEN_APPLE"
amount: 1
name: "&6Smoked Golden Apple"
auto_unlock_on: ["APPLE"]
Campfire Recipe
Campfire cooking recipe. No fuel required, but typically has a longer cooking time.
- key: "campfire_kelp"
type: "campfire"
input: "KELP"
experience: 0.1
cooking_time: 600 # 30 seconds
result:
item: "DRIED_KELP"
amount: 1
auto_unlock_on: ["KELP"]
Fuel Restrictions (Cooking Recipes)
For furnace, blasting, and smoking recipes, you can restrict which fuels are allowed.
Add the allowed_fuels field to limit fuel types.
- key: "obsidian_smelt"
type: "blasting"
input: "CRYING_OBSIDIAN"
experience: 10.0
cooking_time: 200
allowed_fuels:
- LAVA_BUCKET
result:
item: "OBSIDIAN"
amount: 1
allowed_fuels is omitted, any valid fuel can be used (vanilla behavior).
Stonecutting Recipe
Stonecutter recipe with a single input and output. No cooking time or experience.
- key: "cut_stone_bricks"
type: "stonecutting"
input: "STONE"
result:
item: "STONE_BRICKS"
amount: 2
auto_unlock_on: ["STONE"]
Smithing Transform Recipe
Smithing table recipe that transforms a base item using a template and an addition material. Requires three inputs: template, base item, and addition.
- key: "custom_netherite_pickaxe"
type: "smithing_transform"
template: "NETHERITE_UPGRADE_SMITHING_TEMPLATE"
base: "DIAMOND_PICKAXE"
addition: "NETHERITE_INGOT"
result:
item: "NETHERITE_PICKAXE"
amount: 1
name: "&4Infernal Pickaxe"
lore:
- "&7Forged in the depths"
enchantments:
- "EFFICIENCY:5"
custom_model_data: 2001
auto_unlock_on: ["NETHERITE_INGOT"]
Adjacent Pair Recipe
A unique recipe type where two items are placed next to each other in the crafting grid. LumenSmith automatically registers all valid placements.
- key: "glowing_ink_sac_craft"
type: "adjacent_pair"
items:
- "GLOWSTONE_DUST"
- "INK_SAC"
direction: "both" # horizontal, vertical, or both (default)
result:
item: "GLOW_INK_SAC"
amount: 1
auto_unlock_on: ["GLOWSTONE_DUST", "INK_SAC"]
Direction options
| Value | Registered placements |
|---|---|
horizontal | Side by side (left-right) in all rows |
vertical | Stacked (top-bottom) in all columns |
both (default) | All horizontal and vertical placements |
Brewing Recipe NEW v0.1.5
Brewing recipes substitute the result of a brewing-stand operation. The match is
(ingredient material, bottle material): when the player puts your
ingredient in the top slot and any of your input bottles
below, the result is replaced with what you defined.
- key: "potion_of_speed"
type: "brewing"
ingredient: "SUGAR"
input: "POTION" # POTION | SPLASH_POTION | LINGERING_POTION
result:
item: "POTION"
potion_type: "SWIFTNESS" # any PotionType: STRENGTH, LONG_FIRE_RESISTANCE, ...
name: "&bSpeed Brew"
auto_unlock_on: ["SUGAR"]
Required fields
| Field | Type | Description |
|---|---|---|
ingredient | Material | The item placed in the top brewing-stand slot |
input | Material | Must be POTION, SPLASH_POTION, or LINGERING_POTION |
result.item | Material | Must also be one of POTION / SPLASH_POTION / LINGERING_POTION |
Optional result fields specific to brewing
| Field | Type | Description |
|---|---|---|
potion_type | string | Bukkit PotionType enum value (e.g. STRENGTH, LONG_NIGHT_VISION, STRONG_REGENERATION). Omit to get a plain water bottle. |
How it actually fires
The plugin handles brewing in two ways depending on whether vanilla accepts the ingredient pair:
- Vanilla-valid pair (e.g.
GLOWSTONE_DUST + AWKWARD): vanilla starts brewing, we intercept theBrewEventand substitute your result. - Non-vanilla pair (e.g.
SUGAR + POTION, orOAK_LOG + POTION): vanilla would normally reject the ingredient and refuse to brew. We watch the brewing-stand inventory directly, consume blaze powder, run a 20-second brewing animation, and replace the bottles ourselves. Same look, same timing, and it works for any material as ingredient.
potion_type covers the standard PotionType enum (vanilla potion effects). Fully custom effect lists are planned for a future release.
LumenSmith