Changelog
Version history and release notes for LumenSmith.
v0.1.4 — Major Update
February 17, 2026 — Latest release
New Features
In-Game Recipe Creator (/ls create <key>)
- Full click-based GUI recipe builder — no YAML editing needed
- Supports all 9 recipe types: shaped, shapeless, furnace, blasting, smoking, campfire, stonecutting, smithing transform, and adjacent pair
- Click a slot, then click any item in your inventory to assign materials
- Type selector — pick your recipe type visually, change it anytime
- Result amount control — set output amount from 1–64 with +/- buttons (always starts at 1 when picking an item)
- Cooking controls — adjust cooking time (+/-50 ticks) and experience (+/-0.1) directly in the GUI
- Fuel selector — restrict which fuels are allowed for cooking recipes (click to add fuels, right-click to clear)
- Direction option — for adjacent pair recipes, choose horizontal, vertical, or both placement directions
- Auto-generates
auto_unlock_onfrom ingredients - Saves directly to
config.ymland reloads instantly
Recipe Editing
- Edit button in recipe detail view (writable book icon) — loads existing recipe into the creator with all data pre-filled
- Supports editing all recipe types including shaped grid layout, cooking settings, fuel restrictions, and direction
- Saves changes in-place (replaces old config entry)
Recipe Deletion
- Delete button in recipe detail view (TNT icon) — removes recipe from config with one click
- Instantly reloads after deletion
Adjacent Pair Direction
- New
directionconfig field for adjacent pair recipes:horizontal,vertical, orboth(default) - Controls which placement orientations are registered
- Fully configurable from both YAML and the in-game creator
Bug Fixes
- Smelting Output Fix — Fixed critical bug where custom cooking recipe outputs were blocked by
remove_by_output. Example: custom "Crying Obsidian → Obsidian" recipe was blocked because OBSIDIAN was in the blocked outputs list. Custom recipes now correctly bypass the vanilla output blocker. - Fuel Enforcement Fix — Switched from
FurnaceSmeltEventtoFurnaceBurnEventfor fuel checking.FurnaceBurnEventfires before fuel is consumed, makinggetFuel()reliable. Prevents infinite smelting loops when wrong fuel was used. - Ingredient Display Deduplication —
/ls recipesbrowser and detail view now groups duplicate ingredients. ShowsSTONE x9instead of listing STONE nine separate times.
Performance Optimizations
- O(1) Fuel Index Lookup — Pre-built
cookingFuelIndexmap in RecipeLoader. Direct map lookup instead of iterating all recipes. Reduces furnace burn event processing from O(n) to O(1). - Memory Leak Prevention — Creator sessions cleaned up on
PlayerQuitEvent. Prevents session map from growing unbounded. - Pre-computed Messages — No string processing on hot paths
- Debounced Rescanning —
pendingRescanset + 2-tick delay to reduce event spam - O(1) Material Checks —
boolean[]indexed byMaterial.ordinal()for material presence checks - Immutable Collections —
List.copyOf/Map.copyOffor cached recipe data
Config Changes
New optional fields for cooking recipes:
custom_recipes:
- key: "my_smelt"
type: "furnace"
input: "CRYING_OBSIDIAN"
experience: 1.0
cooking_time: 200
allowed_fuels: # NEW - restrict fuel types
- COAL
- LAVA_BUCKET
result:
item: "OBSIDIAN"
amount: 1
New optional field for adjacent pair recipes:
- key: "my_pair"
type: "adjacent_pair"
items: ["DIAMOND_BLOCK", "GOLD_BLOCK"]
direction: "horizontal" # NEW - horizontal, vertical, or both (default)
result:
item: "NETHERITE_BLOCK"
amount: 1
v0.1.3
October 21, 2025
Added
- Instant recipe unlocks — players now automatically unlock custom recipes the moment they obtain any item listed in
auto_unlock_on /ls rescancommand — instantly refreshes all players' recipe books without reloading the plugin- World filter improvements — more stable handling when switching between
whitelistworldoff: true/false
Fixed
- Fixed a bug where players had to rejoin the server or restart to see newly unlocked recipes
- Fixed delayed unlocks when using
/give, crafting, or picking up trigger items - Fixed rare cases where crafting events didn't update the recipe book correctly
Improved
- Refined UnlockListener for smoother and faster detection of inventory changes
- Small cleanup and safety checks for reload and recipe validation
- Polished internal logs and better formatting for
/ls list
This version focused entirely on real-time recipe unlocking and smoother gameplay — no more relogs, no restarts.
v0.1.2
October 14, 2025
- Added full support for
world_filter— features can now be enabled globally or restricted to specific worlds - Added
adjacent_pairrecipe type: two items crafted side-by-side or vertically anywhere on the 3×3 grid produce a result - Added
auto_unlock_onfix — recipes now appear correctly in the green book once a player obtains any listed items - Added
/ls rescancommand to re-check all online players' inventories and unlock missing recipes instantly - Added
/ls fixbookcommand to clean duplicate or outdated recipe entries in players' books - Improved
/ls listoutput for better readability and detailed recipe status - Improved configuration comments and layout for a clearer, beginner-friendly setup
- Minor internal cleanup and stability improvements on Paper / Spigot 1.21.x
v0.1.1
October 13, 2025
- Added full protection for
remove_by_outputitems — blocked items can no longer be clicked, shift-crafted, or taken from the crafting table - Ingredients are not consumed, and the result slot stays empty
- Added extra safety checks for drag and result slot interactions
- Updated
/ls helpversion info to v0.1.1 - Improved overall crafting event handling for Paper & Spigot 1.21.x
v0.1.0 — Initial Release
October 12, 2025
- Added support for custom shaped and shapeless recipes via
config.yml - Added
remove_by_outputto block crafting of vanilla items (e.g., TNT, TNT Minecart) - Added
auto_unlock_onso recipes appear automatically in the recipe book when a trigger item is obtained - Added
/lumensmithcommand (alias/ls)/ls help— show available commands/ls list— list blocked outputs and custom recipes/ls reload— reload all recipes and configuration
- Added beginner-friendly configuration layout with clear comments
- Added automatic replacement of vanilla recipes when custom ones use the same key
- Added colored console summary of loaded recipes
- Added permission system (
lumensmith.admin) - Fully reload-safe and compatible with Paper, Spigot, and Purpur (1.20.x – 1.21.x)
LumenSmith