When creating a server there are multiple different names you will come across. Each server software has its own uses.
Server Software is very often referred to as “Server Jar(s)“.
There are hundreds (if not thousands) of different forks. This document will only include the recommended, stable, widely-used ones.
Vanilla No Plugin Support
As the name suggests, it is a completely Vanilla server from Mojang itself without any modifications. Great for those who want to host a small server for a couple of friends without altering any mechanics, but definitely not good for large servers.
Paper is the most widely-used Server Jar nowadays. A fork of Spigot with its own API, numerous optimizations alongside tons of glitch/dupe fixes make Paper the main choice for most server owners.
A fork of Paper which provides numerous gameplay-enhancing features without having to download/create plugins. These include being able to adjust gameplay behaviors not seen in Paper, mob health, and more. Only has a couple of optimization options, but it does allow you to toggle some dupes.
A fork of Paper which greatly improves performance without causing any noticeable impact to gameplay. Includes hopper, entity, map rendering and many other optimizations. Highly recommended for most servers.
A fork of Paper which groups nearby loaded chunks to form an “independent region.” Each independent region has its own tick loop, which is ticked at the regular Minecraft tickrate (20TPS). The tick loops are executed on a thread pool in parallel. There is no main thread anymore, as each region effectively has its own “main thread” that executes the entire tick loop.
Legacy 1.8 Jars
It is highly recommended that you do not use 1.8 or any of its other releases. However, if it’s a requirement for whatever reason these are the better jars to use.
Forge is a modding API and server jar. It is most commonly used for servers with large modpacks. However, it is not very optimized and suffers from poor performance.
Fabric is similar to Forge (but not a fork) in the sense that it also supports mods. These mods can change practically any mechanic of the game. Fabric also has a great amount of optimization mods such as Lithium, Starlight, Phosphor etc. Take a look at this list
Proxies are used to connect multiple regular servers (such as Paper servers) together. These are what power “networks” and are used by servers which have multiple gamemodes separated in their own subservers. I.E. Survival, Minigames, Prison, etc. all in one “server”.
A more recent project, now run by the Paper developers. Velocity uses its own API, meaning it does not work with Bungeecord / Waterfall (Unless you use SNAP!, which allows you to use Bungeecord plugins on Velocity. Not recommended, though.)
Velocity is a superior solution compared to Bungeecord / Waterfall unless you’re hosting older than 1.13 servers but many developers haven’t added Velocity support to their plugins.
A fork of Bungeecord run by the Paper developers, Waterfall supports most if not all Bungeecord plugins. It also comes with a couple of networking optimizations.
Functioning almost exactly like the Geyser plugin, Geyser Standalone allows you to take load off of your main proxy/backend instance. It also supports auto-updating on Pterodactyl (assuming that you’re using the Geyser Standalone egg). Recommended for servers that have higher player counts.
If you’re using Pterodactyl, consider using the Geyser Standalone Egg. After installation, simply set “remote” in the config.yml of Geyser Standalone to the IP of the proxy/backend server & add Floodgate-Spigot & Floodgate-Velocity/Bungeecord to the spigot and proxy instances respectively.
Geyser Standalone also allows you to connect to servers that you do not own. However, this is not recommended as it will more than likely lead to a swift ban from the anti-cheat.
There are sometimes cool spin-offs that we feel are worthy of mentioning their existance, please note they may no longer be in active development at the time you’re viewing this article.