- Bungee (or the paper fork, Waterfall) allows us to set up a network of servers. Waterfall allows directing the players seamlessly between multiple servers, as if they are switching the world.
Installation
Builds for Waterfall are available at
https://papermc.io/downloads#Waterfall
Launch and let generate the configuration files. The
config.yml file will contain the most important settings.
Waterfall - Bungee config.yml
In our case, the Waterfall proxy is set to listen on port 25565 (default Minecraft)
host: 0.0.0.0:25565
The
priorities key determines to what server users will overflow in case that the servers are down. For example if you have server 1, 2, 3 and 4, they can be configured in the way that users arrive in server 2 if 1 is down, to 3 if 1 and 2 are down, etc. As we don't want people to join the server directly without having gone through the New Player Quiz, the only server priority here will be
This means that if the newplayer server is down or crashed, the new clients will be kicked by the proxy.
Enable
ip_foward: true in the
config.yml to allow ip forwarding (security and identity of users).
At the
servers: block we setup the servers.
It is important to note that servers that run behind the proxy
must run in offline mode and
may not be accepting external connections.
Adding game servers
server.properties
For every game server that is being added, the following configuration must be done.
[CODE title="server.properties" highlight="3, 4, 24, 26, 29, 31, 36"]spawn-protection=0
max-tick-time=60000
query.port=25001
server-name=Minecraft Middle Earth
generator-settings=
force-gamemode=false
allow-nether=false
gamemode=2
broadcast-console-to-ops=true
enable-query=true
player-idle-timeout=0
difficulty=0
spawn-monsters=false
op-permission-level=4
pvp=true
snooper-enabled=true
level-type=FLAT
hardcore=false
enable-command-block=false
max-players=120
network-compression-threshold=256
resource-pack-sha1=71323230207761732068657265
max-world-size=29999984
server-port=25000
debug=false
server-ip=localhost
spawn-npcs=false
allow-flight=true
level-name=newplayer
view-distance=10
server-id=newplayer
resource-pack=http\://build.mcmiddleearth.com/content/Gondor2.zip
spawn-animals=false
white-list=false
generate-structures=false
online-mode=false
max-build-height=256
level-seed=
use-native-transport=true
prevent-proxy-connections=false
motd=\u00A76MCME \u00A7aNew Players
enable-rcon=false[/CODE]
- Query port: convention is that we use the game server port +1
- server-name: Set to 'MCME <servername>'
- server-port : See reserved posts further down the document to determine if a port is used and for what.
- server-ip: Must be set to localhost to only listen to local connections.
- level-name: the world's name that is used on this server.
Every server has to have a unique named world across the network.
- online-mode: false
spigot.yml
The setting
bungeecord: false
has to be set to true
Table of internally used servers/ports
Server name | IP : port | Query port |
newplayer | localhost:25000 | localhost:25001 |
world | localhost:25100 | localhost:25101 |
development | localhost:25105 | localhost: 25106 |
moria | localhost:25107 | localhost:25108 |
freebuild | localhost:25109 | localhost:25110 |
plotworld | localhost:25111 | localhost:25112 |
redstone | localhost:25113 | localhost:25114 |
themedbuilds | localhost:25115 | localhost:25116 |
battleserver | localhost:27500 | localhost:27501 |
Bungee - Waterfall Commands
Command | Description | Permission |
/alert <message> | Sends an alert to all users on the network | bungeecord.command.alert |
/alertraw <json> | Sends an alert with Minecraft json formatting | bungeecord.command.alert |
/bungee | Shows bungee version | none |
/end <message> | Shuts down the proxy and disconnects everyone | bungeecord.command.end |
/find <player> | Checks if the player is online and where he is | bungeecord.command.find |
/glist | Lists everyone connected through the proxy | bungeecord.command.list |
/greload | Unreliable command to reload the proxy | bungeecord.command.reload |
/ip <player> | Shows the ip the user is connected with | bungeecord.command.ip |
/perms | Shows all permissions you have and what groups you are in for the proxy | none |
/send <player/current/all> <target> | Sends <player/current/all> to the <target>, even if the person is on another server. | none |
/server <server> | Transfer you to <server> | bungeecord.command.server |