Virtual servers are the ideal hosts for minecraft servers. Setting up a Minecraft server is simple, but there are a few requirements you must double-check:
+ Xen-based VPS. Due to differences in how Java works with OpenVZ and Xen, a Xen server is recommended for best performance.
+ At least 1gb of RAM. Less will work for a small server, but 1gb or more is recommended.
+ CentOS operating system installed.
On to the Minecraft server setup:
1. Start by installing Java-JDK:
# yum install java-1.6.0-openjdk
2. Check if Java was installed:
# which java
The following will be displayed if it was properly installed:
3. Switch to the root directory, if you're not there already:
4. Create a directory for Minecraft:
# mkdir Minecraft
5. Enter the directory:
# cd Minecraft
6. Download Minecraft:
# wget http://minecraft.net/download/minecraft_server.jar
7. CHMOD the Minecraft .jar like so:
# chmod +x minecraft_server.jar
8. Minecraft is now installed. You'll now need to install "screen" to keep the Minecraft server running after the SSH session is closed.
# yum install screen
9. Use the screen and run Minecraft. Enter screen:
10. Start up Minecraft (you can edit the 1024M value to match your server's RAM):
# java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
To get back to the normal screen, press these keys: Control+A+D
To get back to the screen where Minecraft is running:
# screen -r
You should now be off and running with a fully functional Minecraft server!
Once you have your Minecraft tempalate installed and running, you will notice a large amount of files have been generated. The first file to look at is "server.properties". Open this up, and you will see the following:
#Minecraft server properties
#Date and time of creation of file
motd=A Minecraft Server
This is the basic server configuration file that your Minecraft server will run on. Everything you can configure is here. Below is a line-by-line guide to configuring this file:
allow-flight will allow users to fly on your server in Survival mode, if they have a mod that provides flight installed.
false - Flight is not allowed. [default]
true - Flight is allowed, and used if the player has a fly mod installed.
The allow-nether option is introduced in Beta 1.6. It allows players to travel to the Nether realm.
false - Nether portals will not work.
true - The server will allow players to visit the Nether. [default]
difficulty defines the difficulty (such as damage, hunger and poison affects players) of the server. This is entirely server-dependent and will not be affected by client-side difficulty settings.
0 - Peaceful
1 - Easy [default]
2 - Normal
3 - Hard
enable-query enables GameSpy4 upon the server.
enable-rcon enables remote access to the server console, but is very insecure and not often used yet again.
gamemode defines the mode of gameplay, either Survival or Creative.
0 - Survival [default]
1 - Creative
level-name The "level-name" value is the name of the world and folder it is stored in.If you have your own map or world created on your personal copy of Minecraft, you may upload it to your VPS and change the level-name within the config to be the same as the world you uploaded, and then the server will load your own world instead.
level-seed is the seed your server generates with. A seed is simply a way of telling the server what terrain to generate, as in single player. For example, "glacier" and "404" are popular seeds.
max-players is the maximum number of players that can play on the server at the same time. The more players that are in a server, the more power and memory the server will need.
motd is the message displayed in the client's server list, below the name. If the MOTD is over 59 characters, the server list may report an error.
online-mode checks if any player connecting has a purchased account. Setting this to false will allow players with fake accounts to join your server and can be used to hack and grief a server. It is advisable you leave this on.
true - Enabled. The server will check every connecting player, and kick those who do not have a paid account. [default]
false - Disabled. The server will not attempt to check connecting players.
pvp enables PvP on your server.
true - Players will be able to kill each other. [default]
false - Players cannot damage other players.
query.port sets the port for the query server. We do not need this value, as we will not be needing the query server.
rcon.password sets the rcon password. This will be unused as we will not be covering rcon in this guide, due to the reasons highlighted earlier.
rcon.port sets the rcon port. Same as above, we will not be covering rcon in any depth.
server-ip sets the connection IP. Simply set this to your server's main IP address. This is the IP players will use to connect. If you also have a domain name, players will be able to connect via your domain name if you point it at the server IP.
server-port Changes the port the server is accesible by. It is 25565 by default, it is advisable leaving it so, otherwise they will need to add :* after your IP, where * is your port you have selected.
spawn-animals allows animals to spawn in the wild.
true - Animals spawn as normal. [default]
false - Animals will immediately vanish.
spawn-monsters allows monsters to be s[awned at night and in the dark. If you wish your server to be safe, set this to true.
true - Enabled. Monsters will appear at night and in the dark [default]
false - Disabled. No monsters.
view-distance is the amount of world data the client receives from the server. It is measured in chunks, spanning in all directions of the player. A chunk is a segment of blocks, 16 wide by 16 long, stretching from bedrock to sky. The client-side "Far" distance is 9 chunks 10 is recommended, but if you lag, turn it down to 6 or 4.
white-list enables the server whitelist. With a whitelist, only users on the "white-listtxt" file will be able to connect. This is ideal for private servers for your friends, or exclusive application-only servers.
false - No white list is used. [default]
true - The whitelist is enabled.
Next, we can cover "banned-players.txt". Any players you do not wish to join your server, simply add their player names to this file. Also, "banned-ips.txt" is the same but reads IPs instead of usernames.
There is also your "server.log" file, which is basically the log of the server console and everything that happened in it. There is your "ops" file too, which gives anyone on the list full access to all the server commands. This is useful for close friends you trust to admin the server, alongside you.