How to make a Bukkit server
Bukkit servers are servers that are used by most big server to protect their creations and to stop greifers. Greifers are people who like to take advantage of the servers that have no protection for their spawn points and creations. Most people who make Bukkit servers use Plugins to stop people like this. Plugins are made by the community that are able to code in Java. Plugins can do anything that the programmer wants them to do. If you are just starting to use plugins and want to protect your server from people doing certain actions (e.g. building, talking, fighting etc.) in a certain area or the whole world, WorldGuard would be a great plugin to use. Most people use this plugin as the programmers
How to get a ‘Bukkit’ server
To obtain bukkit you will need to visit http://dl.bukkit.org/downloads/craftbukkit/. From there you are able to select from which version of Bukkit you would like to obtain. The Bukkit version must match the version of Minecraft you are wanting to play it on. As a new version of Minecraft comes out, the Bukkit team will have to recode some parts of the craftbukkit for it to be compatible with the vanilla Minecraft that comes out.
I’ve got the latest version of Bukkit. Now what?
First we are going to have to create a batch file to tell bukkit server to run with a GUI. To do this we need to follow some steps:
- In the directory of where you placed the craftbukkit.jar, you need to create a new text file. Call it ‘start.txt’
- Open the file and type this:java -Xms1024M -Xmx1024M -jar craftbukkit.jar
The Xms represents the minimum amout of memory from your RAM it will dedicate to the server. Xmx is the maximum amount. Here are 2 examples that would dedicate the same amount of RAM to the server:
- -Xms1G -Xmx2G
- -Xms1024M -Xmx2046M
#### NOTE ####
Users that use a 32-Bit Operating system are only capable of running a server with only 1Gb. If you are not sure if you have a 32-bit or a 64-bit, you should navigate to the start menu, right click on Computer and look for either 32-bit or 64-bit.
- When you have finished with the RAM selection, go to File>Save As.
- Save it as a batch file by changing the .txt extension to .batif it still saves it as a text file, press ALT on your keyboard, go to Tools, Folder Options,View. Uncheck ‘Hide Extensions for known file types’. Press OK and you should now see a .txt at the end. Rename that to .bat. If it prompts you asking you if you are sure you want to change the extension, click Yes.
Here is what we have so far (Windows 7 Users):
- Launch Start.bat and you should see a black window come up with a load of logs appearing. You will see Warnings and Errors upon first launch as the server needs to generate files for it to filter out certain aspects for the game e.g. Ops, whitelist and server.properties.
Everything here is normal. Let’s have a look at what files have been generated:
What are all these files?
All the files are here for a reason. If you have just generated a new server you should have something like this:
- Plugins - Where your plugins go
- World - The main default world, where you spawn
- World_The_End - The ‘End’
- World_Nether - The Nether
- banned-ips.txt - A formatted list of IP address of players.
Why should I ban someone’s IP address and not just the player? Well when you ban the player, all that the server does is stop that username from entering the server. However, that user could use a different account that they may have handy and login to your server. If you ban their IP address, this will prevent any players that use their WiFi connection from entering the server, this is to stop people from sneaking their way on
- banned-players.txt - A formatted list of banned player usernames
- bukkit.yml - Contains settings, spawn limits, chunk settings, updaters etc. This is for advanced users!
- craftbukkit.jar - The jar file to actually run the server
- help.yml - This is a very useful document that shows you all the basic commands in-game and how to use some files
- ops.txt - A list of players that have admin privileges and can have access to all commands in-game. Format is a new user every line
- server.log - Basically, what ever you see on your console, gets logged to this file. This is great for tracking player chat message and any plugin logs that are written. The log also includes a time stamp so you can refer and prove things if necessary
- server.log.lck - This is a temporary storage for the console’s dump messages, when the server closes it copies all the information from the lck file to the .log file
- server.properties - This file is probably the most important file for managing your server settings. It contains essential information about what port you are using, what is enabled and disabled etc.
- Start.bat - The script used to start the server with a GUI interface
- whitelist.txt - A list of players that are only permitted to enter the server, this is only active if enabled in the server.properties and will only let players online if their usernames are in this file.
How to configure your server
The main file used in the configuration of a bukkit server is the server.properties file. It contains a list of things that can be enabled/disabled and modified. Here is a list of what the server.properties contains and what each function does.
- generator-settings - This function if for generating superflat worlds. This uses the preset codes from the Single-Player>Superflat>Customize menu. When you select a preset, you can see at the top there are multiplication symbols and numbers. This is the generator settings of the map. If you want to use a preset when generating a new world you could paste the generator code here.
- allow-nether – Accepts only a ‘true’ or ‘false’ exception. When set to false, players can activate portals but will not be teleported to the nether.
- level-name - By default this is ‘world’ is is the name of the folder create to hold all of the map information such as player inventory and position data. Changing this would generate a new world with that name, this would generate all new data and a new spawnpoint. However, this CAN be reverted back to ‘world’ at any time.
- enable-query - This, when true, enables a GameSpy4 protocol server listener. This is used to get information about server which can get players online and uptime.
- allow-flight - If false, any players that are caught flying without creative, will be kicked from the server. When true the server ignores this.
- server-port - By default, the server port is set at 25565. When you enter Minecraft servers, you tend not to use 25565 for when joining a server. This is because if Minecraft detects no port was used, it automatically sticks 25565 on the end and joins it. If this value is changed, then the player would have to enter the port to get on the server.
- level-type -
DEFAULT – Generates the world like a normal map would be.
FLAT – generates 4 layers of terrain Grass, stone, stone, stone and bedrock.
- enable-rcon - This, when enabled allows the server to enable remote access to the console e.g. from an iOS device
- level-seed - The seed that will be used to generate all the terrain. This, when changed will only take affect only to newly generated chunks. However, deleting the world file will generate a new world entirely of this seed
- server-ip - If you are wanting to use your computer’s local IP address, then leave this blank.
- max-build-height - 256 default. Increasing this value will not change how high a player can build. However, lowering it will
- spawn-npcs -
true – will spawn villagers
false – will not spawn villagers
- white-list -
true – Will only let players online who are in the whitelist.txt file
false – Allow all players (unless they are banned)
- spawn-animals -
true – Spawns all types of animals
false – Will stop spawning animals but will not kill any living ones.
- snooper-enabled - This, when enabled will send information about the server to Mojang so they can receive crash logs to help fix issues faster. This, when enabled in the client, will gather PC specs and also be given to the team
- hardcore - When enabled, hardcore mode (1 life mode) will be present. If a player dies, he will get banned from the server. If you want to unban that player, you must remove him from the ban lists and delete his player profile from the world file > players.
- texture-pack - This must be a direct URL to a zip for a texture pack. When URL is Present, players that don’t have that texture pack on will be asked if they would like to use that texture pack.
- online-mode - VERY IMPORTANT! When this is disabled your server is at high risk of players logging is as you without needing your password. This manipulation of users is extremely easy to do and if a player logged in as you, they would have all your operator rights. When enabled, the user information gets checked by the Mojang databases to make sure that the user has legitimately logged in with a correct password before joining a server. The only way of a user getting into your server as you is if the player guessed or knew your password
- pvp -
true – allows players to fight and hurt each other
false – stops players from hurting one another
- difficulty -
Consists of one of the following numbers: 0,1,2 or 3
0 – Peaceful
1 – Easy
2 – Normal
3 – Hard
- gamemode -
Consists of one of the following numbers: 0,1 or 2
0 – Survival
1 – Creative
2 – Adventure
- max-players - Enter the number of players that you will allow on the server at any one time. Default = 20
- spawn-monsters -
true – spawns monsters naturally in dark areas
false – stops monster spawning all together even from spawners
- generate-structures -
true – will allow villages/strongholds/mineshafts etc. to be spawned with the seed
false – will not allow villages/strongholds/mineshafts etc. to be spawned with the seed
- view-distance - This is a number that should be between 1 and 10. This determines how many chunks should be loaded around every player at one time. Number counts as the radius around the player. Recommended = 7
- motd - MOTD – Message Of The Day. This is the tagline underneath the title of the server name. It can be a short summary of what the server includes such as plugins etc.
My Friends Can’t Join!
Your friends will NOT be able to join if you are trying to give your friends these types of IP addresses:
Use this site to retrieve your IP address: http://ipchicken.com/
Make sure you have port-forwarded to your computers local IP address e.g. 192.168.1.71 (yours may be different)
Basic In-Game Commands
/ban <player> – Bans the player stated as <player> e.g. /ban MTNOfficial
/pardon <player> – Unbans the player stated as <player> e.g. /pardon MTNOfficial
/ban-ip <player/IP> – Bans the player/IP address stated as <player/IP> e.g. /ban-ip MTNOfficial or /ban-ip 22.214.171.124
/kick <player> – Kicks the player stated as <player> e.g. /kick MTNOfficial
More commands can be found HERE