How to Set Up a BungeeCord Network for Your Minecraft Servers
Build a BungeeCord proxy network linking lobby, survival, and minigame Minecraft servers — with secure IP forwarding and BungeeGuard.
BungeeCord is a proxy that sits in front of multiple Minecraft servers, letting players move between them without disconnecting. A typical network has a Lobby, a Survival server, and a few minigame backends — all reachable from a single address. This guide walks through the full setup, from creating the proxy to securing it.
Modern alternative: Velocity is the actively-developed successor to BungeeCord. It's faster, more secure, and has better plugin support. Use it for new networks unless you specifically need BungeeCord's plugin ecosystem.
How a BungeeCord Network Works
┌──────────────────────────┐
Players ──── 25565 ─► BungeeCord Proxy │
│ (online-mode: true) │
└─┬──────────┬──────────┬──┘
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ Lobby │ │Survival│ │Minigame│
│ 25566 │ │ 25567 │ │ 25568 │
└────────┘ └────────┘ └────────┘
(online-mode: false on all backends)- Players connect to the proxy — they never see the backend servers directly
- Proxy authenticates with Mojang — backends trust the proxy via IP forwarding
- Players use
/server <name>to switch between backends without reconnecting
What You Need
| Component | Purpose |
|---|---|
| 1 BungeeCord proxy server | Routes players to backends |
| 2+ backend Minecraft servers | Lobby, survival, minigames, etc. |
| BungeeGuard plugin | Critical security — installed on proxy AND all backends |
| All servers on the same network/region | Minimize cross-server latency |
Step 1: Create the BungeeCord Proxy
Create a new server with BungeeCord type
In the XGamingServer Panel, create a new Minecraft server. In Startup, set the server type to BungeeCord (or select a BungeeCord-compatible Docker image).
Start the proxy once to generate config files
Start the proxy from Console. After it boots, stop it. This creates config.yml in the server root.
Edit config.yml
Click Files in the sidebar and open config.yml. Replace the listeners and servers sections:
listeners:
- host: 0.0.0.0:25565
motd: "&aMy Minecraft Network"
max_players: 100
priorities:
- lobby
force_default_server: false
bind_local_address: true
proxy_protocol: false
tab_list: GLOBAL_PING
query_enabled: false
query_port: 25577
ping_passthrough: false
servers:
lobby:
address: lobby-ip:25566
motd: "&aLobby"
restricted: false
survival:
address: survival-ip:25567
motd: "&2Survival"
restricted: false
minigames:
address: minigames-ip:25568
motd: "&dMinigames"
restricted: false
ip_forward: true
online_mode: trueReplace lobby-ip, survival-ip, minigames-ip, and ports with your actual backend addresses from each backend's Network tab.
Step 2: Configure Each Backend Server
Repeat these steps on every backend (lobby, survival, minigames).
Edit server.properties
Open server.properties and set:
online-mode=falseCritical: Without
online-mode=false, the backend will try to authenticate every connection — and reject the proxy. The proxy handles authentication centrally, so backends must trust it.
Edit spigot.yml
Open spigot.yml and set:
settings:
bungeecord: trueThis tells Spigot/Paper to expect BungeeCord forwarding headers.
(Paper only) Edit paper-global.yml
If running Paper, also set in config/paper-global.yml:
proxies:
bungee-cord:
online-mode: trueStart the backend
Start the backend. It should now accept connections from the proxy.
Step 3: Install BungeeGuard (Critical Security)
Without BungeeGuard, anyone who knows a backend server's IP can connect directly and impersonate any player — including your admins. This is not optional.
Download BungeeGuard
Get BungeeGuard from SpigotMC.
Install on the proxy
Upload BungeeGuard.jar to the proxy's plugins/ folder. Restart the proxy. It generates a token in plugins/BungeeGuard/config.yml.
Copy the token
Open plugins/BungeeGuard/config.yml on the proxy and copy the allowed-tokens value.
Install on each backend
Upload BungeeGuard.jar to each backend's plugins/ folder. Start the backend once to generate the config, then add the proxy's token to plugins/BungeeGuard/config.yml:
allowed-tokens:
- "your-proxy-token-here"Restart each backend.
Now backends will reject any connection that doesn't carry the BungeeGuard token — even if someone knows the backend IP.
Step 4: Test the Network
- Connect to the proxy address in Minecraft (the address players will use)
- You should land on the lobby (the first server in
priorities) - Run
/server survivalin chat — you should switch to the survival server without disconnecting - Run
/server lobbyto switch back
Cross-Server Features
| Feature | Plugin |
|---|---|
| Cross-server chat | BungeeChat, LunaChat |
| Cross-server economy | LuckPerms + Vault + MySQL backend |
| Cross-server permissions | LuckPerms with shared database |
| Friends and parties | PartyAndFriends |
| Cross-server teleport | BungeeTeleport, RedisBungee |
| Lobby selector GUI | BungeePortals, ServerSelector |
Plugin types: BungeeCord plugins go in the proxy's
plugins/folder. Bukkit/Spigot plugins go in each backend'splugins/folder. They are not interchangeable.
Common Issues
| Problem | Fix |
|---|---|
| "Could not connect to a default or fallback server" | Backend address wrong in config.yml, or backend offline |
| "If you wish to use IP forwarding..." | ip_forward: true missing on proxy |
| "Failed to verify username" | Backend has online-mode=true — set to false |
| Players can't switch servers | Server names are case-sensitive — match exactly |
| Players see backend IP in client | Use the proxy address, not backend IPs |
| Backend rejects proxy connections | BungeeGuard token mismatch — re-copy from proxy config |
See BungeeCord Troubleshooting for more.
Security Checklist
-
online_mode: trueon proxy -
online-mode=falseon all backends -
ip_forward: trueon proxy -
bungeecord: truein all backendspigot.yml - BungeeGuard installed on proxy AND all backends
- BungeeGuard token matches across all servers
- Backend ports firewalled so they're not directly reachable from the internet
Related Guides
How is this guide?

How to Protect Your Minecraft Server from the BleedingPipe Vulnerability
Learn about the BleedingPipe exploit affecting Forge mods and how to protect your server.
How to Configure IP Forwarding for BungeeCord and Velocity on Minecraft
Set up IP forwarding so backend Minecraft servers see real player IPs and UUIDs through a BungeeCord or Velocity proxy.