A friend of mine posted on facebook wondering if anyone knew about running a Minecraft server, predominantly for her son.
Me and my son have been through the experience and we’ve come up against a few hurdles we had to overcome. I thought it might be useful to share what we’ve done.
So here it is, the Parent’s Guide to setting up a Minecraft server… a list version.
A Computer – I had an old computer laying around so put that on the LAN with idea of running it headless (no monitor). Mine’s a Mac but it doesn’t make any difference, just use what you have. It’s all Java based so will run on nearly anything.
Minecraft Server software – You need to download the mc server software. I wanted to lock down the server and add features, so looked for some version of a server that supported plugins. We settled for CraftBukkit : Download and installation instructions here: http://wiki.bukkit.org/Setting_up_a_server
Server Config : Memory – The wiki instructions are good, but here’s a little further explanation of that starting command line that looks lilke :
java -Xmx1024M -jar craftbukkit.jar -o true
The Xmx1024M specifies the maximum memory (RAM) the mc server will take. In this instance that’s 1024Megabytes, or 1Gigabyte. So you’ll need to take that into account with how much RAM your computer running the server has.
Server Config : Offline Mode -The other thing to note is the bit that says “-o true” That tells the server to start in “Online mode” That means all logions to the server will be validated to see if they have a registered Minecraft account – through Mojang. This is an important thing to understand. It means that all of your child’s friends who want to take part in ypur server would need to buy a Registered copy of Minecraft from Mojang. That’s not always possible or desirable just to connect to your little closed server. The alternative is to run it in “Offline mode”, setting “-o false”. This is what we will need. This will allow your childs friends to use MinecraftSP (SP=Single Player) which you can get for free. BUT don’t just do that without following steps below as it’s insecure. But for now just note it.. as later we will need to turn it to “false”. When you do.. it’ll warn you it’s iknsecure when you start up. If you follow all the bits I outline below you can ignore the m essage – I do 🙂
Server Config : White-list -You’ll also want to run your server in “white-list” mode. This means if the login name’s not on the white-list then you’re not getting on. To do this edit the “server.properties” file (which will be in the folder you installed the server) and set the line so it looks like this “white-list=true“. To allow someone to connect to your server they’ll need to have their chosen username in the white-list. Simply edit the file called “white-list.txt” (again, in the folder you installed the server) and add one username per line.
Plugins – Plugins are the real fun of Minecraft. There’s plugins for all sorts of things. Some are decorative, some functional, some utilitarian. I’m only going to deal with the basic ones you’ll ned to get your server up and running and safe. Plugins are java files “.jar” and are installed by simply copying the plugin.jar file into your servers “plugins” floder, then restart the server to load it. Once you have your Minecraft server running, you’ll need some plugins to secure it. With offline mode enabled you’ll allow anyone to connect including those using MinecraftSP. If they’re username is in the white-list they’ll get on. But so will anyone guessing a name on the list. Here’s where the first plugin I recommend comes in.
Plugins : RoyalAuth – This plugin adds the need to type in a password on the server. This prevents people that share a computer from using each other’s account.(http://dev.bukkit.org/bukkit-plugins/royalauth/)
Plugins : Permissions – Once you get things running you’ll need to sort out permissions. Thisis one area that can be very complicated and took me months of trial and error. There’s a myriad of permissions systems with their own unique spin on it. I suggest in this situation we are aiming for it’s best to keep it simple. I ended up settling on the “PermissionsBukkit” plugin (http://dev.bukkit.org/bukkit-plugins/permbukkit/). But you could easily just edit the “permissions.yml” file in the root folder of your server. Only watch the syntax closely. (oh and you may need Vaulkt plugin too.. so whack it in http://dev.bukkit.org/bukkit-plugins/vault/)
External Access – The above should get yoiu started. Of course you’ll need to open a port on your router to allow your friends to get to the server computer on your network. You’ll need to port forward and open the TCP port (default is 25565) on the firewall. Find some info. on this at the bukkit wiki http://wiki.bukkit.org/Port_forwarding or the minecraft wiki http://www.minecraftwiki.net/wiki/Tutorials/Setting_up_a_server
- To stop your server from the consol, type “save-all” then “stop”.
- Your client version must match your server version. A lower version client cannot connect to a higher/later v ersion server. So before you upgrade server or clien t, take a backup copy.
- You can setup an economy.. that’s just as hard as permissions. I’d suggest leave it for a bit while you learn.
- Keep an eye on the server messageds as it starts as it’ll help you diagnose issues.
Some handy plugins we use are:
Essentials – over 100 commands and features useful on just about every server.(http://dev.bukkit.org/bukkit-plugins/essentials/)
WorldEdit – easy-to-use in-game world editor for Minecraft. (http://dev.bukkit.org/bukkit-plugins/worldedit/)
WorldGuard – a powerful plugin that protects your server from unwanted destruction or protecting certyain areas. (http://dev.bukkit.org/bukkit-plugins/worldguard/)
By only giving out the address of your server to those you wsant to join, using a white-list and the Authority plugn you should be pretty ok to have a Minecraft Server your child’s friends can meet on. Remember it’s your computer so you can always turn it off.
Hope that helps and I haven’t left somnething out. Let me know if you’d like anything added in the comments.