Anyway, you can start a server with the vanilla (original) server software from mojang, the download is on the same page as the minecraft launcher. When you try and run the software for the first time (download location will be where everything is stored so put it where you want it) the different settings files will be created and possibly generate the world (this may happen on the second pass). The software will also most likely crash. stop the server using the stop command in the window and start it again after changing the settings in the server.properties file.
This section will explain the individual properties that are listed in the server.properties file.
- level-name is the name of the folder that you want the world saved in for the server. This world is not the same as your single player worlds because it is stored next to the server software and stores the information about all of the players, not just a generic player. You can change the worlds you use safely by changing the name listed here while the server is off
- hellworld tells the server to generate the world as if it was in the nether. This will make surviving extremely hard because there is no way to grow certain things and the enemy mobs (if enabled) will be everywhere in large numbers. Recommended that this value be false.
- spawn-monsters is the setting that allows you to turn hostile mobs like creepers and zombies off. This will mean that it is completely safe (except things like fire, lava, and falling) around your mines and stuff. This also means that any dungeons you come across will have mob spawners in them that do nothing and you will not be able to get certain materials like gunpowder and bones without using commands like give or finding them in chests. Having this on is up to you.
- online-mode tells the server to check with the Mojang servers that you need to sign in on when someone logs in and make sure that they are using the proper login. This means that, if it is on, people must have bought the game in order to login, and they must be logged in using the right password. That means that even if someone is using the name of a person that payed, if they have the password wrong, they will not be able to get in. It is recommended that this always be set to true to prevent people pretending to be others.
- spawn-animals tells the world whether or not it should spawn things like cows and sheep. If this is off, there will be no friendly mobs at all in the world and no sources other than dungeon chests of bacon, leather, and wool. Recommended that this be left on or those materials be given when needed.
- max-players tells the server software how many people are allowed on the server at one time and will not allow anyone else on after that. People that are Op may be able to ignore this limit temporarily (there are 5 people on and the limit is 5 but an op can still log in) but if the server numbers drop, they still count towards that limit (someone loses connection from the server that now has 6 and can't get back in because the limit is 5). This number is something that you will need to set based on the hardware that you can dedicate to the software.
- server-ip is something that you should probably leave blank. This is probably the ip address that you need to type in order to get into the server, but does not need to be specified. Recommended leave blank.
- pvp determines if players can damage each other. If you want a pvp server, set to true, if not, false.
- server-port is the port number that you have opened in your firewall to forward to your machine. This is not necessary, though if you list a number, people will need to include it when trying to connect. example would be my server, where the ip is 18.104.22.168 and the port is 25565 (minecraft default). To connect you would need to type '22.214.171.124:25565' to connect to my server. If there was no port specified, you could leave off the ':25565' portion and get in. If someone types a port number and it is wrong or there is none, they will not connect. If they do not type one and there is one, they will not connect. Recommended it be set to 25565 if it is used.
- white-list is whether or not the server will reject people on the basis of a whitelist. This is a better way to control who gets into the server than simply not giving out the ip as it will refuse to allow people into the server who are not on the list even if they have the right address. This setting is simply for additional security, and changes to the whitelist can be made by any Op in the server. Recommended this be true if you want to protect the stuff that is in the minecraft world from people you don't know and false if you just want a free for all.
- spawn-protection is a distance from the center of the spawn that non-Op players cannot affect the world. This means that if it is set to 8, people that are not Op will not be able to change anything within 8 blocks of spawn and will need to move further out. This is used as a primitive grief deterrent, since it makes it impossible to change the spawn area unless you are an Op, thereby making it safe to add rules and stuff on signs there. If you don't care, just remember that people can dig a hole under the spawn and have people spawning in caves next to lava. Recommended that the default 16 be left in place for player safety and anti-grief.
-Running the Server-
After you have fixed all of the settings to how you want them, you can start the server again and see it run. The best method of running the server is to use a batch script to start it with extra memory (something that the software will tell you if you aren't doing it because of the small memory allowances). The easiest way to do this is to create a new text file called server.bat (make sure the .bat is at the end and not .txt) which you can edit in notepad. You will want to enter the single line "java -Xmx1024M -Xms1024M -jar minecraft_server.jar" into the text file, optionally including the argument nogui at the end to disable the white command interface (you can still use everything directly in the console). nogui is recommended as the only thing the gui displays is the players which can be seen using 'list' in the console anyway. This needs to be in the same place as the minecraft_server.jar file that you downloaded and then you can just make a shortcut to it (the batch file) on your desktop.
The easiest way to get onto your server is to launch minecraft on the same computer. While this is not recommended because minecraft itself takes a lot of memory space as it runs, you can do it. To get to the server you can enter 'localhost' in the multiplayer box if you are running the game on the same machine. It is recommended to try this first to see if the server is working. Make sure that you have added yourself to the white-list.txt and ops.txt (just add your minecraft user name to the files and save). If you can log in, you should log out and check a website like whatismyip.com to get your current ip address and log in using your publicly listed ip address like I mentioned above. This will allow you to know when your ip changes (if you are not paying for a static one) and you can let your players know. If you can log in using your public ip, then anyone else that you allow through whitelist (or if you are not using one anyone at all) who has that ip address. A good place is to list your server on the servers section here since planetminecraft will check the server every 5 minutes or so to see if it is online so that people will know.
This server mod is dead and hasn't been updated in forever by the original creator. I recommend that you don't try to use it.
Bukkit is the best server wrapper (adds to the regular server) that I have found and it is the one that I currently use. to get bukkit, look here for the current recommended build. Make sure that you pay attention to the version (it is the build number given at the top) since most plugins list the lowest needed version of Bukkit to run.
After you download bukkit to the location that you have the rest of your server files (put it in the same place you have the vanilla minecraft_server.jar) you need to start adding some plugins. All of these will be downloaded in a folder you will make called "plugins" that will sit next to the bukkit jar. When you download plugins, you will put the jar files in there. Some plugins come with several different files and folders inside of zip files. Make sure that you read where those files go, though it is usually everything as it is, with the start point being to extract it so that the jar files end up in the plugins folder.
Some good plugins to start are listed below.
- Permissions: This plugin is pretty much the backbone of Bukkit, allowing you to control who can access the commands given by most (not all) of the other plugins. A very large number of plugins require this one to run. Specifics on how to set this up are given in the thread.
- Whitelist: This plugin is a replacement for the vanilla whitelist function, and was one of the only ways to whitelist before that function existed in the vanilla server. This allows you to set the kick message to whatever you want. Make sure that you disable the default vanilla whitelisting by setting the white-list property in server.properties to false to avoid problems with people getting allowed by one and not another.
- Essentials: This plugin adds a number of commands to the server that are common on old systems like hMod. This comes in 4 different sections, of which I recommend the standard jar, the Spawn jar, and the Protect jar. The spawn jar allows you to change the spawn point in the server, and even set a spawn point per user groups. The protect jar allows you to specify blocks that are not allowed to be used, as well as logging for block placement and breakage that the admin can see when it happens and where when you don't make it illegal to place. The last one lets you set various other commands, including teleportation, time control, kits, economy, and some general server commands. It is recommended to get other commands for warping and homes, since the ones I will list next perform those functions better.
- MyHome and MyWarp: These two plugins are replacements for the Essentials home and warp commands (They actually came first) and they have more features that are worth downloading a different version of the same function. MyHome allows a user to set a single warping location that is overwritten every time the user sets it. It allows the user to have an easy way to get back to their base. Default is the ability for the home to override the compass pointer and for the user to respawn at their home location instead of spawn. MyWarp allows people to create warps (I usually reserve the warp creation for admins and mods) and make them private so that people can only access certain ones. You can also set warp signs with MyWarp and change the message that is displayed when you arrive at a warp.
- Stats & Achievements: This is a nifty little pair of plugins that allows you to track pretty much everything that people do, from how many times they log on, to how many blocks you break.
The setup for this is pretty much the same except you would put the name of your bukkit jar in the batch file instead of the vanilla one. It is recommended that if you find a set of plugins that work, that you make a copy of them to put somewhere else, in case you update them and they break.
That was the end of my words. Hope that it helps make servers more understandable.