Skip to content

Introduction

In this section, you are going to find all Minecraft: Java Edition tutorials. ☕
But before we jump right into any of them, let's get to know some server software there are and solve some common misconceptions surounding them.

🍨 Vanilla

Mojang already provides 1st party Minecraft server software of their own. We also refer to this version as Vanilla. It has all the Minecraft features you would expect like when playing Single Player. Due to lack of configuration, it's not a popular choice for Minecraft server administrators.
It lets you enjoy the vanilla Minecraft experience together with your friends. Typical server's job. Although, that is not enough for us, is it?

Join the modding world!

Yes! That's what I am talking about!
Modding gives us a lot of new possibilities to explore Minecraft. Some modding is done on the server itself, so our players don't have to install any mods themselves.
On the other hand, some mods require to be installed on both Server and Player.
We will be taking a look at both of them and getting more in-depth.

Going beyond Minecraft Vanilla server

When it comes to Server modding, we have many choices. Few of them are 🔥 CraftBukkit, 🚰 Spigot and 📃 Paper.

They all modify original Minecraft server software and add additional features to it. One of their main focuses is plugin support!

With plugins, you can extend the functionality of your server, without the need of players to install any additional mods or software. How cool is that! But how do you choose what Server software to run?

I will tell you right away. Paper. Because of its high performance, it is default on FreeMC.Host. But others are also worth to mention and know what they are, as they paved the path for Paper to dominate servers of today.

🔥 CraftBukkit

CraftBukkit is a slightly modified version of the original Minecraft server software. It introduces new configuration options that let you take control of how your server behaves.
The best part, plugin support! CraftBukkit was the first to introduce this concept. It supports plugins made with Bukkit API1, available to download at https://dev.bukkit.org/bukkit-plugins.

🚰 Spigot

Spigot is the most popular Minecraft server software. It is a modified version of CraftBukkit that brings a whole lot of optimization and fixes, expanded configuration options and another killer feature - BungeeCord support (More on that later).
With that, Spigot ships with Spigot API, an extension to Bukkit API with many new features for plugin developers to use.
Spigot plugins are available to download at https://www.spigotmc.org/resources/.
As it's built upon CraftBukkit, it is compatible with all Bukkit plugins as well.

📃 Paper

Paper (previously PaperSpigot) is high-performance fork2 of Spigot. It adds even more configuration options, optimizations and fixes. Given that is a fork of Spigot, it supports all plugins that Spigot does, both Spigot and Bukkit plugins.
Because of its high performance and plugin support, I highly recommend using it!

Even more modding!

This goes even further! With mods!
But let's just roll back a little and explain the difference between plugins and mods. Technically, both are in fact, mods.
Mods are direct modifications to Minecraft's code. That is what makes them very powerful. But that also means that all modifications on the server, also have to be applied to the player's game as well. That makes them a little bit less accessible.
Plugins are modifications that use already existing features of Minecraft to perform functions. That is why player's don't require to install anything on their side.

⚒️ Forge

Forge is a well known Minecraft modding platform. It uses Forge mods that are a direct modification to Minecraft's code that can completely change game-feel. All Forge mods on the server have to be installed on the player's game as well. There are a lot of pre-made Modpacks that make this easier. The most popular source for downloading Forge mods and modpacks is CurseForge.

📜 Fabric

It gets deeper

There are also Hybrid approaches, ones using both mods and plugins. These projects are not always up to date or the most stable, so use them with caution! ⚠️

🧽 SpongeForge

SpongeForge is a mod for Forge that allows you to use Sponge plugins alongside Forge mods. Sponge plugins can be found on Ore plugin repository and have to be installed in the mods folder, like Forge mods. It supports Minecraft versions 1.10.2 - 1.12.2. More information on SpongeForge as well as setting it up is available on SpongeForge wiki page.

🍮 Magma

Magma is a hybrid Minecraft server software. It implements both Forge API (for mod support) and Spigot/Bukkit API (for plugin support). Furthermore, it makes use of Paper for many performance optimisation! It is available for Minecraft 1.12.2 (and soon for 1.14.4 and 1.15.2 too!).
With Magma you can have both Forge mods, Spigot plugins and Bukkit plugins at the same time!

☁️ Mohist

Mohist is another project just like Magma.

☢️ Uranium

Uranium is a continuation of KCauldron project, which combines Forge Mod support and Bukkit/Spigot plugin support.
Uranium is very similar to Magma and Mohist projects, but is for Minecraft 1.7.10.

More information on hybrid (mods + plugins) servers can be found on hybrid page of this section.

Proxy servers

Next to traditional Minecraft servers, there are also Proxy servers.
These servers don't rely on the original Minecraft server software code. Their general idea is to have a way to stitching Minecraft servers together in a network, without the need of player disconnecting and entering different IP to change to a different server.

Many big servers use Proxy servers to allow players to change to another server type or game mode. Like that, players can choose different experiences, all in one server network.

For more information on Proxy servers, how they work and how to set them up, check out Proxy servers page. I will go through some of the popular proxy servers so you know what they are if you come across any of them.

🔌 BungeeCord

BungeeCord is a proxy server made by the SpigotMC team, the guys behind Spigot server software. It also has plugin support, so it's super customizable!

🌊 Waterfall

Waterfall is a high-performance fork of BungeeCord. It is made by PaperMC, team whos creation is also Paper server software. It adds a lot of fixes to BungeeCord and improves Forge support. It also supports all of BungeeCord plugins.
Due to performance optimizations and fixes, I recommend using Waterfall as a proxy server.

⛰️ Travertine

Travertine is a version Waterfall with added support for Minecraft 1.7.10.

☄️ Velocity

Velocity is a new Minecraft server proxy build with enhanced server support and scalability. It enforces security by default and has its plugin support.

Also...

The idea of having different experiences (game modes) in a single server is also possible with having different worlds. Setting it all up can be very complicated and cause many issues! Not to mention reduced performance due to having multiple worlds and a high number of plugins running on a single Minecraft server. If you want to try this out, I also cover how to do that on Multiverse page.


That's not all! We also have another type of Proxy servers.

♨️ Geyser

Geyser is a proxy server, bridging the gap between Minecraft: Bedrock Edition and Minecraft: Java Edition servers.
Its goal is to allow players on Minecraft: Bedrock Edition to join just about any Minecraft: Java Edition server.
Because it's a proxy server, you can use it on any server you want!
Geyser is also available in the form of a plugin, so you don't have to spin up another server if you would like to allow Bedrock Edition players to join your Java Edition server.
Setting it up can be found on Geyser page.


  1. An API (application programming interface) is an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintenance of software. 

  2. In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software.