Skip to content

Latest commit

 

History

History
139 lines (85 loc) · 8.07 KB

servers.md

File metadata and controls

139 lines (85 loc) · 8.07 KB

Minecraft Servers

Java Edition

The Minecraft Java Edition client knows how to communicate with any TCP server that follows the Minecraft server protocol. Servers that conform to this are called "Notchian" servers. While there is an official implementation of this server provided by Mojang, there are re-implementations and modifications of it.

Modifications

Below you can see a hierarchy of the most popular server software based on the official server.

CraftBukkit

CraftBukkit is the most commonly known modification of the vanilla server. It doesn't change or modify the protocol, but it provides an API (Bukkit) for server-side modifications called plugins. CraftBukkit and Bukkit themselves have in turn be forked and modified multiple times. The most popular CraftBukkit fork nowadays is Spigot, which also has several popular forks.

CraftBukkit and most of its descendants are compatible with each other for the most part, meaning that you can often write a plugin for one of them and it will work on all of them.

See the API repository for a list of tools for Bukkit-based plugin development.

Sponge

Sponge is another modified vanilla server independent of CraftBukkit. It also has a plugin system with an API to create server-side mods, but additionally, it's commonly used as a server for the Forge modding platform.

Cheetah

Cheetah is a Spigot fork by the SpigotMC Team. It allows you to disable entities and block ticking.

Source

TacoSpigot

TacoSpigot is a even higher performance fork of Paper. (Not maintained anymore)

Tuinity

Tuinity is a Fork of Paper aimed to improve performance at high playercounts.

Akarin

Akarin is a powerful Minecraft Server Software based on Tuinity by @akarin-project

Purpur

Purpur is a fork of Paper, Tuinity, Airplane with the goal of providing new and interesting configuration options, which allow for creating a unique gameplay experience not seen anywhere else.

Airplane

Airplane is a Performance orientated Bukkit implementation based off Tuinity.

Yatopia

Yatopia combines the code from many Paper forks and optimization mods, as well as many unique optimizations.

Nyper

Nyper is a fork of Paper which forces you to use Java 11 and makes the /reload command nicer with better tab completion.

Forge

Forge is a modified version of the vanilla server (& client) just like CraftBukkit, but it's not only for server side modding, it also has a client version that must be installed to work.

Fabric

Fabric is an alternative to Forge which aims to be more modular and with a more modern api than forge. It also has native support for Kotlin, Scala and Groovy.

Re-Implementations

There is a number of reasons why it may be beneficial to use a server that does not depend on the official vanilla server at all. First, it prevents the licensing issues that occur when redistributing proprietary code. Second of all, it gives you a lot more freedom in how to structure the server, which systems to use etc.

There are many independent Notchian server implementations and you can find unofficial lists on the internet. Below, we list a couple of Java-based servers that we find interesting.

  • Cleanstone by @Fionera and @MyzelYam

    Cleanstone is an alternative server software that is based on Spring and Multi-Threading.

  • MCHPRS by @MCHPR

    A Minecraft creative server built for redstone. Each 256x256 plot runs on a separate thread, allowing for less lag, more concurrency, and many awesome extra features.

  • Minestom by @Minestom

    Minestom is an alternative server software that aims to improve the performance.

    Main features:

    • Remove the overhead of vanilla features
    • Multi-threaded (Chunks & Entities)
    • Instance system which is much more scalable than worlds
    • Modern API

In case you want to play around with the protocol in Java yourself, this may be of use:

Proxies

Reverse proxies can be used to coordinate connections between different servers.

BungeeCord

BungeeCord is the de-facto standard for Minecraft Networks. You can link multiple servers together and dynamically switch between them. Most Networks use Waterfall by the PaperMC team. It's like Paper for spigot, but for bungeecord.

Velocity

Velocity is a modern alternative to BungeeCord which is faster and more secure than BungeeCord. It also has a nice Plugin API. Also it provides some compatibility stuff, so it can handle the BungeeCord Plugin Messaging Channel.

Bedrock Edition

  • Cloudburst by @CloudburstMC

    Cloudburst is a server software for Minecraft: Bedrock Edition. It has a few key advantages: written in Java and friendly structure.

Bridges

There are attempts to construct bridges between the Bedrock and the Java edition protocols, so that players from both editions can play together. Note that none is fully production ready or 100% functional yet.

  • Geyser by @GeyserMC, a proxy allowing Bedrock players to join Java servers

  • Waterdog by @yesdog, a fork of Waterfall/BungeeCord adding Bedrock protocol support