English
Skill Action Bar
Configure the skill action bar: what it displays, which template variables exist, how to set the refresh interval, and how the forced delay works. The action bar is the line of hints at the bottom of the screen while the player is in cast mode, showing skill slot state, so players open the GUI less often to check bindings
Configuration
The settings live in config.yml under actionbar:
yaml
actionbar:
# Whether the skill action bar is enabled
enabled: true
# Refresh interval in ticks; values below 1 are treated as 1
refresh_interval_ticks: 10
# Template shown while cast mode is enabled
template_cast_mode: "<gold>Cast Mode</gold> %slot_1% %slot_2% %slot_3% <gray>Delay:</gray> %forced_delay%"
# Idle template; blank falls back to the source default text instead of disabling the display
template_idle: ""| Field | Type | Required | Default | Values | Description |
|---|---|---|---|---|---|
actionbar.enabled | boolean | No | true | true / false | Whether the action bar refreshes. When off, no refresh task is started |
actionbar.refresh_interval_ticks | integer | No | 10 | ≥ 1, values below 1 become 1 | Refresh interval in ticks (20 ticks ≈ 1 second) |
actionbar.template_cast_mode | string | No | &aCast Mode &7| %slot_display% | MiniMessage text | Template while cast mode is on. Blank or whitespace-only falls back to the built-in default template |
actionbar.template_idle | string | No | &7Idle | MiniMessage text | Idle template. Blank or whitespace-only falls back to the built-in default |
IMPORTANT
The current implementation only pushes the action bar while the player is in cast mode and their profile is loaded: when the player leaves cast mode, or the profile is not loaded, the refresh is skipped entirely, so template_idle is never sent to the player. The key is still parsed and kept as a fallback default
Template variables
| Variable | Description |
|---|---|
%slot_display% | All slots rendered as one combined string, separated by spaces |
%slot_1% ~ %slot_n% | A single slot's text. n follows the player's slot count (slots.default_count); %slot_1% is the slot at index 0 |
%forced_delay% | Remaining global forced cast delay, formatted as 1.5s; 0s when there is none |
Slot text is assembled from four parts: the bound skill, the trigger display name, cooldown state, and empty-slot state. An empty slot uses gui.slot_empty_short from the language file; trigger names come from triggers.<id>.display_name, and an unbound trigger uses gui.trigger_unbound_short
Forced delay
cast_timing controls the global forced delay written after a successful cast; the remaining time is shown to the player through %forced_delay% above
yaml
cast_timing:
# Global delay after a successful cast, in ticks; 0 disables it
forced_global_cast_delay_ticks: 0| Field | Type | Required | Default | Values | Description |
|---|---|---|---|---|---|
cast_timing.forced_global_cast_delay_ticks | integer | No | 0 | ≥ 0, negatives become 0 | Global forced delay written after a successful cast, in ticks. During the delay a new cast attempt fails with cast.forced_delay. 0 disables it |
Relationship to cast mode
The action bar only refreshes while cast mode is on. The entry key, the enable switch, and the rejoin restore policy are written in config.yml > cast_mode, see Triggers - Cast mode
- Active triggers only listen to server-visible actions (left/right click, Q, number keys) while cast mode is on
- With
cast_mode.restore_last_state_on_join: true, a rejoining player gets their previous cast mode state back, and with it the action bar refresh
Recommended templates
Compact
yaml
actionbar:
template_cast_mode: "<gold>Cast</gold> %slot_display%"This one fits servers with few skill slots
With delay hint
yaml
actionbar:
template_cast_mode: "<gold>Cast Mode</gold> %slot_1% %slot_2% %slot_3% <gray>Delay:</gray> %forced_delay%"This one fits servers that enable cast_timing.forced_global_cast_delay_ticks
Design notes
- If your server already shows combat, region, or quest text on the action bar, plan display priority across them
- With many slots, prefer
%slot_display%or split the display into groups so the line does not grow too long
Troubleshooting
- Nothing shows: check
actionbar.enabled, whether you are in cast mode, and whether the profile has loaded - Slots look empty: check that you own the skills, that slots are bound, and that skill sources are synced
- The delay never changes: check
cast_timing.forced_global_cast_delay_ticksand whether successful casts write the delay - Conflicts with another action bar plugin: adjust
actionbar.refresh_interval_ticks