Minecraft Blogs / Tutorial

My Server Recipe: From 12 Months Server Ownership Experience

  • 360 views, 2 today
  • 5
  • 2
  • 5
ryanhamshire's Avatar ryanhamshire
Level 2 : Apprentice Miner
14
I'm about to give you the secret recipe for a public server. I'm currently running four servers (two survival, one Tekkit, one creative), and I've been running public servers for 12 months now. I've encountered all the most common problems, and if you take the time to read this blog, you'll be on your way to success as a server owner.

Learning How



If you've never run a server before, start by setting up a two-player game over the internet (not a LAN game) by downloading CraftBukkit and reading the wiki (wiki.bukkit.org) that goes with it. Play a little with a friend, and try adding a plugin (see dev.bukkit.org) and play with it until you get it working. Once you've done that, you know enough to set up a server, so then you can start shopping for hosting providers.

Initial Setup



If you want to run a serious server, don't run it from your house. Power outages, slow residential internet, internet outages, Denial of Service attacks, and BOTNet attacks will ruin you. If you want to run a small server for just you and your close friends, that's fine. Just whitelist it and go for it. But if you plan to allow ANYONE on the server who you don't personally know, then keep reading.

To not run a server out of your house, you'll have to pay for hosting. Hosting is GREAT because you get 24/7 uptime, fast internet connection, and experts who can help you solve technical problems like those teenagers trying to DoS your server, or that weird plugin problem you're having. DO NOT GO CHEAP. I've tried four different cheap hosting providers, and they were all great until something unexpected happened, and then my server was down for hours at a time. If you're paying less than $15 per month for your first 1GB of ram, you're probably about to be very unhappy with your service. Just imagine your server being down for 8 hours while you wait for those idiots you're paying to check their email.

Personally, I recommend BeastNode.com. If you don't take my recommendation, at least go look up actual customer reviews. The advertising ALWAYS sounds good, it's a trap to get your committed to their service. Moving your server is an enormous pain (moving files, getting your new IP address to your players, updating all your forum posts, and your old provider won't give you any refund, so you'll be paying for two servers that month), so choose carefully.

Server Design



Don't try to do everything with one server. Some of the biggest servers are actually 5 different player experiences all crammed into one IP address, which means new players have to spend a lot of time just figuring out how to get started doing what they joined for, which will drive lots of them away. There are more than 25 million registered Minecraft players, so you don't have to worry that there aren't enough players to fill your specialized server.

Focusing your server design on one major concept (almost vanilla, creative mode, Tekkit, player versus player, zombie apocalypse, etc) rather than trying to cram every "cool plugin" you can get your hands on into the server will make life easier for your players and for you.

Anti-Grief



If you don't know what grief is, you shouldn't be running a server. Go watch some YouTube videos about Minecraft griefing and then come back here. :)

DO NOT run a pure vanilla server, unless your idea is to get a server full of griefers and have them troll each other 24/7. It is not possible to avoid serious griefing problems with only a whitelist. Griefers have access to lots of stolen Minecraft accounts and infinite IP addresses, which means you can never completely ban a motivated griefer. You need an anti-grief plugin to stop griefers from doing damage. Personally, I recommend Grief Prevention, because it covers all types of grief in a single download and doesn't require a database. Other anti-grief solutions have interesting ideas built in, but they are all outdated and not complete grief solutions, which means you will have to install lots of them to create a complete solution (that means lots of research and testing for you).

Other server owners may tell you to get WorldGuard or Precious Stones or LWC or Lockette, for example, but those server owners are just telling you what was best when they started their servers. I've also tried all of those, and they are very much outdated solutions to grief.

Anti-Cheat



Unless you're planning to advertise your server as "cheats allowed", then you have to do something to prevent cheaters from getting ahead, because it will make your other players very unhappy (it devalues their accomplishments, and in the case of x-ray, may prevent them from finding diamonds without cheating themselves).

