FioMenu Update - Changelog
(1.25.6)
- 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_menusorbedrock_fio_menus.- Added New
type: "MERCHANT"Menu Support to FioMenu
- FioMenu now supports a new
menu.typevalue:"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
behaviorOptions fortype: "VILLAGER"
- Added support for
behavior.max_tradedon villager trades, allowing server owner to limit how many times a specific trade can be completed per player.- Added
behavior.refresh.enableandbehavior.refresh.timeso 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, andbehavior.exp.max_expso players can receive configurable experience rewards after successfully completing a trade.- Added
behavior.villager.enable,behavior.villager.experience, andbehavior.villager.multiso each trade can contribute villager-style progression data and apply configurable merchant price multiplier behavior.- Added
behavior.unlock.enableandbehavior.unlock.levelso specific trades can stay locked until the configured villager progression requirement has been reached.- Supported unlock levels include
NOVICE,APPRENTICE,JOURNEYMAN,EXPERT, andMASTER.- 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
EMERALDwill now render with their normal vanilla naming likeEmeraldwhen no explicit custom name is configured.- If server owner still wants to hide the name completely, they can continue defining
name: ""explicitly.- Added More
InventoryTypeExample<ui>.ymlMenus to FioMenu
- Added a new showcase example configuration for more Bukkit
InventoryTypevalues 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, andWORKBENCH.- These examples are intended to help server owner understand how
menu.typecan 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.
FioMenu Update - Changelog
(1.24)
- Added Dynamic
material: %placeholder%Parsing to FioMenu
- FioMenu now supports placeholder-based material resolution directly inside item definitions through
material: "%placeholder%".- Introduced
behavior.durability: <value>with Static and Placeholder Support
- Added a new
behavior.durabilityproperty that allows menu items to apply runtime durability visuals directly from configuration.- Added
behavior.fallback.enabledfor Dynamic Material Rendering Failures
- Added a dedicated fallback behavior for placeholder-driven material rendering through
behavior.fallback.enabled: true.- When a
material: "%placeholder%"result resolves to invalid, null, empty, undefined, or a non-usable value such as no material available, FioMenu can now swap the item into a configured fallback state.- Added New
[REPAIR_GUI]Action Support
- Introduced a new repair action system through
[REPAIR_GUI]and value-based variants such as[REPAIR_GUI+10].- This action repairs the item placed into the configured repair slot while preserving its existing item data, including meta, NBT-related data, components, and other item-specific information instead of converting it into a plain vanilla replacement.
- Added New
repair.ymlExample Menu for Repairing Features
- Added a new
repair.ymlexample configuration that demonstrates how to build a repair interface entirely with FioMenu components.
FioMenu Update - Changelog
(1.23.0)
- Expanded Bedrock
imageRule Resolution withimages.<key>.rulesX
- Added conditional image resolution support to Bedrock UI entries so server owner can now define rule-based image states directly inside image sections.
- Bedrock buttons are now able to switch image output dynamically through structures such as
image.rules0, includingsuccessandfailedimage branches.- This makes it possible to present different textures, icons, or visual states depending on whether a configured Bedrock rule passes or fails, without needing to duplicate the entire button definition.
- Added Bedrock Support for
actions.<key>.rulesXConditional Branches
- Extended Bedrock action handling so rule-based action branches can now be defined directly under scoped action keys such as
actions.any.rules0.- Introduced FioMenu
Menu Bundlingfor Java and Bedrock
- Added a new menu bundling system that allows multiple virtual menus to be stored inside a single physical
.ymlfile.
FioMenu Update - Changelog
(1.22)
- Improved Bedrock UI
RulesKey Compatibility
- Applied additional Bedrock-side fixes around the
Ruleskey so Bedrock UI configurations are now parsed more consistently with Java-side menu logic.- Expanded
actions.<key>.<rulesX>Click-Scope Support
- Extended conditional action handling so rule blocks can now be defined directly under click-specific action keys such as
actions.left.rules0,actions.right.rules0, and similar scoped branches.- Server owners are no longer limited to a single shared conditional block when defining rule-based click behavior inside
actions:.- Improvised compact rule syntax such as
rules0: "%vault_eco_balance% >= 75000"continues to work alongside structured syntax like:
rules0: type: "money" value: ">= 75000"- Fixed
ENUM_SOUNDCategory Parsing Bug
- Resolved a sound parsing issue where FioMenu could incorrectly interpret category input and produce warnings such as invalid
SoundCategoryenum constants.
FioMenu Update - Changelog
(1.21.5)
- Improved Rule-Based Item Resolution & Priority Fallback
- FioMenu no longer fully relies on a single explicitly matched item node to decide what should be shown in the menu.
- Expanded structural item resolution so nested indexed items now continue checking the next available priority node when the previous one does not satisfy its configured
rules0/rules1/...condition.- Reduces the need to over-define duplicate rule keys across every item variant just to keep fallback display behavior working correctly.
- Expanded Click-Type Rule Handling & Action Branch Support
- Extended click handling so action branches can now respond more flexibly to click context, including left, right, shift-left, shift-right, and drop-style interactions.
- Fixed
actions:String Parsing & Conditional Action Compatibility
- Resolved an issue where FioMenu could fail to interpret string-based rule declarations correctly when used inside
actions:sections.- Added support for improvised scalar rule syntax such as
rules0: "%vault_eco_balance% >= 75000"in addition to section-based syntax.- Conditional action branch resolution is now more tolerant when only one of
successorfailedis defined, improving backward compatibility with older or experimental configs.- This allows action-driven rule logic to behave more predictably even when menu authors use simplified or partially defined YAML structures.
- Added Dual Rule Syntax Support in
#1.21.5
- Introduced two supported rule declaration styles for FioMenu configuration.
- Modern structured syntax remains available through:
rules0: type: "money" value: ">= 75000"- Fallback improvised syntax is now also supported through:
rules0: "%vault_eco_balance% >= 75000"- This improves authoring flexibility while keeping old and new configuration styles compatible in the same plugin version.
- Improved Runtime Error Handling, Validation, and Reload Stability
- FioMenu now handles configuration and runtime failures much more cleanly, replacing several hard exceptions with plugin-controlled warnings where possible.
- Missing menu files, invalid animation references, unsupported menu types, invalid rule definitions, and similar config problems now produce clearer FioMenu warnings instead of unnecessary large crash traces.
- Added safer handling for empty
.ymlmenu files so 0 KB or whitespace-only menu files are skipped during load/reload instead of breaking/fiomenu admin reload.- Listener and command entrypoints are now more defensive, improving overall runtime stability and reducing disruptive event exception output.
- Fixed Success Animation State Desync & Previous-Item Flashing
- Resolved the success animation issue where players could briefly see the old
rules0/ previous-priority item before the newly valid item state appeared.- Animation completion now refreshes the active menu state using current resolved rules instead of restoring stale pre-animation snapshots.
- Added protection against mid-animation refresh interference so auto-refresh and other update paths do not reveal the next item state before the animation has finished playing.
- Final animation frames now remain visible for their intended duration, producing smoother transitions and preventing split-second visual flicker after successful actions.
FioMenu Update - Changelog
(1.20.3)
- Added New Delayed Action Tag Syntax:
[TAG=<DELAY VALUE>]
- Introduced a new universal delayed action format so action tags can now be scheduled directly inline using
[TAG=<ticks>].- Enables cleaner action configuration without requiring separate delay control lines for common delayed action flows.
- Supports practical usage patterns like
[CLOSE=5],[OPEN_MENU=10] menu_id,[SOUND=2] SOUND_NAME 100 1, and similar executor tags.- Kept backward compatibility with existing action syntax, so previous
[TAG]configurations continue to work unchanged.- Fixed
shadow.ymlForced Regeneration on Reload
- Resolved an issue where bundled
shadow.ymlcould reappear automatically after manual deletion and plugin reload.- Removed hard-forced bundled copy flow that previously recreated the file during menu reload lifecycle.
- Reload behavior now respects administrator file management decisions, preventing unwanted default menu re-injection.
- Default menu seeding behavior remains available for fresh setup scenarios without overriding existing manual cleanup intent.
- Reconstructed
/fiomenu admin listOutput & Metadata Presentation
- Refactored list display to a cleaner compact format:
file1.yml, file2.yml, file3.yml, reducing noisy vertical output.- Added rich hover metadata for each listed menu entry, including file allocation path, enabled/disabled state, active viewer count, menu type, and platform scope.
- Extended listing source coverage so Java and Bedrock menu resources are both represented in menu listing workflows.
- Improved console-facing list readability to avoid clutter while keeping in-game detail accessibility through hover interactions.
FioMenu Update - Changelog
(1.19)
- Fixed
$profileno longer caching after recentLIST_PLAYERlistener changes
- Resolved a regression where
$profiledata was being held by stale cache flow after the latestLIST_PLAYERlistener update.- Adjusted profile/list synchronization so profile rendering now reflects fresh runtime state instead of outdated cached snapshots.
- Improved cache invalidation timing in the list-to-profile transition path to prevent stale profile views.
- Added New Example GUI:
/trash
- Added a new default example GUI entry for
/trash.- Provides a ready-to-use reference for disposal/cleanup interaction patterns in FioMenu menu configuration.
- Can be used as a base template for custom trash-like utility menus.
- Expanded Example GUI Collection (30+ GUIs)
- FioMenu now includes more than
30+example GUI resources by default.- Improves onboarding by giving broader real-world menu patterns for interaction, placeholders, sorting, prompts, and utility flows.
- Makes it easier to start quickly without building every menu from scratch.
- Optimized Default Animation Configuration
- Refined bundled animation defaults for better baseline performance and cleaner behavior in common menu transitions.
- Improved default animation resource structure so customization is more maintainable and predictable.
- Reduced unnecessary overhead in stock animation setup while keeping visual behavior intact.
- Fixed Bundle Right-Click Desync/Disappear Issue in Menu
- Fixed an issue where bundle items containing content could be right-clicked in menu context and appear to disappear.
- Hardened bundle interaction handling to block extraction actions while FioMenu inventory is open.
- Applied client refresh flow after blocked bundle actions so displayed bundle state stays consistent with server-side item data.
FioMenu Update - Changelog
(1.18)
- Added New
list_players.ymlandprofile.yml
- Introduced two new configuration resources to separate player-list presentation logic from individual profile presentation.
list_players.ymlis intended for scalable player listing views (for example, paged player selectors, filtered lists, and sorted index menus).profile.ymlprovides a dedicated profile-layer menu structure, making it easier to build per-player detail screens without overloading generic menu files.- Added
behavior.ifnoPrevious
- Added a dedicated behavior branch to explicitly handle flows where no previous menu/navigation state exists.
- Added
behavior.ifnoPrevious.show: true/false
- Added a visibility toggle for
ifnoPreviousbehavior handling.- Added
empty_behaviorInsideifnoPrevious
- Added an explicit empty-state behavior node for cases where no prior navigation context exists and no fallback content should be rendered.
- Added New
<id_format>;<format_shown>;<placeholder>Pattern insort.format
- Expanded
sort.formatsyntax to support richer sort display descriptors in a single structured token.- This improves consistency between backend sort logic and frontend menu text rendering, especially for multi-language or dynamic-stat sorting displays.
- Added New
<key>.type: "LIST_PLAYERS"
- Introduced a dedicated typed node for player-list driven elements.
- Added
behavior.ifSearch: true/false
- Added behavior branching based on active search state.
- Added
behavior.bedrock_head_compatible: true/false
- Added a compatibility toggle for Bedrock-oriented head/visual handling.
- Added
behavior.bedrock_behavior.<key>
- Added extensible Bedrock-specific behavior mapping using keyed entries.
- Added
sign_prompt.title_change: true/falsein[SIGN_PROMPT]
- Added a toggle to control whether the sign prompt title should be dynamically replaced.
- Added
sign_prompt.title: <value>in[SIGN_PROMPT]
- Added direct custom title assignment for sign prompt interfaces.
- Useful for branding, context-specific instructions, and localized interaction cues.
