Hubbly includes built-in BungeeCord support, allowing players to transfer between servers in your network using the [BUNGEE] action.
Prerequisites
BungeeCord Network
Ensure you have a BungeeCord or Waterfall proxy set up with multiple servers.
Install Hubbly
Install Hubbly on each server where you want to use BungeeCord actions (typically your hub/lobby server).
Configure BungeeCord
Verify your server names in config.yml on your BungeeCord proxy.
No special BungeeCord plugin configuration is needed. Hubbly uses the standard BungeeCord messaging channel.
How It Works
Hubbly uses the BungeeCord plugin messaging channel to send players between servers:
public void execute ( Hubbly plugin, Player player, String data) {
if ( plugin . getServer (). getMessenger (). isOutgoingChannelRegistered (plugin, "BungeeCord" )) {
if ( data . contains ( "server " )) {
data = data . replace ( "server " , "" );
}
final ByteArrayDataOutput out = ByteStreams . newDataOutput ();
out . writeUTF ( "Connect" );
out . writeUTF (data);
player . sendPluginMessage (plugin, "BungeeCord" , out . toByteArray ());
}
}
BUNGEE Action Syntax
Basic Usage
actions :
- "[BUNGEE] survival"
With “server” Prefix (Optional)
actions :
- "[BUNGEE] server survival"
Both formats work identically. The “server” prefix is automatically removed.
Parameters
Parameter Description Example Server name Name from BungeeCord config survival, creative, lobby
The server name must exactly match the name in your BungeeCord config.yml.
Create a menu that allows players to choose which server to join:
title : "&cServer Selector"
size : 36
items :
survival :
material : GRASS_BLOCK
name : "<#CCFFDD>Survival Server"
slot : 12
lore :
- "&aJoin the Survival Server!"
- ""
- "&7Click to connect"
actions :
- "[BUNGEE] survival"
creative :
material : COMMAND_BLOCK
name : "&eCreative Server"
slot : 14
lore :
- "&aJoin the Creative Server!"
- ""
- "&7Click to connect"
actions :
- "[BUNGEE] creative"
minigames :
material : GOLD_BLOCK
name : "&6Minigames"
slot : 22
lore :
- "&aJoin the Minigames Server!"
- ""
- "&7Click to connect"
actions :
- "[BUNGEE] minigames"
fill :
slot : -1
material : BLACK_STAINED_GLASS_PANE
name : " "
actions :
- "[CLOSE]"
Enhanced Server Selector
Add sound and visual feedback:
title : "&cServer Selector"
size : 27
items :
survival :
material : GRASS_BLOCK
name : "&aSurvival"
slot : 11
lore :
- "&7A classic survival experience"
- ""
- "&aClick to join!"
actions :
- "[SOUND] ENTITY_PLAYER_LEVELUP"
- "[TITLE] &aSurvival;&7Connecting...;10;40;10"
- "[BUNGEE] survival"
creative :
material : DIAMOND_BLOCK
name : "&eCreative"
slot : 13
lore :
- "&7Build anything you can imagine"
- ""
- "&eClick to join!"
actions :
- "[SOUND] ENTITY_PLAYER_LEVELUP"
- "[TITLE] &eCreative;&7Connecting...;10;40;10"
- "[BUNGEE] creative"
pvp :
material : DIAMOND_SWORD
name : "&cPvP Arena"
slot : 15
lore :
- "&7Test your combat skills"
- ""
- "&cClick to join!"
actions :
- "[SOUND] ENTITY_PLAYER_LEVELUP"
- "[TITLE] &cPvP Arena;&7Connecting...;10;40;10"
- "[BUNGEE] pvp"
Server Selector Item
Create an item that opens the server selector:
items :
compass :
name : "&cServer Selector"
material : COMPASS
glow : true
lore :
- "&7Right click to open"
- "&7the server selector!"
actions :
- "[MENU] selector"
Give players the item:
Direct Teleport Items
Create items that directly send players to servers:
items :
survival_portal :
name : "&a&lSurvival Portal"
material : ENDER_PEARL
glow : true
lore :
- "&7Click to join Survival"
actions :
- "[SOUND] ENTITY_ENDERMAN_TELEPORT"
- "[TITLE] &aSurvival;&7Connecting...;10;40;10"
- "[BUNGEE] survival"
minigames_portal :
name : "&6&lMinigames Portal"
material : NETHER_STAR
glow : true
lore :
- "&7Click to join Minigames"
actions :
- "[SOUND] ENTITY_ENDERMAN_TELEPORT"
- "[TITLE] &6Minigames;&7Connecting...;10;40;10"
- "[BUNGEE] minigames"
PlaceholderAPI Integration
Show live server player counts (requires BungeeCord expansion):
Install BungeeCord Expansion
/papi ecloud download bungee
/papi reload
Use in Menu
items :
survival :
name : "&aSurvival"
lore :
- "&7Players: &f%bungee_survival%"
- "&aClick to join!"
actions :
- "[BUNGEE] survival"
Dynamic Server Selector
title : "&cServers - %bungee_total% Online"
size : 27
items :
survival :
material : GRASS_BLOCK
name : "&aSurvival"
slot : 11
lore :
- "&7Mode: &fSurvival"
- "&7Players: &a%bungee_survival%"
- ""
- "&aClick to join!"
actions :
- "[BUNGEE] survival"
creative :
material : COMMAND_BLOCK
name : "&eCreative"
slot : 13
lore :
- "&7Mode: &fCreative"
- "&7Players: &e%bungee_creative%"
- ""
- "&eClick to join!"
actions :
- "[BUNGEE] creative"
minigames :
material : GOLD_BLOCK
name : "&6Minigames"
slot : 15
lore :
- "&7Mode: &fMinigames"
- "&7Players: &6%bungee_minigames%"
- ""
- "&6Click to join!"
actions :
- "[BUNGEE] minigames"
BungeeCord Configuration
Ensure your BungeeCord config.yml has the correct server names:
servers :
lobby :
motd : 'Lobby Server'
address : localhost:25565
restricted : false
survival :
motd : 'Survival Server'
address : localhost:25566
restricted : false
creative :
motd : 'Creative Server'
address : localhost:25567
restricted : false
minigames :
motd : 'Minigames Server'
address : localhost:25568
restricted : false
The server names in your menu configuration must match the server names in BungeeCord’s config.
Advanced Examples
title : "&6Network Menu"
size : 54
items :
# Survival Servers
survival_label :
material : OAK_SIGN
name : "&a&lSurvival Servers"
slot : 10
survival1 :
material : GRASS_BLOCK
name : "&aSurvival 1"
slot : 19
lore :
- "&7Players: %bungee_survival1%"
actions :
- "[BUNGEE] survival1"
survival2 :
material : GRASS_BLOCK
name : "&aSurvival 2"
slot : 20
lore :
- "&7Players: %bungee_survival2%"
actions :
- "[BUNGEE] survival2"
# Minigame Servers
minigame_label :
material : OAK_SIGN
name : "&6&lMinigame Servers"
slot : 14
bedwars :
material : RED_BED
name : "&cBedWars"
slot : 23
lore :
- "&7Players: %bungee_bedwars%"
actions :
- "[BUNGEE] bedwars"
skywars :
material : GOLDEN_SWORD
name : "&eSkyWars"
slot : 24
lore :
- "&7Players: %bungee_skywars%"
actions :
- "[BUNGEE] skywars"
Hub Return Item
Allow players to return to hub from any server:
items :
hub_return :
name : "&c&lReturn to Hub"
material : NETHER_STAR
glow : true
lore :
- "&7Click to return to the hub"
actions :
- "[SOUND] ENTITY_ENDERMAN_TELEPORT"
- "[TITLE] &cHub;&7Returning...;10;40;10"
- "[BUNGEE] lobby"
VIP Server Access
Create permission-restricted server items:
title : "&6VIP Servers"
size : 27
permission : hubbly.vip
items :
vip_survival :
material : DIAMOND_BLOCK
name : "&b&lVIP Survival"
slot : 13
lore :
- "&7Exclusive VIP-only survival"
- "&7Players: %bungee_vip_survival%"
- ""
- "&bClick to join!"
actions :
- "[SOUND] ENTITY_PLAYER_LEVELUP"
- "[TITLE] &b&lVIP Survival;&7Connecting...;10;40;10"
- "[BUNGEE] vip_survival"
Troubleshooting
Players Not Transferring
If players aren’t being transferred, check:
BungeeCord messaging channel is registered
This is automatic, but verify in server logs
Look for: “Channel BungeeCord is not registered!”
Server name matches BungeeCord config
# Hubbly menu
actions :
- "[BUNGEE] survival" # Must match BungeeCord name
# BungeeCord config.yml
servers :
survival : # Must match exactly
address : localhost:25566
Player has permission to join target server
Check BungeeCord permissions
Verify no restrictions in BungeeCord config
Debug Mode
Enable debug mode in Hubbly to see BungeeCord messages:
Look for messages like:
[Hubbly] Server: survival
[Hubbly] Executing action: BUNGEE survival
Channel Not Registered
If you see “Channel BungeeCord is not registered!”, the messaging channel failed to initialize. This usually resolves after a server restart.
Best Practices
Consistent Naming - Use clear, consistent server names across your network
Visual Feedback - Always add sound and title actions for better UX
Player Counts - Show live player counts with PlaceholderAPI
Hub Returns - Provide easy ways to return to the hub
Categories - Organize servers by type in larger networks
Permissions - Restrict access to VIP/special servers appropriately
Common Patterns
Transfer with Confirmation
actions :
- "[MESSAGE] &7Connecting to &aSurvival&7..."
- "[SOUND] ENTITY_EXPERIENCE_ORB_PICKUP"
- "[TITLE] &aSurvival;&7Please wait...;10;60;10"
- "[BUNGEE] survival"
Quick Transfer
actions :
- "[BUNGEE] survival"
Immersive Transfer
actions :
- "[EFFECT] blindness;40;1"
- "[SOUND] ENTITY_ENDERMAN_TELEPORT"
- "[TITLE] &5&lTeleporting...;;10;30;10"
- "[BUNGEE] survival"
Next Steps
Creating Menus Build server selector menus
Action System Explore all available actions
PlaceholderAPI Show live server data