How do proxy servers work? How do I connect my servers together? In this guide, we'll be showing you how to create your very own BungeeCord network, and what are the best practices we suggest.

First off, a BungeeCord server is a type of proxy server that was built with traditional Spigot. This type of proxy server was the first one from which multiple forks were created, most notably PaperMC's Waterfall alternative. Waterfall was built on BungeeCord, but optimized to reflect optimization changes made to Spigot with PaperMC, and improve upon BungeeCord's existing protocols.

Step 1. After creating your server, you want to be navigating to File Management.

Step 2. Once you are in File Management, delete whatever files are in there (Back them up first, if you need them) and drop your BungeeCord.jar in the container using the "Upload" button.

Step 3. In this example, we are using Waterfall. Rename your Waterfall jar to something easy to remember. (Like waterfall.jar)

Step 4. Navigate to Startup Settings and change your jar file name to reflect the name you had used in Step 3.



Step 5. Navigate to "Console" and hit "Start".

After hitting start, your configuration files should automatically create as well as the rest of the BungeeCord files for the proxy to function. 

Step 6. After your BungeeCord server has successfully booted up, navigate to File Management and head your BungeeCord config.

Depending on the fork, these configs will be multiple that function on the BungeeCord protocols.

Step 7. Point your proxy to your backend servers.

In your BungeeCord config, set ip_forward as true.
The address would be the exact server IP. MOTD would be the server-specific MOTD for specifying which server does what, and restricted would be enabled/disabled based whether or not those were accessible with /server (servername). If enabled, you will need to give players corresponding BungeeCord permissions to access it.

Step 8. Adjust the backend servers to connect to the BungeeCord proxy.

Change your online mode to false in server.properties.
Enable BungeeCord in spigot.yml on your backend server.

Step 9. Change your network-compression-threshold in your BungeeCord config.

While you are adjusting this to 512, you want to be changing your backend servers to a network-compression-threshold of -1. This should reduce disconnections because of mix-matched network-compression-thresholds.

Step 10. Reboot every single server on the network

After adjusting your configs and saving it, all you want to do is reboot all of your servers (including the proxy) so they can connect properly to the BungeeCord. After that's done, enjoy! You now have a BungeeCord network. :)