Animation
FioMenu separates decorative slot animation from animated text. Both are driven from animations.yml, but they are used differently inside menu YAML.
Text animation
Text animations use:
type: "text"
ticks: 20
text:
The current source ships with these text animation ids:
wave_gradientshadow_textrainbow_text
Use them through:
%fiomenu_at:<animation_id>%
Example:
menu:
title: "%fiomenu_at:rainbow_text%"
Item animation
Item animations use:
type: "item"
structure:
items:
logic:
The bundled item animations include:
rainbowdoor_animation
Use them through:
menu:
animated: "rainbow"
Single feedback animation
The source also includes type: "single" entries:
errorsucess
These are short status-style effects rather than full menu frame layouts.
Behavior modes
The source comments document these behavior values:
LOOPREVERTONCE
Meaning:
LOOPplays forward and backward in a ping-pong cycle.REVERTplays forward and jumps back to the first frame.ONCEplays one time and stops.
How rainbow is structured
The rainbow animation shows the normal item-animation pattern:
structure.animationdefines the symbol grid per frameitemsdefines how each symbol renderslogicdecides which visual state index is used per framesettings['?'] = ITEM_PLACEHOLDERpreserves menu-owned content in those slots
This makes it suitable for animated borders that should move around real clickable items without replacing the whole menu content.
How door_animation is structured
door_animation is a one-time opening effect:
type: "item"behavior: ONCEafter_animationrestores the placeholder layout
Use it when you want the menu to animate in, then return control to the normal item layout.
Refresh and animated text
The menu examples show that animated text works best together with refresh-driven rendering:
menu.always_refresh- item
refresh: true
That is especially important when the animated text is inside item name or lore, because the item has to be re-rendered to show the next frame.
Practical setup flow
- Define the animation id in
animations.yml. - Use
menu.animatedfor item animation. - Use
%fiomenu_at:<id>%for text animation. - Add
always_refreshand itemrefresh: truewhere live text should visibly update. - Reload the plugin with
/fiomenu admin reload.
Source-backed caution
The current file contains the id sucess spelled exactly that way. If you reference it from YAML, use the source spelling rather than silently renaming it in your config.