How to Set Up a Minecraft BungeeCord Server
With BungeeCord, you can connect multiple Minecraft Java servers to a single network. Players connect using one central server address and can then switch between, for example, a lobby, survival server and minigame server without leaving the network. In this guide, we explain how to install a BungeeCord server at ConsulHosting and connect the backend servers.
Note BungeeCord is a proxy and does not contain a Minecraft world itself. You therefore need a separate BungeeCord server and at least one backend server. For a network with a lobby and survival server, for example, you need three hosting plans: one for BungeeCord, one for the lobby and one for survival.
Tip Would you like to order a BungeeCord server from ConsulHosting? On the Minecraft hosting plans page, click See more and select the BUNGEECORD plan. This plan includes 1 GB of RAM and is intended specifically for use as a proxy.
Installing BungeeCord
Install BungeeCord on the Minecraft server you want to use as the proxy. Players will later connect using the IP of this server. BungeeCord will then forward them to one of the connected backend servers.
- Log in to the game panel and go to the Minecraft server you want to use as the BungeeCord proxy.
- Stop the server if it is still running.
- Under Management, open the Software page.
- Click Other software and then BungeeCord.
- Select the latest available release.
Note Only enable Wipe Server Files if you want to perform a completely new installation and all existing server files may be removed. These files cannot be restored without a backup.
- Click Install and wait until the installation has been completed.
- Start the BungeeCord server using the green start button.
- Wait until the proxy has fully started. During the first startup, the
config.ymlconfiguration file will be created. - Stop the BungeeCord server again before changing the configuration.
Collecting IPs and Ports
- Go to the first backend server in the game panel.
- Note the IP displayed in the top-right corner.
- Open the Ports page and note the port labelled Primary.
- Repeat these steps for every backend server you want to add to the network.
A network with a lobby and survival server could, for example, use the following addresses:
|
Function |
IP |
Primary port |
Full address |
|---|---|---|---|
|
Lobby |
|
|
|
|
Survival |
|
|
|
You will need the full addresses of the backend servers in step 27.
Configuring the Backend Servers
- Go to the first backend server in the game panel.
- Stop the Minecraft server if it is still running.
- Open the Files page and then open the
server.propertiesfile. - Find
online-mode=true, change the value tofalseand save the file:
online-mode=falseThe backend server will no longer verify Minecraft accounts itself. This verification will instead be handled by the BungeeCord proxy.
- Open the
spigot.ymlfile. - Under
settings, findbungeecord, change the value totrueand save the file:
settings:
bungeecord: trueThis allows the backend server to accept the player information forwarded by BungeeCord.
- Open the
bukkit.ymlfile. - Under
settings, findconnection-throttle, change the value to-1and save the file:
settings:
connection-throttle: -1- Repeat steps 14 through 21 for all other backend servers.
Tip Are you using Paper or Purpur? In theconfigfolder, open thepaper-global.ymlfile and check whether theonline-mode:setting under bungee-cord: is set totrue.
Note The backend servers now use online-mode=false. Without additional security, players may be able to bypass the proxy. Secure the network before making it public by following the separate guide on installing BungeeGuard.Adding the Backend Servers to BungeeCord
- Go to the BungeeCord server in the game panel.
- Open the Files page and then open the
config.ymlfile. - Find the
online_modeandip_forwardsettings. Make sure both settings are set totrue:
online_mode: true
ip_forward: trueWith online_mode: true, BungeeCord verifies the Minecraft accounts of players. With ip_forward: true, the proxy forwards the correct UUID and original IP address of each player to the backend servers.
- Find the
serverssection. - Add all backend servers within this section. A configuration with a lobby and survival server could look like this:
servers:
lobby:
motd: '&aLobby'
address: 'lobby.consulhosting.eu:24102'
restricted: false
survival:
motd: '&aSurvival'
address: 'survival.consulhosting.eu:24203'
restricted: falseReplace the example addresses with the IP and primary port of your own backend servers. Use a unique name without spaces for each server. We recommend using lowercase letters only.
- Within the
listenerssection, findpriorities. - Under
priorities:, enter the name of the backend server to which players should be sent by default. Start the line with a hyphen and a space, for example- lobby.
The name must exactly match a server name you added under servers. If you add multiple servers to priorities, BungeeCord tries them from top to bottom until an available server is found.
- Within the same section, find
host. - Do you want players to be sent to the first server under
prioritieswhenever they make a new connection? Setforce_default_servertotrue:
force_default_server: trueIf this setting is set to false, BungeeCord will try to reconnect returning players to the backend server on which they last played.
- Save the
config.ymlfile.
Note YAML is sensitive to indentation. Use spaces only and never use tabs. Incorrect indentation, a missing colon or incorrect quotation marks can prevent BungeeCord from starting.
Testing the BungeeCord Connection
- Start all backend servers and wait until they have fully started.
- Start the BungeeCord server.
- Join the server network using the IP of your BungeeCord server.
- Run the following command to view the connected servers:
/glist- Switch to another backend server by entering its server name after the command. For the example server named
survival, use:
/server survivalIf you can connect and switch between the backend servers, the BungeeCord network has been configured correctly.
Tip Would you like to use your own domain name? Point the Play domain to the IP and primary port of the BungeeCord proxy, not to a backend server.
Note Your BungeeCord network is currently vulnerable! Follow this guide to secure your BungeeCord network with BungeeGuard.
My BungeeCord Server Is Not Working
If the network is not working as expected, check the following common causes.
- BungeeCord cannot reach the default server
Check whether the backend server is running. Then check whether the correct IP and primary port have been entered under servers in config.yml. The name under priorities must also exactly match the name of a connected server.
- The
Server is outdatederror appears
The backend server to which BungeeCord is trying to connect you uses an older Minecraft version than the version you are playing. Update the Minecraft version of this backend server or install ViaVersion as a plugin on the BungeeCord server.
- An IP forwarding error appears
Check whether ip_forward: true is set in BungeeCord’s config.yml and whether bungeecord: true is set in the spigot.yml file of every backend server. Are you using Paper or Purpur? Also check the BungeeCord setting in config/paper-global.yml. Then completely restart the proxy and all backend servers.
- BungeeCord cannot bind to the port
Open the Ports page of the BungeeCord server and check which port is labelled Primary. This port must be entered under host in config.yml. Always use 0.0.0.0 as the address, for example 0.0.0.0:25565.
- Players are sent to the wrong backend server
Check the order of the servers under priorities. Do you want players to always be sent to the first server in this list? Set force_default_server to true.
- BungeeCord does not start after changing
config.yml
Check the console for YAML errors. Pay particular attention to incorrect indentation, missing colons and the use of tabs. Correct the lines you last changed, save the file again and restart the proxy.