What is Spigot? CraftBukkit? Bukkit? Vanilla? Forg
What is Spigot? CraftBukkit? Bukkit? Vanilla? Forge? PaperSpigot? Etc.
The Vanilla software is the original, untouched, unmodified Minecraft server software created and distributed directly by Mojang. Due to it's many bugs, laggy reports, and lack of configuration, Vanilla has been the subject to much criticism. The advantage of Vanilla however, is that everything must be defined by command blocks giving the owner of the server ultimate control over everything. This is a great example of what hard work and the imagination can achieve. Vanilla can be found at https://minecraft.net/en-us/download/server
Bukkit is an API that allows programmers to make plugins for server software. API stands for Application Program Interface and is is a set of subroutine definitions, protocols, and tools for building application software as defined by Wikipedia. To get Bukkit just use the maven repository.
CraftBukkit is lightly modified version of the Vanilla software allowing it to be able to run Bukkit plugins. CraftBukkit prides itself to be able to offer many configurable features that Vanilla simply doesn't have. CraftBukkit is much more optimized than Vanilla sometimes making it less laggy. CraftBukkit is known for asynchronous chunk loading, its ability to run Bukkit plugins, fixing of certain Vanilla errors, bugs and exploits. To get CraftBukkit legally however requires the SpigotMC BuildTools. (See https://www.spigotmc.org/wiki/buildtools/)
Spigot is the most popular used Minecraft server software in the world. Spigot is a modified version of CraftBukkit with hundreds of improvements and optimizations that can only make CraftBukkit shrink in shame. To get Spigot legally however requires the SpigotMC BuildTools. (See https://www.spigotmc.org/wiki/buildtools/)
Forge is well known for being able to use Forge Mods which are direct modifications to the Minecraft program code. In doing so, Forge Mods can change the gaming-feel drastically as a result of this. Sometimes, people are confused by what the difference between Forge Mods and Bukkit Plugins are. Here is something confusing, they are both mods. Forge Mods are direct modifications to the Minecraft program code while Bukkit Plugins are modifications that use the already-coded Minecraft properties to perform certain functions. For this very reason, Forge Mods generally require the Client to have to same Forge Mod as the Server. This is where Bukkit Plugins become advantageous, they do not require client-side plugins (there are some exceptions however). Forge can be found at https://files.minecraftforge.net/
Paper (formerly known as PaperSpigot, distributed via the Paperclip patch utility) is a high performance fork* of Spigot. The goal of PaperSpigot is to basically make every darn thing configurable. Paper adds over 200 patches** to Spigot and its API which because of this is known to cause some incompatibilities with certain plugins. Paper can be found at https://destroystokyo.com/ci/job/Paper/
TacoSpigot is yet, even a high performance fork* of PaperSpigot. TacoSpigot has about 15 patches** of PaperSpigot which can be found here. Being as that TacoSpigot is yet travelling further and further away from the original Spigot code, is known to have many incompatibilities with plugins and is generally not recommended to use. TacoSpigot can be found at https://ci.techcable.net/job/TacoSpigot/
Glowstone is another high performance software which prides itself on being an original project. Glowstone does not use any of Mojang's Minecraft code whatsoever. It does still have the ability however, to run Bukkit plugins. Since Glowstone doesn't use any of the original Minecraft code, it is known to have some incompatibilities with plugins. Glowstone can be found at https://www.glowstone.net/
A project also by SpigotMC, probably the biggest game-changer within the server community. For the longest time, owners of servers were looking for a way to tie servers together into one network without having to disconnect from one server and connect to a another server. This is where BungeeCord comes in. BungeeCord basically acts as a proxy that can automatically switch connections between individual Spigot/CraftBukkit servers. This allows integrations of server to make a networks and is used pretty much everywhere you look on server-lists. BungeeCord can be found at https://ci.md-5.net/job/BungeeCord/
WaterFall is another cool creation made by the PaperSpigot guys. It is a high performance fork* of BungeeCord with over 40 patches** that are supposed make BungeeCord even better. Because WaterFall is a modified BungeeCord however, it is known to have some incompatibilities with existing BungeeCord plugins. WaterFall can be found at https://ci.destroystokyo.com/job/Waterfall/
FlexPipe is also a fork* of BungeeCord which is supposed to be more stable, optimized and improved security. It contains over 40 patches** also known to make FlexPipe to have some incompatibilities with BungeeCord plugins. FlexPipe can be found at https://github.com/minotopiame/FlexPipe
HexaCord is another fork* of BungeeCord that allows the 1.7.x Protocol join the network. Since the only thing that is change is the ability to accept 1.7.x connections, incompatibilities are minimal. HexaCord can be found at https://github.com/HexagonMC/BungeeCord/releases
*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.
**A patch is a piece of software designed to update a computer program or its supporting data, to fix or improve it. This includes fixing security vulnerabilities and other bugs, with such patches usually called bugfixes or bug fixes, and improving the usability or performance. Although meant to fix problems, poorly designed patches can sometimes introduce new problems (see software regressions). In some special cases updates may knowingly break the functionality, for instance, by removing components for which the update provider is no longer licensed or disabling a device.