I recommend NoCheatPlus for this. It prevents most cheats and does it quietly. The only real alternative is AntiCheat, but it's spammy, boots non-cheating players, and doesn't stop all the cheats that NoCheatPlus does. I've run both of these on my servers, and I think NoCheatPlus is much better overall. If you choose to run Grief Prevention for anti-grief as I mentioned above, disable the anti-spam in these plugins, because Grief Prevention's anti spam is much better.

As for x-rayers, I recommend Anti-XRay. It doesn't actually prevent players from seeing through blocks, but it stops them from mining diamonds unreasonably fast, so x-rayers don't actually get the most important benefit from their cheating. Orebfuscator or Family Jewels will actually prevent players from seeing through blocks, but in my experience, these plugins use a LOT of memory and can lag servers terribly. I run Anti-XRay on all my non-creative servers.

Advertising



PlanetMinecraft is seriously the best single place you can post to get new players. But it's not enough by itself if you want to fill a 20+ slot server and keep it full. You'll also want to create well-worded ads on LOTS of server lists and Minecraft forums, and be sure to keep them in your favorites so you can find them later for updates.

You're never done advertising. Even the most obsessed player eventually tires of Minecraft and moves on, which means you'll always be losing players even if you're doing a great job as a server. Be careful to respect the thread bumping rules in any forum where you post. Do not bump any advertisements late at night, because that's when you're most likely to get teenage griefers with anger management issues.

For your grand opening, try to hit all your planned advertising spots within 5 minutes of each other, and do it in the early afternoon, when you're most likely to get new players (after school, before dinner). This will ensure that everyone joins at once, which reduces the likelihood of new players joining and thinking "oh, this server is empty.. I don't want to play here" and leaving right away.

