2015-07-29_00_01_45

Minecraft’s native LAN support is great for running games on the fly, but if you want a dedicated, customized server, Spigot is the way to go. Spigot is built on a plugin API called Bukkit, which makes customizing your gameplay easy, and since the Bukkit project has been around since the dawn of Minecraft multiplayer, many developers have released their own plugins and modifications.

What is Spigot?

Spigot is a modified fork of the Bukkit API, which is itself a modified fork of the official Minecraft server released by Mojang. Bukkit was born when developers and modders were dissatisfied with the closed source and lack of features in the official server, and wanted a more modular and customizable server solution. The actual implementation of the Bukkit API was called CraftBukkit, and as Minecraft grew, CraftBukkit grew to be the best choice for medium and large sized servers. Due to some legal troubles, the CraftBukkit project was shut down, and has not been updated to 1.8, the newest Minecraft version.

This is where Spigot comes into play. Spigot was designed to make CraftBukkit faster and more efficient. It uses the Bukkit API, so all plugins compatible with Bukkit are compatible with Spigot. When the Bukkit downloads were taken down, the Spigot project continued to update the software, making it now the biggest choice for modded servers and the only choice for modded 1.8 servers.

Windows Installation

Spigot does not have a download; it must be compiled from source. The Spigot Team automate this with a program called BuildTools. You can download the latest version of BuildTools here. You will also need Git for Windows. Make sure you have the latest version of Java.

Create a folder to house all of your server files and stick the BuildTools jar in it:

sshot-1

Run the Git for Windows setup and wait patiently until the progress bar reaches the end.

sshot-3

When Git is finished installing, open the start menu and you should see a new application in your programs folder. Run Git bash and you will see a terminal window. If you have experience with Unix terminals, you should be familiar with how to use it. If not, the process is simple anyway. Just cd to the folder you put the BuildTools jar in, and run it with java -jar:

cd ~/path/to/folder/

java -jar BuildTools.jar

sshot-4

The BuildTools program will now download all necessary source code and compile the server jar files automatically. This may take a long time. When it finishes you should see the command prompt and a bunch of files in the folder you put the BuildTools jar in. Make a new text document, name it start.bat, right click it and select edit. It will open in Notepad, and paste this script in:

@echo off

java -Xms512M -Xmx1024M -XX:MaxPermSize=128M -jar spigot.jar
pause

sshot-5

If you’re only running this server for a few people, or for yourself on the same machine, 1gb of RAM will do just fine, but if you want you can change the -Xmx argument to a higher amount.

Save the script and run it. You will get an error and the program will exit. This is normal. The first time you run spigot.jar, it will create a EULA.txt file for legal reasons. Open it up, change it from false to true, and run start.bat again. To test that the server is running, open Minecraft and connect to localhost:

sshot-8

You should be greeted with a Minecraft world and an error when you break a block near spawn. This is because Spigot defaults to a few blocks of spawn protection from everyone who isn’t an operator. You can ‘op’ yourself only from the server terminal by running

op playername

Or, if you want to remove someone,

deop playername

You need op permission to use a lot of in-game commands like giving items or switching to creative mode. There are also plugins that can give users permission to use specific commands.

OS X and Linux Installation

Installing Spigot on OS X and Linux is even easier. Make sure on both you have the latest version of Java installed. On Linux, use whichever package manager you have to install git if you don’t already have it:

sudo apt-get install git

sudo yum install git

Download the same BuildTools jar from the Windows installation and put it in its own folder.

Spigot_Stuff

 

On Mac, open a terminal, navigate to that folder, and run it with

java -jar BuildTools.jar

untitled_folder_—_bash_—_111×40

You should see a prompt asking you to install command line developer tools. Click ‘Install’ and wait for it to finish. This will install the tools necessary for BuildTools to run. On Linux you may need to run

git config –global –unset core.autocrlf

before running the jar. Otherwise, the installation should go smoothly, and you can launch spigot.jar from the command line with java -jar, or with a startup script:

#!/bin/sh

java -Xms512M -Xmx1024M -XX:MaxPermSize=128M -jar spigot.jar

 

Port Forwarding

RELATED: How to Forward Ports on Your Router

If you want to play with friends outside of your local network, you need to forward ports on your router. Minecraft’s port defaults to 25565, though this can be changed in the server.properties config file.

The address you give your friends should be your public IP address followed by a colon and the port number. You can find your public IP address online. For example, the IP your friends connect to will be something similar to

123.45.67.89:25565

 

Installing Plugins

You can get plugins from Bukkit or SpigotMC. Many of the plugins are for 1.7, but most will work with 1.8. Installing a plugin is as easy as downloading a jar file and putting it in the plugins folder. You then need to reload or restart the server for the new plugin to kick in.

Here are some basic plugins you should install on setup:

  • LANBroadcaster opens your server to your local network, so friends can connect without typing in an IP.
  • Multiverse allows you to have as many Minecraft worlds as you want, and Multiverse Portals lets you link them together easily.
  • WorldEdit provides powerful control over terrain and building.
  • WorldGuard protects your builds from players and the environment.

Each of these plugins have their own syntax which you can learn by running /help in-game.