Logo

How to Connect Multiple Servers with BungeeCord

How to Connect Multiple Servers with BungeeCord

This guide explains how to configure BungeeCord to connect multiple Minecraft servers together and create a server network.

How to Connect Multiple Servers with BungeeCord

What is BungeeCord?

BungeeCord is a proxy that allows you to:

  • Connect multiple Minecraft servers together
  • Allow players to move between servers without disconnecting
  • Create a network of servers (lobby, minigames, survival, etc.)
  • Centralize player connections on a single entry point

Network Architecture

A typical BungeeCord network contains:

  • 1 BungeeCord server (proxy): Entry point for all players
  • Multiple Minecraft servers (backend): Lobby, survival, creative, minigames, etc.

Players connect to the BungeeCord proxy, which redirects them to backend servers.

Prerequisites

  • Access to your game panel
  • At least 2 Minecraft servers (or the ability to create multiple)
  • Available ports for each server
  • Knowledge of your servers' IP addresses

Step 1: Create Backend Servers

Required Servers

You will need at least:

  1. A BungeeCord server (the proxy)
  2. A Lobby server (welcome server)
  3. One or more game servers (survival, creative, minigames, etc.)

Create the Servers

  1. Log in to your game panel
  2. Create a new server for each necessary instance
  3. Note the following information for each server:
    • IP address
    • Port
    • Server name

Example:

  • BungeeCord Proxy: 127.0.0.1:25565
  • Lobby: 127.0.0.1:25566
  • Survival: 127.0.0.1:25567
  • Minigames: 127.0.0.1:25568

Step 2: Install BungeeCord

Download BungeeCord

  1. Go to https://ci.md-5.net/job/BungeeCord/
  2. Download the latest stable version

Install on the Proxy Server

  1. Connect to your proxy server
  2. Delete or rename the existing Spigot/Paper JAR file
  3. Upload the BungeeCord.jar file
  4. Rename it if necessary (depending on your panel)
  5. Start the server once to generate configuration files
  6. Stop the server

Step 3: Configure BungeeCord

Edit config.yml

Open the config.yml file in the BungeeCord proxy folder.

Basic Configuration

listeners:
- query_port: 25577
  motd: '&6My Minecraft Network'
  priorities:
  - lobby
  bind_local_address: true
  tab_list: GLOBAL_PING
  query_enabled: false
  proxy_protocol: false
  forced_hosts:
    pvp.example.com: pvp
    hub.example.com: lobby
  ping_passthrough: false
  max_players: 100
  tab_size: 60
  force_default_server: false
  host: 0.0.0.0:25565

Add Backend Servers

In the servers section, add your servers:

servers:
  lobby:
    motd: '&aLobby Server'
    address: localhost:25566
    restricted: false
  survival:
    motd: '&2Survival Server'
    address: localhost:25567
    restricted: false
  minigames:
    motd: '&cMinigames Server'
    address: localhost:25568
    restricted: false

Important Settings

# Default server where players arrive
priorities:
- lobby
- survival

# Permissions
groups:
  admin:
  - bungeecord.command.alert
  - bungeecord.command.end
  - bungeecord.command.ip
  - bungeecord.command.reload

Advanced Network Configuration

If your servers are on different machines:

servers:
  lobby:
    address: 192.168.1.10:25565
    restricted: false
  survival:
    address: 192.168.1.11:25565
    restricted: false

Step 4: Configure Backend Servers

Modify spigot.yml

On each backend server (lobby, survival, etc.), open spigot.yml:

settings:
  bungeecord: true

IMPORTANT: This option must be enabled on all backend servers, otherwise BungeeCord will not work correctly.

Modify server.properties

On each backend server, modify server.properties:

online-mode=false

WARNING: Set online-mode=false only on backend servers, NEVER on the BungeeCord proxy which must remain online-mode=true.

Secure Backend Servers

To prevent players from connecting directly to backend servers, add a firewall or use a plugin like IPWhitelist.

Option 1: Firewall

Configure your firewall to only allow the BungeeCord proxy to connect to backend servers.

Option 2: IPWhitelist Plugin

  1. Install IPWhitelist on each backend server
  2. Configure it to only allow the proxy's IP

Step 5: Install Essential Plugins

On the BungeeCord Proxy

Create a plugins folder and install:

LuckPerms (network permission management):

BungeeTabListPlus (custom tablist):

  • Improves player list display

BungeePortals (portals between servers):

  • Allows creating physical portals to change servers

