FioMenu Update - Changelog
(1.25)
- Stopped Automatic Default Menu Fallback Regeneration for Java and Bedrock Menu Folders
- FioMenu no longer recreates bundled default menu files as a fallback every time the plugin loads when entries are missing from fio_menus or bedrock_fio_menus.
- Added New type: "MERCHANT" Menu Support to FioMenu
- FioMenu now supports a new menu.type value: "MERCHANT", allowing a menu to open the native Java villager trading interface instead of a chest-style inventory GUI.
- When this type is used, FioMenu builds a merchant UI from configuration-driven trade entries under menu.trades, so server owner can define custom trading interfaces entirely from YAML.
- Added New Per-Trade behavior Options for type: "VILLAGER"
- Added support for behavior.max_traded on villager trades, allowing server owner to limit how many times a specific trade can be completed per player.
- Added behavior.refresh.enable and behavior.refresh.time so trade usage limits can reset automatically after a configured interval such as "1d", "12h", or other supported duration combinations.
- Added behavior.exp.enable, behavior.exp.min_exp, and behavior.exp.max_exp so players can receive configurable experience rewards after successfully completing a trade.
- Added behavior.villager.enable, behavior.villager.experience, and behavior.villager.multi so each trade can contribute villager-style progression data and apply configurable merchant price multiplier behavior.
- Added behavior.unlock.enable and behavior.unlock.level so specific trades can stay locked until the configured villager progression requirement has been reached.
- Supported unlock levels include NOVICE, APPRENTICE, JOURNEYMAN, EXPERT, and MASTER.
- Villager trade behavior state is now persisted per player through FioMenu data storage, allowing trade counts, refresh windows, and unlock progress to remain consistent across menu reopen, reload, and normal server runtime usage.
- Added Vanilla Name Fallback When name: Is Not Defined on an Item
- When name: is not defined in an item section, FioMenu now keeps the item's original vanilla display name instead of forcing a hidden custom name.
- This means items such as EMERALD will now render with their normal vanilla naming like Emerald when no explicit custom name is configured.
- If server owner still wants to hide the name completely, they can continue defining name: "" explicitly.
- Added More InventoryType Example <ui>.yml Menus to FioMenu
- Added a new showcase example configuration for more Bukkit InventoryType values so server owner can more easily build unique menu screens beyond the standard chest inventory format.
- The new example set demonstrates how to use menu types such as ANVIL, BARREL, BEACON, BLAST_FURNACE, BREWING, CARTOGRAPHY, CRAFTER, CRAFTING, DISPENSER, DROPPER, ENCHANTING, FURNACE, GRINDSTONE, HOPPER, LOOM, MERCHANT, SMITHING, SMOKER, STONECUTTER, and WORKBENCH.
- These examples are intended to help server owner understand how menu.type can map directly to Bukkit inventory enums while still using normal FioMenu item rendering and action configuration patterns.
- The showcase also provides ready-to-copy command examples so each inventory type can be tested and adapted more quickly inside real server setups.