Need a Minecraft server? BeastNode delivers awesome performance at a great value!

SHOP FOR PLANS NOW


How To Install BungeeCord/Waterfall

Waterfall is a fork of BungeeCord made by the same team that make PaperSpigot - it is installed and set up exactly the same as BungeeCord so this guide applies for both.
 
Before attempting to use any server network software please read up on what it is, and what it requires, here: What is a Network Proxy (BungeeCord/Waterfall/Velocity etc..)

There is also a guide on the BungeeCord/Waterfall config options (that will be completely up to date with all options if our guide falls behind, and for the options we do not cover here as they are for more advanced options you don't specifically require by default) that you can check over as to what each option means/does here: https://www.spigotmc.org/wiki/bungeecord-configuration-guide/




# Written by a contributing customer. Thanks!

The way BungeeCord/Waterfall works is that you have a backend server that cannot be used as a Minecraft server itself as it simply acts as the proxy/backend - it does not load bukkit/spigot plugins (only BungeeCord/Waterfall-specific plugins) or worlds.
You can choose to have a hub server with all the server portals in or you can just have portals in every server.
The minimum amount of Minecraft servers in the network that users can play on should be two but you can have as many more than this as you like.
 
Once you have your servers ready, it is time to set up the BungeeCord server.
You can simply select it from the Multicraft JAR list and once the page refreshes to confirm the change, restart your server. This will install the latest version - If you want to install your own version, please read the following:

- You can get different builds for BungeeCord here: https://ci.md-5.net/job/BungeeCord/
- You can get different builds for Waterfall here: https://papermc.io/downloads#Waterfall
- Upload the BungeeCord.jar or Waterfall.jar (make sure they are named exactly this) to the jar directory/folder on your server.
- Change your jar list on Multicraft to the BungeeCord/Waterfall option if you did not already.

Once you have the relevant jar list option selected (with the jar uploaded manually if required) start your server up. It will say it is listening on 0.0.0.0:25577 when it has finished loading - it will not work like this.

The server will generate a config.yml in your root directory (this can be accessed on the Files > Config Files page of your control panel). Open that up and you will see something like this: https://pastebin.com/YWhsAh95 (newer versions may appear slightly different with new options but this guide will be updated when needed to cover those too).

You can change max_players to number you want.
The "host" setting must be the IP:Port assigned to your particular server (the server that BungeeCord/Waterfall is running on specifically) - It cannot be left as 0.0.0.0, and the port must be the exact port your server is allocated.
Change the MOTD to whatever you like.
 
Go to the "servers" section, here you will input the name of your servers and their IP:Port.
The default server is "lobby" (also called the hub in some cases), which is the server you will join by default when connecting to the proxy server. Just enter the IP:Port for this server in the address box - this must be the exact IP:Port of the server it is linking to, it cannot be left as localhost and must have the correct port for that server.
To add additional servers, simply copy the server name, address, restricted, and motd lines for each server you wish to add (making sure to keep the spaces the same as the lobby server entry so that it remains YAML compliant) and paste them below the lobby server entry.
As an example (obviously, as stated above, enter the right IP:Port of each individual server): https://pastebin.com/XmXwiFgb
 
'tab_list' means what will show up in the tab menu.
GLOBAL_PING means it will show the player list from all servers in the network plus their ping.
GLOBAL does the same but without their ping.
SERVER will make the tab show just the players on the server you are connected to.
 
Even with permissions and/or OP on the sub servers, nobody can use the admin commands for BungeeCord/Waterfall; you must add players specifically to the groups in the BungeeCord config.
In the default config, it shows md_5: you replace that with your name and leave 'admin' where it is. Just copy this for each player you'd like to have admin commands.
As an example for 3 random names having the admin permissions listed in the config: https://pastebin.com/PE66ZfLm  (all permissions listed in the default section of the permissions are given to all players by default).
 
For older BungeeCord/Waterfall versions:
Now go back to 'default_server'. Change this to the server you want people to go to when they first join. If you wanted them to join the hub server first, then replace lobby with hub. Note that server names are specific - Hub and hub are not the same, it must be exactly as listed in the servers section of the config.


For newer BungeeCord/Waterfall versions:
For more recent BungeeCord versions the default_server option has been replaced with a 'priorities' list - the same applies, the server name entered (always case-sensitive) at the top of the priorities list (in the default setup it will have 'lobby' entered) is the 'default server' players initially log into. 
You can, however, add another server name on a new line below the first server name so that if the first server is inaccessible when a player logs in, it will send them to the second server in the list (and so on...) instead! (as above the server name is specific and must match exactly as listed in the servers section of the config).
As an example: https://pastebin.com/RjkH0rPB
 
Congratulations! You have successfully set up the basics of the network proxy!
All players must be logging in through the proxy servers IP to be able to teleport between servers with the '/server [server name]' command.

You can find additional Bukkit/Spigot plugins for BungeeCord/Waterfall here: https://www.spigotmc.org/resources/categories/bungee-spigot.2/
 
If you need to restart the proxy server, you must go into any of the servers and do /end, then stop the Bungee server from Multicraft.
If you do not do /end you will not be able to stop the Bungee server safely.
The 'end' command can also be ran directly in the BungeeCord servers console to stop the server (without a slash infront of it as per usual with console commands).
**Note::
Newer BungeeCord versions (around the same time 'priorities' were added) do not need to be shut down through the console, you can restart/stop them via the buttons on MultiCraft without issue!
 
 
Changes you must make to the subservers in your network::

One major part of BungeeCord/Waterfall is that you must change all of your connected servers to online-mode: false in their server.properties. You can also set the "connection-throttle" setting to -1 in the bukkit.yml file for each of the servers on your network - while not necessary this is recommended.

This does not mean that offline players can join since the proxy server will authenticate the user. This does mean though, that you cannot give out the IP for any of your servers on the network. You can only give out the proxy server IP otherwise they will not be authenticated and can login on non premium accounts. Make sure online_mode: true is in the proxy servers config.

An option to not allow direct connecting to the sub server IP:Ports, so everybody has to correctly log in through the proxy servers IP:Port (which is very strongly recommended), is to have all servers in the network running on Spigot (or PaperSpigot).
This will create a spigot.yml file in their root directory - in this file is an option that will say 'bungeecord: false' by default. If you change this to true, save changes and restart the server on that setting for all subservers, and then set the ip_forward option in the BungeeCord/Waterfall servers config.yml to true, save changes and restart the server nobody will be able to use any of the IP:Ports in the network except for the proxy servers IP:Port.


Note regarding the forced_hosts section of the proxy servers config.yml::

This section allows you to use a custom domain (and any subdomains made with it) to link directly to specific servers in the network. A common set up mistake with this is setting the domain/subdomain up to link to the IP:Port of the server that domain/subdomain is to send you to - they should all link to the proxy servers IP:Port specifically. You set which server they forward you to in this section.

As an example if you had 4 servers in your network - Lobby, Survival, Creative and Factions - and had your own custom domain of poorexample.com and you wanted the following domain/subdomains to link to those servers:

- poorexample.com and lobby.poorexample.com to link to the Lobby server
- mc.poorexample.com and play.poorexample.com to link to the Survival server
- creative.poorexample.com and build.poorexample.com to link to the Creative server
- pvp.poorexample.com and factions.poorexample.com to link to the Factions server
Then you would set all of those subdomains and domain to link to the proxy servers IP:Port in the domains DNS settings, and then set the proxy server configs forced_hosts section up as: https://pastebin.com/WUgxqec9
  • 195 Users Found This Useful
Was this answer helpful?

Related Articles

What is a Network Proxy (BungeeCord/Waterfall/Velocity etc..)

A network proxy server is what you set up and use as the controller of a network of server - this...

How To Install Velocity

Velocity is a network proxy server software, similar to BungeeCord and Waterfall (the developers...