The following is a complete guide for setting up a Minecraft Java Edition server running Spigot, Paper or Purpur on your computer.

This guide is complete, includes all the necessary files and is different from the other tutorials in that:

  • It does not require changes to your network or opening a port. 
  • It’s meant for plugin developers, not for running a public server. You can open your server to the public using the standard network and port changes found in any other guide after you have a server using the instructions below.
  • It works for any Minecraft version using Craftbukkit, Spigot, Paper, Purpur or any other fork.
  • It includes performance optimizations to minimize resource usage when testing your Minecraft plugins.

Step 1: Installing Java

Step 2: Getting Spigot, Paper or Purpur

The official server from Mojang, creators of Minecraft, does not support plugins. 

The most popular modded server software builds on top of Bukkit, which is no longer maintained and was replaced by Spigot, which extends it.

Today, most people prefer Paper, which builds on top of Spigot. Purpur is an alternative that builds on top of Paper and adds more customization features.

Getting Paper (Recommended)

We recommend using Paper for easy download, higher performance, more customization options and more API features (for plugin developers) over Spigot.

Get Paper here: https://papermc.io/downloads/paper

Getting Spigot

Spigot exited before Paper. It builds on top of Bukkit and adds more performance and optimization features. However, soon developers became dissatisfied with their policies and rigid pull request approval process, and extended Spigot to form Paper.

If you still require Spigot, please note that getting the server software requires compiling 20,000+ files on your computer and 800mb+ downloaded software. 

For instructions on how to compile Spigot this, see this article: https://www.spigotmc.org/wiki/buildtools/

Getting Purpur

Purpur builds on top of Paper which builds on top of Spigot which builds on top of Bukkit. Purpur adds even more customization options than Paper but its developers have to wait for Spigot and Paper to update and merge changes manually.

We recommend avoiding “forks of forks” due to limited community overwatch for bugs and instabilities. Some plugins tend to break due to a fork’s optimization features.

Get Purpur here: https://purpurmc.org/downloads

Step 3: Starting The Server

Once you have downloaded a jar file, rename it to “server.jar” and put it into a new folder, such as “1.21”.

Check that your OS shows all file extensions, otherwise you might accidentally make a file called “server.jar.jar” which won’t be found by your launching script. Here are tutorials on how to show file extensions on Windows 11, Windows 7-10 and macOS.

Using The Launching Script

Do not double-click the jar file because it needs an additional file with parameters to run. We’ve put these in the “launch-scripts.zip” file you can download here:

Step 1: Open the zip and put the appropriate file for your operating system next to your server jar.

Step 2: Open the file with a text editor such as Notepad++ or Sublime Text, and rename paperclip.jar to your server file name, such as server.jar.

(Optional) Step 3If you run a Minecraft version older than 1.15, remove the “–nogui” parameter on the end of the long line since it’s unsupported on old versions.

(macOS/Linux) Step 4: Open Terminal and allow execution for your launch file. On macOs you need to run the following Terminal prompt: “sudo chmod 777 launch-mac.command” while being your server folder, or specifying the fully qualified path: “sudo chmod 777 /Users/kangarko/Test Servers/1.20/launch.command“.

Once you’re done, double-click the launch file. 

Minecraft server folder structure.
This is how your Minecraft server folder should look like after successfully installing your server.

Initial Launch

The server should start loading until it complains about the eula file. Close the console window, open eula.txt in your server folder and set the value of”eula” key to “true”.

Start the server again using the launching script and voila, it should now finally finish loading with a message saying “Done” once it is finished.

(Optional) Step 4: Tweaking Performance

Here are our tweaks to make your server load faster and use less computer resources. 

These tweaks involve stripping the server down of functionality we don’t need when developing and testing our Minecraft plugins. For production servers, consider each option carefully before tweaking:

  • bukkit.yml — Set settings.allow-end and settings.query-plugins to false. This will disable the end dimension for faster server startup and querying plugins in rcon (unless you specifically know you need this feature.
  • config/paper-global.yml (or paper.yml for older Minecraft versions)
    • and spigot.yml — Find any verbose key and set it to false. This will remove console spam.
  • server.properties
    • network-compression-threshold to -1 (disable compression on localhost)
    • online-mode to false (useful to test different accounts when debugging plugins even those you didn’t purchase if you use an unofficial launcher)
    • allow-flight to true
    • view-distance to 4 (the less the less drain for your computer resources)
    • allow-nether to false (disables the nether, faster server start)
    • gamemode to creative
    • motd to whatever you wish to be shown in the Minecraft Multiplayer list screen (spaces are supported), use § for color codes
    • (if available) snooper-enabled to false
    • (if available) server-name to whatever you want your server to be called (without spaces), examples: test,myfirstserver

(Optional) Step 5: Installing Plugins

If you are a Minecraft plugin developer, we highly recommend installing the following plugins. Check if each plugin is compatible with your Minecraft server version.

(Advanced) About Startup Scripts

Explanation for some flags in the scripts:

“-Xmx2G” is the maximum memory (RAM) your computer can reserve for the Minecraft server. This should not exceed more than 1/3 of your computer’s all available memory.

“-Xms2G” is the starting memory (RAM) your computer uses for the Minecraft server. Same rules apply as for the Xmx flag above.

To learn more about other startup parameters in the launching scripts, see: https://docs.papermc.io/paper/aikars-flags

Developing Minecraft plugins

If you’re interested in developing your own Minecraft plugins, check out this Minecraft plugin development guide. It works for Bukkit, Spigot, Paper, Purpur and any other fork.