Skip to main content
Menu and UI actions control the player’s interface, navigate between menus, and handle server connections. Open a menu defined in the menus/ directory.
menu_name
string
required
The name of the menu file (with or without the menus/ prefix and .yml extension)
The action automatically resolves menu paths:
  • selectormenus/selector.yml
  • menus/selectormenus/selector.yml
  • shop/mainmenus/shop/main.yml

Examples

actions:
  - "[MENU] selector"

Real-World Usage

From items.yml - Compass item:
compass:
  name: "&cCompass"
  material: COMPASS
  glow: true
  lore:
    - "&7Right click me to open"
    - "&7the server selector!"
  actions:
    - "[MENU] selector"
From menus/socials.yml - Discord button:
discord:
  material: PLAYER_HEAD
  name: "&3Discord Server"
  slot: 3
  actions:
    - "[LINK] Click me for the discord;Discord link;discord.com/invite"

Permission Support

Menus can have permissions defined in their configuration:
title: "&cAdmin Panel"
size: 27
permission: "hubbly.admin"
items:
  # ...
If a player doesn’t have permission to open a menu, they’ll receive the no_permission_use message from your language file.

CLOSE

Close the player’s currently open inventory/menu.
parameters
none
This action takes no parameters.

Examples

actions:
  - "[CLOSE]"

Common Patterns

From menus/movement.yml:
none:
  material: BARRIER
  name: "&cNone"
  slot: 19
  actions:
    - "[PLAYER] hubbly movement none"
    - "[CLOSE]"
From menus/selector.yml:
fill:
  slot: -1  # Fill empty slots
  material: BLACK_STAINED_GLASS_PANE
  name: " "
  actions:
    - "[CLOSE]"
The CLOSE action should typically be the last action in a chain, as it immediately closes the inventory.

SLOT

Change which inventory slot the player is holding.
slot
integer
required
The hotbar slot number (1-9). The player will switch to this slot.

Slot Numbering

  • Slots are numbered 1-9 (not 0-8)
  • 1 is the leftmost hotbar slot
  • 9 is the rightmost hotbar slot

Examples

actions:
  - "[SLOT] 1"

Use Cases

actions:
  - "[ITEM] compass;1"
  - "[SLOT] 1"
  - "[MESSAGE] &7Right-click the compass to open the menu"
# Select sword from menu
actions:
  - "[CONSOLE] give %player_name% diamond_sword 1"
  - "[SLOT] 1"
  - "[CLOSE]"

Send a clickable link to the player in chat.
message
string
required
The message text that will be clickable
hover_text
string
required
Text shown when hovering over the link
url
string
required
The URL to open when clicked

Syntax

[LINK] message;hover_text;url
Parameters are separated by semicolons.

Examples

actions:
  - "[LINK] Click me for the discord;Discord link;discord.com/invite"

Real-World Usage

From menus/socials.yml:
items:
  discord:
    material: PLAYER_HEAD
    name: "&3Discord Server"
    url: http://textures.minecraft.net/texture/7873c12bffb...
    slot: 3
    lore:
      - "&aJoin the Discord Server!"
    actions:
      - "[LINK] Click me for the discord;Discord link;discord.com/invite"
  
  tiktok:
    material: PLAYER_HEAD
    name: "&cTiktok"
    slot: 5
    lore:
      - "&aFollow me on TikTok!"
    actions:
      - "[LINK] Click me to open TikTok!;TikTok link;tiktok.com"

Color Support

All three parameters support color codes:
actions:
  - "[LINK] <#FFD700>Premium Discord;<#FFA500>Click to join;discord.gg/premium"
Make sure your LINK action has exactly 3 parameters separated by semicolons, or it will fail with a warning.

BUNGEE

Connect the player to another server in your BungeeCord network.
server_name
string
required
The name of the BungeeCord server to connect to

Requirements

  • Server must be running on a BungeeCord/Waterfall network
  • The BungeeCord plugin messaging channel must be registered
  • Target server must be defined in BungeeCord’s config

Examples

actions:
  - "[BUNGEE] survival"

Real-World Usage

From menus/selector.yml - Server selector menu:
title: "&cServer Selector"
size: 36
items:
  survival:
    material: APPLE
    name: "<#CCFFDD>Survival Server"
    slot: 12
    lore:
      - "&aJoin the Survival Server!"
    actions:
      - "[BUNGEE] survival"
  
  creative:
    material: PLAYER_HEAD
    name: "&cCreative Server"
    slot: 14
    lore:
      - "&aJoin the Creative Server!"
    actions:
      - "[BUNGEE] creative"
  
  factions:
    material: LEATHER_CHESTPLATE
    name: "&cFactions Server"
    slot: 22
    actions:
      - "[BUNGEE] factions"

Automatic Prefix Handling

The action handles both formats:
# Both work the same way:
actions:
  - "[BUNGEE] survival"
  - "[BUNGEE] server survival"  # "server " prefix is stripped

Enhanced Transfer Experience

actions:
  - "[SOUND] ENTITY_ENDERMAN_TELEPORT"
  - "[TITLE] &aTeleporting...;&7Please wait;10;40;10"
  - "[BUNGEE] survival"
actions:
  - "[MESSAGE] &7Connecting to &aSurvival &7in 3 seconds..."
  - "[SOUND] BLOCK_NOTE_BLOCK_PLING"
  # Add 3 second delay via plugin scheduler if needed
  - "[BUNGEE] survival"
If the BungeeCord channel is not registered, you’ll see a warning in the console: “Channel BungeeCord is not registered!”

Complete Examples

survival_button:
  material: GRASS_BLOCK
  name: "&aSurvival Server"
  slot: 12
  lore:
    - "&7Click to join!"
    - ""
    - "&7Players: &a%bungee_survival%"
  actions:
    - "[SOUND] UI_BUTTON_CLICK"
    - "[MESSAGE] &7Connecting to &aSurvival&7..."
    - "[BUNGEE] survival"
title: "&6Follow Us!"
size: 27
items:
  discord:
    material: PLAYER_HEAD
    name: "&9&lDiscord"
    slot: 11
    actions:
      - "[LINK] &b&nClick to join our Discord!;&7discord.gg/example;discord.gg/example"
      - "[SOUND] ENTITY_PLAYER_LEVELUP"
  
  twitter:
    material: PLAYER_HEAD
    name: "&b&lTwitter"
    slot: 13
    actions:
      - "[LINK] &b&nFollow us on Twitter!;&7twitter.com/example;twitter.com/example"
      - "[SOUND] ENTITY_PLAYER_LEVELUP"
  
  back:
    material: BARRIER
    name: "&cBack"
    slot: 22
    actions:
      - "[CLOSE]"
# Main menu button
games_menu:
  material: DIAMOND_SWORD
  name: "&6Games Menu"
  slot: 13
  actions:
    - "[SOUND] UI_BUTTON_CLICK"
    - "[MENU] games/main"

# In games/main.yml - Bedwars button
bedwars:
  material: RED_BED
  name: "&cBedwars"
  slot: 11
  actions:
    - "[SOUND] BLOCK_NOTE_BLOCK_PLING"
    - "[MESSAGE] &7Joining &cBedwars&7..."
    - "[CLOSE]"
    - "[BUNGEE] bedwars-1"

Build docs developers (and LLMs) love