Articles on: Minecraft
This article is also available in:

How to setup and use BungeeCord

🎥 Video Guide 🎥






🤔 What is BungeeCord? 🤔



BungeeCord is software used to easily create a network of servers. You can learn more about it here.

To set up BungeeCord, you must have a minimum of three servers with us at WitherHosting: one server for BungeeCord itself, your second server as your "hub" server, and your last server as your "smp" server. You can configure the BungeeCord server to allow players to switch easily between the hub and smp servers.

In this article, we'll refer to the BungeeCord server as a proxy server, and the hub and smp servers as backend servers. Theoretically, you can set up BungeeCord with only two servers, one being BungeeCord and the other being the hub. However, the purpose of using BungeeCord, which is switching between servers in a network, becomes pointless in such a setup. Prerequisites for setting up the BungeeCord server include knowing your non-Bungee server IPs and ports.


⚙️ How to Set Up the BungeeCord Server ⚙️



A BungeeCord server requires very little RAM compared to other servers. It is not accessible in-game because it redirects users to the secondary and tertiary servers you have.

Note that it may require more RAM if you're supporting GeyserMC players. In such cases, add 1GB of RAM for every 10 bedrock players assumed!

First, navigate to your config.yml file in the root folder of your proxy server. We'll explain each line to help you understand its function. We'll skip discussing a few values in the config.yml as they are unnecessary for setup.

forge_support - Set to true if you want to allow players with Forge clients to join.
player_limit - Global player limit for your BungeeCord instance. If set to 0 or below, this allows an unlimited number of users to join.
online_mode - Set to true to disallow cracked players from joining, set to false to allow cracked players to join.


🤖 Servers 🤖



This is the most important section. Here, you'll list all your backend servers that the proxy server should listen to. Here's an example:

lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: localhost:25565
    restricted: false


lobby is the name of your server.
motd is the message of the day for the specified backend server.
address is your backend server's IP address, along with the port.
restricted prevents players from joining the server unless they have the bungeecord.server.[servername] permission.

You can add as many servers as you like. In our case, we'll add the hub and smp servers:

hub:
    motd: 'My hub server!'
    address: localhost:20001
    restricted: false
smp:
    motd: 'My SMP server!'
    address: localhost:20002
    restricted: false



➕ Other Config Options ➕



Now, let's cover the other components of your BungeeCord's config.yml file:

motd - Sets the message of the day for the proxy server, visible to players in their server list.
priorities - Specifies the order in which BungeeCord forwards connections to servers. Useful for supporting multiple client versions.
host - Enter your server IP followed by your port.
max_players - Sets the max player limit displayed in the Minecraft client's multiplayer menu.
ip_forward - Determines whether to allow IP or UUID forwarding. Recommended to set to true for online mode servers.

These are the settings you can tweak for your BungeeCord server. Once you've adjusted the values according to your preference, save the file and restart the server. Now, let's set up the backend servers.


🚪 Setting up the Backend Servers 🚪



Setting up backend servers is relatively simpler compared to the proxy setup. The following values need to be set for your backend servers to work with the proxy:

online-mode must be set to false in the server.properties file.
connection-throttle must be set to -1 in the bukkit.yml file.
bungeecord must be set to true in the spigot.yml file.

Once these configurations are done, restart your servers, and everything should be set up! In-game, switching between servers is as simple as using the command /server followed by the server name you want to go to.

Ensure you're a server operator while performing this command!


🛡️ Protecting Your BungeeCord Proxy from Unsafe Authentication 🛡️



To prevent malicious users from bypassing your proxy connection and accessing your backend server unauthenticated, set up a plugin like BungeeGuard. This is highly recommended.


🚫 Common Errors 🚫



If you encounter issues with the proxy, consider these common troubleshooting points:

If you get an IP forwarding error while connecting, set ip_forward to true in the config.yml of your proxy server.
If you've connected but cannot switch to other servers with the error "Could not connect to a default or fallback server," ensure that your backend server is turned on and running.
If you can't ping your proxy server in the server list, check that the host IP address in config.yml is configured correctly, and adjust your connection throttles and timeout time accordingly!

Updated on: 31/05/2024

Was this article helpful?

Share your feedback

Cancel

Thank you!