26 Server Customization Examples
Roflicide edited this page 2017-03-18 00:42:09 -04:00
MSCS Wiki

Index

Introduction

Here are some custom configuration examples for MSCS.

Some custom settings may only apply before a world is created. Be sure to edit mscs.properties after creating a new world and before it is started for the first time.

Be sure to check out the Adjusting World Properties section in the README for a list of all the settings and replacement variables available.

Specific Minecraft Version

The version must exist in version_manifest.json.

Use a specific Release version

mscs-client-version=1.6.4
mscs-server-version=1.6.4

Use a specific Snapshot version

mscs-version-type=snapshot
mscs-client-version=14w11b
mscs-server-version=14w11b

Use the latest Snapshot version

mscs-version-type=snapshot

Custom Java parameters

Do you want a crazy Java command? You can do it with mscs-server-command:

mscs-server-command=$JAVA -Xms$INITIAL_MEMORY -Xmx$MAXIMUM_MEMORY -Xincgc -XX:NewRatio=3 -XX:+UseThreadPriorities -XX:CMSFullGCsBeforeCompaction=1 -XX:SoftRefLRUPolicyMSPerMB=2048 -XX:+CMSParallelRemarkEnabled -XX:+UseParNewGC -XX:+UseAdaptiveSizePolicy -XX:+DisableExplicitGC -Xnoclassgc -oss4M -ss4M -XX:+UseFastAccessorMethods -XX:CMSInitiatingOccupancyFraction=90 -XX:+UseConcMarkSweepGC -XX:UseSSE=4 -XX:+UseCMSCompactAtFullCollection -XX:ParallelGCThreads=8 -XX:+AggressiveOpts -Djava.awt.headless=true -jar $SERVER_LOCATION/$SERVER_JAR $SERVER_ARGS

Yes, this command could be used... but we do not guarantee that it will work or that it will make a server any faster/better/harder/stronger.

Forge

Forge has an easy to use installer that can be used to install all of the needed files to run a Forge server, starting with version 1.6.2-9.10.0.818. To install a version compatible with Minecraft 1.8.9, download the Forge installer forge-x.x-xx.xx.x.xxxx-installer and run the following as the minecraft user (sudo su minecraft):

cd /opt/mscs/server
wget http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8.9-11.15.1.1722/forge-1.8.9-11.15.1.1722-installer.jar
java -jar forge-1.8.9-11.15.1.1722-installer.jar --installServer

The installer should install the forge server jar to /opt/mscs/server/forge-1.8-11.14.2.1434-universal.jar and a bunch of library files in /opt/mscs/server/libraries/.

Create a new server:

mscs create forge 25565

forge can be replaced with any name. Ensure that port 25565 is an unused port, or change it if nessessary.

This will create the directory forge in /opt/mscs/worlds as well as the server.properties and mscs.properties files:

Change the directory to the world that was created:

cd /opt/mscs/worlds/forge

Modify the mscs.properties file and add/alter these lines, replacing versions and file paths as needed:

mscs-client-version=1.8.4
mscs-server-version=1.8.4
mscs-server-jar=forge-1.8.9-11.15.1.1722-universal.jar
mscs-server-url=

Start the server:

mscs start forge

If the server fails to start, the eula.txt file may need to be edited and accepted:

editor /opt/mscs/worlds/forge/eula.txt

The server should start up and run
The server startup can be monitored by running:

mscs console forge

Once you are done watching the server boot up, you can press <Ctrl-D> to detach.

Simply add mods as you would normally by dragging them into the /opt/mscs/worlds/forge/mods folder, assuming forge is the name of your world.

SpigotMC

Installing SpigotMC is very similar to installing Forge. Change to the /opt/mscs/server/ directory, download the SpigotMC installer BuildTools.jar, and run the following as the minecraft user (sudo su minecraft):

cd /opt/mscs/server
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
java -jar BuildTools.jar

This will build the spigot-X.X.X.jar server file.

Create a new server:

mscs create spigot 25565

spigot can be replaced with any name. Ensure that port 25565 is an unused port, or change it if nessessary.

This will create the directory spigot in /opt/mscs/worlds as well as the server.properties and mscs.properties files:

Change the directory to the world that was created:

cd /opt/mscs/worlds/spigot

Modify the mscs.properties file and add/alter these lines, replacing versions and file paths as needed. You will need to change the mscs-server-jar as a bare minimum:

mscs-client-version=1.8.7
mscs-server-version=1.8.7
mscs-server-jar=spigot-1.8.7.jar
mscs-server-url=

Start the server:

mscs start spigot

If the server fails to start, the eula.txt file may need to be edited and accepted:

editor /opt/mscs/worlds/spigot/eula.txt

The server should start up and run
The server startup can be monitored by running:

mscs console spigot

Once you are done watching the server boot up, you can press <Ctrl-D> to detach.

Simply add plugins as you would normally by dragging them into the /opt/mscs/worlds/spigot/plugins folder, assuming spigot is the name of your world.

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

Technic/Tekkit Pack

This example was written for Attack of the B-Team version 1.0.9c

This works for many of the Technic/Tekkit based modpacks, although some settings may need to be adjusted for different modpacks.

Create the world:

mscs create bteam 25565

bteam can be replaced with any name. Ensure that port 25565 is an unused port, or change it if nessessary.

This will create the directory bteam in /opt/mscs/worlds as well as the server.properties and mscs.properties files:

Change the directory to the world that was created:

cd /opt/mscs/worlds/bteam

Rename server.properties to server.properties.bak so a back up of these settings is available

mv server.properties server.properties.bak

These settings can be used in case server.properties is overwritten or deleted

level-name=bteam
server-port=25565
server-ip=
enable-query=true
query.port=25565

Download the mod pack to the world directory

wget http://servers.technicpack.net/Technic/servers/bteam/BTeam_Server_v1.0.12c.zip

Unzip the mod pack

unzip <current_version>.zip

While unzipping, it may ask to overwrite server.properties
If you first renamed server.properties to server.properties.bak it should not ask to overwrite

Move or remove the zip

mv <current_version>.zip /path/to/final/location/
rm <current_version>.zip

Edit mscs.properties and add these settings
If a setting below already exists in mscs.properties, replace it with these

mscs-client-version=1.6.4
mscs-initial-memory=2G
mscs-maximum-memory=3G
mscs-server-jar=BTeam.jar
mscs-server-location=/opt/mscs/worlds/bteam

Merge the settings from server.properties.bak to the server.properties file created by the Technic pack.
You should replace any setting from Technic's server.properties with the setting found in the backup server.properties.bak

level-name=bteam
server-port=25565
server-ip=
enable-query=true
query.port=25565

Start the server

mscs start bteam

The server should start up and run
The server startup can be monitored by running:

mscs console bteam

Once you are done watching the server boot up, you can press <Ctrl-D> to detach.