BungeeCord
BungeeCord is a proxy server that sits between the Minecraft client and server that allows players on a server to easily transfer between worlds (regardless of whether the world is running on vanilla, Forge, SpigotMC, etc). The setup for BungeeCord can be rather complex. To fully understand the configuration options available, visit the BungeeCord Configuration Guide.
Although BungeeCord is not a normal Minecraft server, MSCS is able to control the server as if it were with a little work. Lets start by creating a fake world named lobby on the default port of 25565.
mscs create lobby 25565
lobby can be replaced with any name. Ensure that port 25565 is an unused port, or change it if nessessary.
Change the directory to the world that was created:
cd /opt/mscs/worlds/lobby
This will create the directory lobby in /opt/mscs/worlds as well as the server.properties and mscs.properties files:
server.properties is not needed for this server. Delete this file.
rm server.properties
Modify the mscs.properties file and add/alter these lines:
mscs-enabled=true
mscs-server-jar=BungeeCord.jar
mscs-server-url=
mscs-initial-memory=512M
mscs-maximum-memory=512M
Create a config.yml file that will apply for the worlds on this server. For example: alpha and beta on ports 25566 and 25567 respectively. Note, change the name of the admin from username to the Minecraft player name that will be administering BungeeCord.
groups:
username:
- admin
disabled_commands:
- disabledcommandhere
player_limit: -1
permissions:
default:
- bungeecord.command.server
- bungeecord.command.list
admin:
- bungeecord.command.alert
- bungeecord.command.end
- bungeecord.command.ip
- bungeecord.command.reload
listeners:
- max_players: 20
fallback_server: alpha
host: 0.0.0.0:25565
bind_local_address: true
ping_passthrough: false
tab_list: GLOBAL_PING
default_server: alpha
tab_size: 20
force_default_server: false
motd: 'Message of the day'
query_enabled: true
query_port: 25565
timeout: 30000
connection_throttle: 4000
servers:
alpha:
address: localhost:25566
restricted: false
motd: '&1Alpha MOTD'
beta:
address: localhost:25567
restricted: false
motd: '&2Beta MOTD'
ip_forward: false
online_mode: true
Change to the /opt/mscs/server/ directory, download the BungeeCord server jar BungeeCord.jar, and run the following as the minecraft user (sudo su minecraft):
cd /opt/mscs/server
wget http://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar
Create the two worlds alpha and beta. Since both worlds will only be accessed locally by the BungeeCord proxy server, use the optional ip argument for the create function to limit access to localhost:
mscs create alpha 25566 127.0.0.1
mscs create beta 25567 127.0.0.1
Start the worlds to set themselves up:
mscs start alpha
mscs start beta
If the servers fail to start, the eula.txt file may need to be edited and accepted:
editor /opt/mscs/worlds/alpha/eula.txt
editor /opt/mscs/worlds/beta/eula.txt
BungeeCord requires that the world servers be in offline mode. BungeeCord handles authentication as long as online_mode is set to true in config.yml like the example above. To do this, edit the server.properties file for the alpha and beta worlds and change the values of online-mode in both files to false.
editor /opt/mscs/worlds/alpha/server.properties
editor /opt/mscs/worlds/beta/server.properties
Finally, if everything is correctly setup, we can start the worlds:
mscs start lobby
mscs start alpha
mscs start beta