FioMenu Update - Changelog
(1.15)
- BannedChars Configuration Bug Fix + Config Path Unification
- Fixed a configuration resolution issue where blocked-word settings could be interpreted from multiple legacy paths, causing confusion and inconsistent behavior between generated/default config values.
- Standardized blocked-word documentation and runtime usage toward the new primary config key:
settings.bannedChars- Added compatibility fallback handling in code so older configurations using legacy paths can still be read safely during migration (to avoid sudden breakage on existing servers).
- Removed outdated wording in docs that implied
blacklisted_wordswas still the main path for the new setup.- Result: server owners now have a clearer single source of truth for banned-word lists, while older configs still remain operational during transition.
- Added 1 New Bedrock MODAL Example Menu (+ Runtime Support Fixes)
- Added a new Bedrock MODAL example config:
src/main/resources/bedrock_fio_menus/modal_confirm_example.yml- Implemented MODAL routing support in Bedrock form pipeline so
menu.form: "MODAL"is now processed by FioMenu runtime (previously only SIMPLE/CUSTOM were handled).- Added modal button label configuration support:
modal.button1modal.button2- Added modal branch action execution support:
actions.accept.anyactions.deny.any- Fixed a bug where MODAL
accept/denyactions were not executed due to incorrect action-scope resolution; parser now resolves actions from top-level config correctly (with fallback handling).- Compile/build verification passed after patch to ensure the new MODAL path is stable.
FioMenu Update - Changelog
(1.14)
- Geyser Bedrock UI Core Integration
- Implemented full Bedrock UI integration path for FioMenu via Geyser/Floodgate runtime flow, including automatic Bedrock form rendering for supported menu types.
- Added dedicated
bedrock_fio_menusfolder for Bedrock-exclusive UI definitions so Bedrock data structure is fully separated from Java GUI structures.- Added menu-link support via
menu.bedrock: "<id>", allowing Java menu definitions to point directly to Bedrock form files.- Improved Bedrock runtime resolution so Bedrock players open Bedrock UI flows while Java players continue using Java inventory GUI flows.
- Bedrock Form Type Expansion
- Added support for Bedrock
SIMPLE,CUSTOM, andMODALform routing under the Bedrock menu pipeline.- Expanded form compatibility logic for content/title rendering and action execution across all supported Bedrock form types.
- Button and Image Options for Bedrock UI
- Added
button.line1andbutton.line2support for Bedrock button text composition.- Added
image.typeandimage.urlsupport for Bedrock button image sources.- Added
image.typevariants:NONE,CUSTOM, andPATH.- Improved button text behavior so line separation is preserved and does not get compacted into a single unreadable line.
- Text Rendering and Bedrock Alignment
- Added Bedrock content alignment tags:
<align:center>,<align:left>, and<align:right>.- Improved Bedrock align parsing compatibility to process both
</align>and directional closers like</center>,</left>,</right>.- Refined Bedrock align spacing/width handling so centered and right-aligned content appears visually closer to expected positions in Bedrock custom form content areas.
- Added MiniMessage-to-Bedrock color rendering compatibility improvements so styled text is translated more consistently for Bedrock clients.
- Input/Label UI Behavior Additions
- Added
behavior.mustInput: true/falsefor Bedrock custom form input fields.- Added
behavior.respectBannedChars: true/falsefor Bedrock custom form input validation.- Added configurable reopen behavior flow when blocked text is detected, so menu can reopen the same target form after validation fail logic.
- Added/updated blocked words configuration path in
config.ymlusing:
bannedChars.blacklisted_words- Dropdown UI Behavior and Remember System
- Added
behavior.mustRememberValue: true/falsefor Bedrock dropdown forms.- Added
behavior.placeholdertoRemember: <value>for placeholder-based default resolution in dropdown forms.- Added
behavior.dropdown.toRemember: <value>mapping support to bind placeholder values to visible option labels.- Added
placeholder.headersupport for dropdown field title customization.- Added
optionssupport for dropdown visible entries.- FioMenu now remembers the chosen dropdown option per player and can restore the selected state when reopening the same Bedrock menu.
- Checkmark UI Behavior and State Control
- Added
behavior.checkmark.behavior.placeholder_true: <value>support for true-state placeholder matching.- Added
behavior.checkmark.behavior.placeholder_false: <value>support for false-state placeholder matching.- Added
actions.placeholder_trueandactions.placeholder_falsebranches for state-based checkmark action execution.- Implemented per-player/per-menu/per-field checkmark remember logic to prevent full-form action spam when only specific toggles are changed.
- Improved checkmark execution flow so actions run only for options whose state actually changed, keeping toggle behavior cleaner and more deterministic.
- Improved compatibility for placeholder-driven toggles (including Essentials-style placeholder state checks) to keep UI state synchronized even when command toggles are also used outside the form.
- Slider UI Enhancements
- Added
behavior.value.minandbehavior.value.maxfor numeric slider boundaries.- Added
behavior.slider.per_slidefor numeric step size control.- Added
behavior.slider.defaultfor default slider value/index.- Added
behavior.type: "value" | "text"for explicit slider mode selection.- Separated runtime token behavior so numeric mode and text mode are no longer mixed:
%bedrockSliderValue%dedicated for numeric slider mode.%bedrockSliderText%dedicated for text slider mode.- Added compatibility fallback for Bedrock slider method signatures across Cumulus/Floodgate variants to reduce runtime reflection failures.
- Added step-slider compatible path for text-mode slider so option-based text selection can render as text-oriented selection flow instead of raw numeric-only behavior when API support exists.
- Action/Command Routing Improvements
- Standardized open action usage toward
[OPEN_MENU]for both Java and Bedrock menu transitions.- Added/expanded command and alias routing support on Bedrock form definitions via:
menu.commandmenu.aliases- Improved handling for Bedrock menu command aliases so alias triggers can resolve to the same Bedrock target menu consistently.
- Configuration and Structure Cleanup
- Removed legacy/unused example Bedrock form file variants as requested to avoid redundant structures.
- Updated Bedrock example structures to keep Java and Bedrock menu responsibilities clearly separated:
- Java:
fio_menus/<menu>.yml- Bedrock:
bedrock_fio_menus/<menu>.yml- Refined multiple sample Bedrock menu configs (example, settings, warps, ranksshop, label, dropdown, checkmark, slider) to follow the newly expanded structure and action system.
FioMenu Update - Changelog
(1.13)
- Bedrock Tooltip Compatibility
- Improved Bedrock compatibility for Java item flags by translating hide-related flags (including
HIDE_ENCHANTS) into Bedrock-friendly tooltip hiding behavior.- This helps reduce cases where Java-side hidden lines still appear on Bedrock clients due to differing tooltip systems.
- Translation and Language System
- Added a new Translate system powered by
translation.yml, with per-language text mapping support usingEN/ID/JP/CN(and extensible custom language trees).- Added language switch action
[SET_LANG] <lang>to change player language state directly from menu actions.- Added new language placeholders:
%fiomenu_lang_id%-> returns configured language id (example:id_id)%fiomenu_lang_formatted%-> returns formatted alias (example:Indonesia (ID))%fiomenu_lang_id_actuall%-> returns actual language key (example:ID)- Language state is persisted per player so selected language remains stable across menu reopen/reload flows.
- Item Behavior Additions
- Added
behavior.armor_trimsupport for armor trim application in GUI item rendering.- Added
behavior.bundle_containersupport so bundle items can be pre-filled with configured contents (example:MATERIAL;AMOUNT).- Added
behavior.tropical_patternsupport for tropical fish bucket variant configuration:
- Supported format:
<PATTERN>;<BODY_COLOR>or<PATTERN>;<BODY_COLOR>;<PATTERN_COLOR>- Allows explicit variant targeting such as
BETTY;CYANorCLAYFISH;WHITE;ORANGE- Takeable Item System
- Added
behavior.take_able: true/falseto control whether a GUI item can be taken by player interaction.- Updated takeable behavior so item pickup can follow cursor-based/manual inventory interaction flow (instead of forced hard-insert only), improving vanilla-feel UX.
- Added
behavior.cleancontrols for taken items:
clean.name: true/false-> optionally remove custom display name when takenclean.lore: true/false-> optionally remove lore when takenclean.nbt: true/false-> optionally clean plugin-side custom data while preserving intended runtime behavior rules- Cooldown Controls for Takeable/Interactive Items
- Added
behavior.cooldown.value: <seconds>to define item cooldown duration.- Added
behavior.cooldown.wait_till_cooldown: true/falseto control visibility gating while cooldown is active.- When enabled, item can be hidden/suppressed from GUI rendering until cooldown completes, depending on configured rule path.
- Rule Animation Reopen Flow
- Added
wait_untill_reopen: truesupport for rule-driven animation branches.- Improved close-then-reopen scenarios so when action lines include
[CLOSE], animation can be deferred and played after player reopens the exact target menu again.- Helps avoid animation loss in chained action workflows (example: fail/success rule actions that close menu before visual sequence starts).
FioMenu Update - Changelog
(1.12)
- Sort System Improvements
- Added numeric sort value compatibility for
behavior.ifSortusing0-1and1-0patterns.- Added support for single-token matching in
ifSort(such as'0'and'1') so value-based sorting can be mapped per item more flexibly.- Improved sort logic so value-priority ordering is now applied for both local-page and cross-page/inherited menu chains:
0-1prioritizes0above1(Lowest to Highest)1-0prioritizes1above0(Highest to Lowest)- Expanded sort behavior so FioMenu can evaluate either alphabetical states (e.g.
a-z/z-a) or numeric value states (e.g.0-1/1-0) from the same sort framework.- Item Stack / Amount Enhancements
- Added new item option
amount: <value>for GUI item count configuration.- Extended visible item amount handling so GUI items can render above vanilla 64 stacks where supported by current server API/runtime behavior.
- Added support target for higher stack display values (e.g.
65-99) to allow custom showcase amounts such as67or69.- Animation System Additions
- Added new animation mode
type: "single"for one-shot style visual sequences.- Added
clear_after_finished: truesupport to clear animation artifacts after sequence completion.- Added
repeat_for: <value>support to repeat single-type animations a configurable number of cycles.- Command and Alias Compatibility
- Hardened
command:andaliases:parsing/normalization to improve compatibility across multilingual and non-standard keyboard input layouts.- Improved label normalization flow so command tokens are handled more safely for diverse character sets without breaking core command registration behavior.
- Custom Slot and Shortcut System
- Added new
menu.custom_slotconfiguration block for player-configurable shortcut slots on main menus.- Added dual root item compatibility so menu definitions can use
itemsand shortcut chooser definitions can useshortcuts.- Added chooser flow support for assigning selectable
shortcut_identries into specific custom slots.- Added slot persistence behavior so selected shortcuts are retained per player and per slot mapping.
- Added shortcut render-state behavior (before/after style lore workflows) so assigned shortcuts can present selection-state UI vs. execution-state UI cleanly.