On Backend Servers

Install on each backend server:

LuckPerms (Spigot/Paper version):

  • To synchronize permissions with the proxy

Multiverse-Core (optional):

  • To manage multiple worlds on the same server

Step 6: Synchronize Data

To share permissions, economy, etc. between servers:

  1. Create a MySQL/MariaDB database
  2. Configure LuckPerms to use this database
  3. All servers will use the same database

LuckPerms configuration (config.yml):

storage-method: mysql

data:
  address: localhost:3306
  database: luckperms
  username: root
  password: your_password

Synchronization Plugins

Install plugins to synchronize:

  • Economy: Vault + shared database
  • Ranks: LuckPerms with MySQL
  • Inventories: Multiverse-Inventories or similar

Step 7: Start the Network

Startup Order

  1. Start all backend servers (lobby, survival, etc.)
  2. Wait for them to fully load
  3. Start the BungeeCord proxy

Test the Connection

  1. Connect with your Minecraft client to the proxy address
  2. You should arrive on the lobby server
  3. Test the commands:
/server lobby
/server survival
/server minigames

Essential BungeeCord Commands

For Players

/server

Lists all available servers

/server <name>

Teleport to a specific server

For Administrators

/glist

Displays the list of players on all servers

/alert <message>

Sends a message to all players on the network

/send <player> <server>

Sends a player to a specific server

/end

Stops the BungeeCord proxy

/greload

Reloads the configuration

Advanced Configuration

Custom MOTD

Modify the welcome message in config.yml:

listeners:
- motd: |-
    &6&l✦ My Minecraft Network ✦
    &e» Survival &7| &cMinigames &7| &aEvents

Forced Servers by Subdomain

Automatically redirect based on subdomain:

forced_hosts:
  lobby.myserver.com: lobby
  survival.myserver.com: survival
  minigames.myserver.com: minigames

Restrict Access to Certain Servers

servers:
  vip:
    address: localhost:25569
    restricted: true

Then give the bungeecord.server.vip permission to VIP players.

Create a Functional Lobby

  • ServerSelector: Server selection menu
  • HolographicDisplays: Floating information display
  • DeluxeHub: Complete lobby suite
  • Multiverse-Core: Lobby world management

ServerSelector Configuration

Create items in the inventory to change servers:

items:
  survival:
    material: GRASS_BLOCK
    slot: 2
    name: '&2Survival Server'
    lore:
    - '&7Click to join'
    server: survival
  
  minigames:
    material: DIAMOND_SWORD
    slot: 4
    name: '&cMinigames'
    lore:
    - '&7Click to join'
    server: minigames

Troubleshooting

Players Cannot Connect

  • Check that the BungeeCord proxy is started
  • Check that online-mode=false on backend servers
  • Check that bungeecord: true in spigot.yml on backend servers
  • Check IP addresses and ports in config.yml

"Can't connect to server" Error

  • Check that backend servers are started
  • Check addresses in config.yml
  • Test direct connection to backend servers
  • Check firewalls

Permissions Don't Work

  • Install LuckPerms on the proxy AND all backend servers
  • Configure a shared MySQL database
  • Check synchronization between servers

Players Have Duplicated Inventories

  • Inventories are not synchronized by default
  • Install an inventory synchronization plugin
  • Or keep separate inventories per server (recommended)

/server Command Not Found

  • The command is handled by BungeeCord
  • Check that the player is connected through the proxy
  • Check that BungeeCord is working correctly

Security Tips

Attack Protection

  1. Don't expose backend servers: Only the proxy should be publicly accessible
  2. Use a firewall: Block direct connections to backend servers
  3. Install anti-DDoS: Protect the proxy against attacks
  4. Update regularly: Keep BungeeCord up to date

Backups

Regularly backup:

  • BungeeCord configuration (config.yml)
  • Backend server configurations
  • Shared database
  • Each server's worlds

Performance Optimization

RAM Allocation

Distribute RAM intelligently:

  • BungeeCord Proxy: 512 MB - 1 GB minimum
  • Lobby Server: 2-3 GB
  • Game Servers: 3-6 GB depending on load

Reduce Latency

  • Host all servers in the same location if possible
  • Use local connections (localhost) when possible
  • Optimize each server individually

Conclusion

BungeeCord allows you to create a professional network of Minecraft servers. This configuration offers a smooth experience for players who can navigate between different universes without disconnecting. Don't forget to properly secure your backend servers and set up a shared database to synchronize important data.

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members