Finally, consider branding carefully. The name of your server and the content of your server banner (that's the image you display on server listings) will determine who clicks through to try out your server. You should also assume that most will connect without reading the 5 paragraphs of description you typed for them, so be prepared for players to log in and ask questions you already answered. Do not put "vanilla" in your server name, description, or banner, unless you want to attract griefers. If you want to attract younger players, go for cartoony imagery and bubbly words. For adults, use muted colors, angular or blocky text, and focus on server features.

Administrators



You do NOT need administrative help when starting a new server. You'll be lucky to have enough players to keep yourself busy. It's okay to dream big, but don't give a bunch of strangers permissions and hope they turn out to be responsible. If after a month or so of uptime you feel you really need some help, then consider your player population and invite individuals who appear to be mature and responsible. Then, give them ONLY the permissions they absolutely need to do the job you've given them. Do not EVER give anyone permissions based on their answers to a few survey questions you posted in a forum. Anybody can answer questions in a way that makes them sound good - you need to observe actual behavior over time.

Don't recruit a bunch of builders to create a giant city over the course of a month just to prepare for a grand opening. Most servers fail, and it would be a terrible shame to waste all that builder effort on a server that won't succeed. You can always add a city later once you've established a player population. If you have a spawn where all new players start (not all servers do), limit yourself to a small introductory build for now.

To grant individual permissions, you need a permissions plugin (do NOT just /op players, no matter how much you trust them). Shop around dev.bukkit.org and you're sure to find plenty to choose from.

Administrative Tips



The worst case scenario for your server is a griefer using a program to guess your password and log in with all permissions. To avoid this, install SimplyVanish and /vanish yourself, then always use /say to chat. This will keep your in-game-name secret. It's simply not possible for someone to guess both your login name and password, even with software tools to help them. If a player wants to have a private conversation with you and you're using Grief Prevention, tell them to send a /tell to themselves and you will get it (see eavesdropping config option). Otherwise, you can give them your skype info, assuming your skype login isn't the same as your Minecraft login. Do not send /tells to players, because it will give away your IGN.

After you bump advertisements for the day, hang around for half an hour or so to thank people for trying out your server and offer to answer questions. This will make a huge difference in the number of people who stay to play. You don't have to be on your server all the time to answer questions - players will help each other while you're out.

Use /ban all the time, and don't feel bad about it. If a player trolls the chat, annoys others with too much chatter, or insults others, just /ban right away and forget about it. If a player refuses to help himself (wiki? /help?) and instead always insists others holding his hand to answer his questions, remove him too. Nothing you say will make an immature person suddenly see the light and become a better person. People do change, but over months or years. Ban troublemakers, don't try to reform them. You don't want to lose mature, friendly players because they tire of dealing with the troublemakers. That will result in a server full of jerks and no nice players, which is the opposite of your goal.

Also, you don't need a plugin to help you with /ban. The vanilla /ban command works just fine.

Common Problems



Configuration Files Reset



You made a small formatting error when editing the file, which causes the whole config file to reset itself. It's very annoying - this is not a problem with your plugin, but with the Bukkit platform (which all plugins use). The most common mistake is pressing TAB instead of using spaces to indent lines in the config file. Try downloading the free Notepad++ program to help you catch mistakes while you're editing config files.

Out of Memory



When you have this problem, first think about any changes you've made to the server lately, especially new plugins, changes to plugin config files, or changes in total player slots. You may be able to solve your problem just by undoing those changes.

Otherwise, your only options are to pay your hosting provider more to increase total memory available, or reduce the number of players on your server at the same time (the server loads chunks around players, so more online at a time means more memory consumed). So if you have 20 players online when you run out of memory (regardless of how many total slots you have!), reduce total slots to less than 20 to see if that resolves the issue.

If you have this problem frequently and you're running a very large server (more than 50 slots), consider switching from CraftBukkit to CraftBukkit++, which is more memory efficient.

Lag



Most players and some server owners are very confused about "lag" because the word is used very loosely. I'll start with the lag you can fix, which is server-side lag. Server-side lag happens when the server is busy thinking very hard, so it's slow to do things like move the sun and moon, move monsters and animals around, and respond to player events like breaking blocks. I recommend installing the LagMeter plugin, which will allow you to type /lag to find out how many ticks per second (TPS) your server is computing. 20 is perfect, 15 is okay, less than 15 is something you need to fix. Lag is mostly caused by plugins, so think about recent plugin changes when you see server lag. Often, restarting the server (not /reload) will help with a lag problem, at least temporarily. If a player complains and /lag shows more than 15, you can tell that player to upgrade his computer, get better internet service, reconnect to the server, find a server closer to his home, or shut up.

If you have an ongoing server lag issue, consider installing NoLagg, which can actually create a report showing you what amount of time the server is spending on different areas like monster movement and specific plugins, which will help you diagnose your issue.

It's also possible that a badly written plugin could be exploitable, for example a player might use a hacked client to rapidly spam a slash command that makes the server do heavy processing. It's extremely difficult to catch this kind of problem - if you suspect it and are running Grief Prevention like I recommended, add the slash commands you think the griefer is using to the config file so that they will be treated as spam.

Aside from these solutions, the only additional solution is to increase your CPU speed by updating your hardware. As I mentioned above under out of memory, CraftBukkit++ may also help with lag on very large servers.

There's also frames per second (FPS) lag, which players see when THEIR computer is thinking too hard. They can solve that problem by reducing their graphics settings, closing additional applications, upgrading their hardware (especially video card), or avoiding in-game locations which lag them. In almost all cases, there's nothing you can do on your end (maybe putting out fires in the nether with Grief Prevention's /RestoreNature command will help for that case).

Finally, there's latency lag, which happens because the player is very far away from the server physically, or because he has poor internet service (or you do, if you're not paying for hosting). Again if you're running a server out of your house and want it to be truly popular and successful, you're doing it wrong.

Overcrowding



This problem is unique to successful servers. It means that either your server is always full and players complain they can't get in, OR new players complain that there are too many builds around the spawn and they can't find any animals, wood, ore, and space to build. I recommend the Population Density plugin because it adds a login queue, reserved slots, respawns animals/grass, and automatically assigns starting areas for new players where they'll have space and building resources. You can probably find similar features in other plugins, if you don't like that one for some reason.

If you really don't want to solve this problem with a plugin, you could move your spawn on a regular basis, or add "portals" from the spawn. I don't recommend portals because new players end up spending a lot of time guessing portals until they find a good one, which is frustrating for them. They just want to play Minecraft, and finding their way out of an enormous city or spending 20 minutes trying different portals is getting in their way.

Donations



The cold, hard truth is that aside from possibly getting some up-front donations to get the server started from your close friends who want to play Minecraft with you, you shouldn't expect any donations. If you do take donations from your close friends, beware that your friends may then expect permissions to help "run the server". Just because they're your friends doesn't mean they're responsible enough to respond maturely to ugly situations like griefers and chat trolls. This can be a very sensitive area, so only accept donations from friends if it's clear they won't get permissions, or if you're certain they're trustworthy enough to have administrative permissions.

DO NOT lock gameplay behind a required "donation". It's okay to give people hats or a chat tag as a reward for a donation because it makes them feel appreciated without alienating other players. The fact is that you NEED the non-donating players to keep your server going, because there aren't enough donators to fill the slots, so never say to players "you can't do X because you havn'et donated", for example, "you can mine maximum 5 diamonds per day unless you donate 5 dollars to the server fund". The internet is full of thousands of Minecraft servers which let players play the game without charging them money for any of it, and players will just call you a jerk and walk out.

I mentioned about hats and chat tags. Lots of plugins have potential for rewarding players without pissing other players off. For example, Grief Prevention gives players 100 "claim blocks" per hour played, which they can use to claim land (which protects them from griefers). 100 blocks/hour is plenty for most players, but on my servers, I also give donators 1,000 claim blocks for every dollar they donate. It doesn't hurt other players at all, and those donators feel truly appreciated.

DO NOT give players diamonds or other in-game rarities in exchange for donations or server list votes. This will wreck your economy and anger other players who think that in-game accomplishments should be earned, not bought. On my servers, I also give players 100 claim blocks each time they vote (once per day).

Ask nicely!! I phrase my donation ask like this: "Having fun on this awesome free server? It costs $30 per month. If you love this server, please consider donating any amount! Donators get a bonus 1,000 claim blocks for every dollar they donate!" And I follow that with a tinyurl link to my paypal donate page.

After several months of running a great server, you might break even. So set your expectations accordingly.
Tags

Create an account or sign in to comment.

1
11/23/2012 4:08 pm
Level 28 : Expert Engineer
wolfwoodnyo
wolfwoodnyo's Avatar
Mhh might be just because our old host (pytohost) crashed us frequently and broke backups, but thanks for informing :)
1
11/20/2012 4:29 pm
Level 28 : Expert Engineer
wolfwoodnyo
wolfwoodnyo's Avatar
Any tips how to deal with map corruption? We tried everything on one of our servers (take it down, download map, run chunkster to fix). Worked in singleplayer but do we have to erase the world file or anything entirely to stop it from occuring in multiplayer?
1
11/23/2012 3:40 pm
Level 2 : Apprentice Miner
ryanhamshire
ryanhamshire's Avatar
I've seriously never had a map corruption problem on any of my servers. If you want to prevent it from occurring, start by trying to figure out where it's coming from. Are there maybe plugins which could be misbehaving? Or maybe it's a process of yours - for example, taking a backup while the server is running could cause an issue like that.
1
11/13/2012 8:00 pm
Level 32 : Artisan Mountaineer
EdoKara
EdoKara's Avatar
brilliant work here, ryan. I'm a huge fan of your plugins and honestly think that they should become more widespread. After over a year of trying to get a server up with a buddy, this is great advice, especially since it comes from someone who has been successful.

Sincerely,
EdoKara
1
10/02/2012 3:31 pm
Level 2 : Apprentice Miner
ryanhamshire
ryanhamshire's Avatar
Please diamond if you found this helpful. :) I hope many will take my advice and servers will suck less in general.

For any trolls who are considering trolling, I doubt you have 12 months experience running all different kinds of servers, so don't embarass yourself.
Planet Minecraft

Website

© 2010 - 2024
www.planetminecraft.com

Welcome