Menus in Hubbly are interactive GUIs that players can open through commands or items. They are defined in YAML files in the menus/ folder and support custom items, actions, and layouts.
Menus are stored in menus/ folder and loaded automatically. Each menu file defines the title, size, and items.
Create the menu file
Create a new file in menus/ folder: title : "&cServer Selector"
size : 36
items :
# Items go here
Add items to the menu
Define items with materials, names, slots, and actions: items :
survival :
material : APPLE
name : "<#CCFFDD>Survival Server"
slot : 12
lore :
- "&aJoin the Survival Server!"
actions :
- "[BUNGEE] survival"
Open the menu
Use the command or action to open: Or from an action: actions :
- "[MENU] selector"
Property Type Description Required titleString Menu title with color codes Yes sizeInteger Inventory size (9, 18, 27, 36, 45, 54) Yes itemsMap Item definitions Yes permissionString Permission to open menu No
Item Properties
All item properties from custom items are supported, plus:
Property Type Description Example slotInteger Slot position (0-based) 12slotInteger Use -1 for fill item -1
title : "&cServer Selector"
size : 36
items :
survival :
material : APPLE
name : "<#CCFFDD>Survival Server"
amount : 3
url : http://textures.minecraft.net/texture/355e2dc46399b7b9275221fcdc87c66e58d0d3044dcf62af0465122c1cd7e0bc
model_data : 10001
slot : 12
lore :
- "&aJoin the Survival Server!"
actions :
- "[BUNGEE] survival"
creative :
material : PLAYER_HEAD
texture : http://textures.minecraft.net/texture/bcf2105bb737638833033dd8244071e75870e2e11c2617e542e8924fb2b90180
name : "&cCreative Server"
slot : 14
lore :
- "&aJoin the Creative Server!"
actions :
- "[BUNGEE] creative"
factions :
material : LEATHER_CHESTPLATE
color : 8ad592
name : "&cFactions Server"
slot : 22
lore :
- "&aJoin the Factions Server!"
actions :
- "[BUNGEE] factions"
fill :
slot : -1
material : BLACK_STAINED_GLASS_PANE
name : " "
actions :
- "[CLOSE]"
title : "&6Socials"
size : 9
items :
discord :
material : PLAYER_HEAD
name : "&3Discord Server"
url : http://textures.minecraft.net/texture/7873c12bffb5251a0b88d5ae75c7247cb39a75ff1a81cbe4c8a39b311ddeda
slot : 3
lore :
- "&aJoin the Discord Server!"
actions :
- "[LINK] Click me for the discord;Discord link;discord.com/invite"
tiktok :
material : PLAYER_HEAD
url : http://textures.minecraft.net/texture/2786dc9d65c3b7983e8bb6af588fac92f33720c723e0d29f8b74151344a648a1
name : "&cTiktok"
slot : 5
lore :
- "&aFollow me on TikTok!"
actions :
- "[LINK] Click me to open TikTok!;TikTok link;tiktok.com"
fill :
slot : -1
material : BLACK_STAINED_GLASS_PANE
name : " "
actions :
- "[CLOSE]"
title : "&6Movement"
size : 45
items :
none :
material : BARRIER
name : "&cNone"
slot : 19
lore :
- "&aSet to walk"
actions :
- "[PLAYER] hubbly movement none"
- "[CLOSE]"
djump :
material : GOLD_BOOTS
name : "&cDouble Jump"
slot : 22
lore :
- "&aSet to doublejump"
actions :
- "[PLAYER] hubbly movement doublejump"
- "[CLOSE]"
fly :
material : FEATHER
name : "&rFlight"
slot : 25
lore :
- "&aSet to fly"
actions :
- "[PLAYER] hubbly movement fly"
- "[CLOSE]"
fill :
slot : -1
material : BLACK_STAINED_GLASS_PANE
name : " "
Advanced Features
Menus support all three types of player heads
Player Name
Texture URL
HeadDatabase ID
items :
player_head :
material : PLAYER_HEAD
texture : player
slot : 0
Fill Items
Use slot: -1 to fill all empty slots:
items :
fill :
slot : -1
material : BLACK_STAINED_GLASS_PANE
name : " "
actions :
- "[CLOSE]"
Fill items are applied to all slots that don’t have specific items assigned.
Leather Armor Colors
Customize leather armor colors with hex codes:
items :
colored_item :
material : LEATHER_CHESTPLATE
color : 8ad592
name : "&aCustom Armor"
slot : 10
Item Amount
Set custom stack sizes for visual effect:
items :
stacked :
material : APPLE
amount : 3
name : "&cThree Apples"
slot : 15
Custom Model Data
Use custom model data for resource packs:
items :
custom_model :
material : DIAMOND
model_data : 10001
name : "&bCustom Model"
slot : 20
From Commands
/hubbly menu selector
/hubbly menu socials
/hubbly menu movement
From Items
Use the [MENU] action:
items :
compass :
actions :
- "[MENU] selector"
Create nested menus:
items :
submenu :
name : "&aOpen Submenu"
material : CHEST
slot : 13
actions :
- "[MENU] submenu"
Restrict menu access with permissions:
title : "&6VIP Menu"
size : 27
permission : hubbly.vip
items :
# Items here
Players without the permission will see a “no permission” message.
Slot Positioning
Slots are 0-based (0-53 for a 54-slot inventory)
Inventory Size Reference
Size Rows Slots 9 1 0-8 18 2 0-17 27 3 0-26 36 4 0-35 45 5 0-44 54 6 0-53
Slot Layout (27 slots)
0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
title : "&aCentered Menu"
size : 27
items :
main_item :
material : DIAMOND
name : "&bMain Item"
slot : 13 # Center of 27-slot inventory
actions :
- "[PLAYER] command"
fill :
slot : -1
material : GRAY_STAINED_GLASS_PANE
name : " "
Create decorative borders:
title : "&cBorder Menu"
size : 54
items :
# Top row
border_top :
slot : 0,1,2,3,4,5,6,7,8
material : BLACK_STAINED_GLASS_PANE
name : " "
# Content items in middle
item1 :
slot : 20
material : DIAMOND
name : "&bItem"
Note: The slot list syntax shown above is for illustration. In practice, you need to define each slot separately or use fill items.
For multiple pages, create separate menu files:
items :
next_page :
material : ARROW
name : "&aNext Page"
slot : 26
actions :
- "[MENU] page2"
items :
previous_page :
material : ARROW
name : "&cPrevious Page"
slot : 18
actions :
- "[MENU] page1"
Best Practices
Consistent Sizing - Use standard inventory sizes (27 or 54 are most common)
Fill Items - Always include fill items for better visual appeal
Clear Actions - Use [CLOSE] on fill items to prevent accidental clicks
Descriptive Names - Use clear, descriptive names for menu items
Test Layouts - Test slot positions in-game before deployment
Color Schemes - Maintain consistent color themes across menus
Troubleshooting
Common issues and solutions
Issue Solution Menu won’t open Check file path: must be in menus/ folder Items not showing Verify slot numbers are within inventory size Wrong item position Remember slots are 0-based Permission errors Check permission string matches your setup
Next Steps
Action System Learn all available actions for menu items
Custom Items Create reusable custom items