A Decade of Survival Multiplayer. Celebrating the first 10 years of the Minecraft Multiplayer Community

Posted on August 04, 2020 in minecraft

As of today, August 4th 2020, Minecraft Java Edition has had survival multiplayer for a decade. I, as well as many other members of the community, have been tirelessly creating a comprehensive history of the Survival Multiplayer community.

Before I begin, this is a living document built to archive and share the first decade of Minecraft multiplayer with the next generation of players. If there is anything we have missed that you feel made a substantial impact on the survival multiplayer ecosystem, please contact me. Also, while we’ve tried our hardest to make sure these dates are accurate and cited. As with anything historical, it is always possible not to be entirely accurate. If you find something that you can verify is incorrect, please contact me.

2009 - Prehistory

Minecraft Classic

Minecraft wouldn’t be where it is today without the version that came before what we know today. Minecraft Classic had a version of multiplayer that was released back in 2009, on the 7th of June. Minecraft was very different at this time, being a small in-browser game with a small following. Survival mode was also not yet in the game.

NerdNu

Out of everything that happened during the Minecraft Classic era, one notable server launched that is still online to this day. NerdNu, known historically for c.nerd.nu and s.nerd.nu, first started on the 10th of June 2009. Therefore, this is the oldest Minecraft server to be still running.

WikiVG and #mcdevs

With a growing interest in Minecraft server modding, a few members of the community started a project to document the technical aspects of the game. Thus, wiki.vg and the #mcdevs IRC channel were born. Initially launched at an unknown time in 2009 at the URL wiki.tkte.ch, with an effort to document the game’s protocol started shortly after. The wiki migrated to the domain where it then resided on the 24th of October 2010. The IRC channel also underwent a migration to Freenode at a similar time. To this day, the WikiVG project is the go-to place for technical information about Minecraft.

2010 - The Early Days

Survival Multiplayer Releases

Minecraft Alpha 1.0.15 was the first version of what is now known as Minecraft Java Edition to have support for multiplayer. While 1.0.15 released on the 3rd of August 2010, it wasn’t until one day later on the 4th of August that the server software was released. This release was the start of Minecraft multiplayer as we know it today.

MinecraftOnline

On the same day, a group of people created a server by the name of MinecraftOnline. After two days of private testing, the server released on the 6th of August 2010. While not technically the oldest server still running, due to NerdNu existing during the Minecraft Classic era, MinecraftOnline launched on modern Minecraft before NerdNu did. Due to this, it is the longest-running server for what we now know as Minecraft Java Edition. As of writing, MinecraftOnline is running Canary on Minecraft 1.7.10.

LlamaGrief, the first Anti-Grief mod

Two days after multiplayer launched, on the 6th of August 2010, a mod by the name of LlamaGrief was released by SuperLlama. This was the first anti-grief mod, allowing server administrators to prevent common grief tactics such as starting fires, spamming lava, or spamming bedrock (known as adminium at the time). Unlike today, this was not a plugin that could be installed simply to the server. LlamaGrief was a jar mod, installed by copying the modified game files into the minecraft_server.jar file and deleting the Java metadata folder (META-INF).

Server Wrappers

Before plugins were around to handle kits and rules messages, a few projects popped up that wrapped the Minecraft server and listened for various lines of text in the chat. The wrappers would then send console commands based on what it saw, such as giving the player a few items for kits or sending the player a rules message. The earliest wrapper still available on the internet was Czahrien’s wrapper from early August 2010. Afterwards, many others created continuation projects. Server wrappers in this form did not last too long, as they were quickly made redundant by the existence of plugins. Another wrapper that had existed from the 11th of August 2010 was MCAdmin by Doridian.

Lightstone

On the 17th of August 2010, the Lightstone project was started by Graham Edgecombe. Named after what glowstone was known as at the time, this project aimed to create a customisable Minecraft server without using any of Mojang’s code. As a very ambitious project, it did not last very long. However, Lightstone was used as a base for many projects in the future, some of which still exist to this day.

hMod

On the 3rd of September 2010, hey0 started work on a project known as Minecraft-Server-Mod, later rebranded as hMod. While hey0 only worked on this for a few months, this project was a significant leap forward in terms of what a Minecraft server could do. hMod was the first project that allowed “plugins” to be loaded onto the Minecraft server, with an API that wouldn’t require substantial changes on each Minecraft version. hMod also provided a small set of inbuilt features to assist in running a server, such as admin commands, extra configuration options to control how the game behaves, and a permissions system to manage what players can do.

The hMod Plugins

On the 28th of September 2010, sk89q started work on the WorldEdit project. The goal of WorldEdit was to allow the player to quickly set a large number of blocks, to speed up the building process. While initially very different from what it is now, the project soon took shape and started to resemble what it is today.

Due to an initial lack of interest in WorldEdit, sk89q started work on a plugin to make survival servers more fun for players. On the 22nd of October 2010, he began work on the CraftBook project. CraftBook introduced a number of gameplay mechanics, such as bridges and gates that could be opened and closed, elevators that could transport the player, and advanced redstone components (also known as Integrated Circuits). In a successful attempt to bring more users to WorldEdit, he made CraftBook depend upon WorldEdit. Interestingly, sk89q intended to move the Integrated Circuits feature out to a separate plugin called ReIC. However, this never happened, and instead, CraftBook absorbed the improvements made for ReIC. CraftBook was one of the most popular, if not the most popular, Minecraft plugin in the hMod era of Minecraft.

On the 30th of October 2010, bootswithdefer started the LogBlock project. LogBlock logged who broke or placed each block, and allowed an admin to look up the information. Block logging was significant for the server admin community, as before this point, it was impossible to determine who griefed an area without a reliable witness. LogBlock also later gained a rollback command, which has made its way into every major block logging plugin created since.

To protect his server, sk89q started work on a project called WorldGuard the 14th of November 2010. WorldGuard allowed server admins to protect certain regions of the world, such as the spawn or a town. The plugin also allowed preventing various forms of damage to the environment from both players and monsters. There were initially plans to split out the region functionality to a separate plugin called RegionBook, and only have WorldGuard handle the protection of the regions, but this idea was scrapped.

Also on the 24th of November 2010, Alec Gorge created a plugin called JSONAPI. JSONAPI was the first plugin to provide a way for external services to control a server fully. With JSONAPI, websites or other applications could change just about anything, from giving a player armour to setting trees on fire. One notable application that made use of JSONAPI was the Adminium mobile app, which allowed full management of a Minecraft server from a mobile phone.

On the 2nd of December 2010, Hidendra started work on the LWC plugin. LWC provided lightweight protection for chests, allowing players to protect each of their chests individually. At this stage, LWC provided the most granular form of block protection for players by providing private chests.

Started on the 4th of December 2010 by FrozenCow, Dynmap created Google Maps-like websites for Minecraft servers. Before Dynmap was created, there was no easy way for a Minecraft server to show off their world without someone joining the server.

On the 15th of December 2010, Nijikokun created the iConomy plugin. iConomy was the first major plugin to allow players to own fiat currency, providing an alternative to trading with physical items.

ModloaderMP

At the time, Risugami’s Modloader was the go-to method of making or installing mods for Minecraft. If you wanted to use those mods with friends, however, things were significantly more complicated. To combat this, ScottyDoesKnow (also known as SDK), released a mod called ModloaderMP on the 24th of November 2010. The goal of ModloaderMP was to allow a multiplayer version of a mod made with Risugami’s Modloader to be made and installed with ease. This was the first project that brought mods that add content such as blocks, items, or mobs to multiplayer in a simple way.

2b2t

The infamous anarchy server 2b2t (short for 2builders2tools) launched on the 17th of December 2010. 2b2t is the oldest running anarchy server, a server with little to no rules and allows players to do whatever they want to do. This server has a very in-depth history of its own and has been covered in multiple media outlets. For an extensive timeline of 2b2t, see here.

Minecraft Beta

Towards the end of 2010 Mojang published the first beta release of Minecraft, Minecraft Beta 1.0, on the 20th of December. This update was a significant improvement for server admins, as this update moved the player’s inventory from being controlled by the client to controlled by the server. Before this change, enforcing survival gameplay was pretty much impossible.

The Death of hMod and the Rise of Bukkit

Only a few months after the release of hMod, hey0 ceased work on it. The team that took over hMod decided after a short time that starting a new project based on the learnings from hMod would be a better idea. On the 21st of December 2010, work on the Bukkit project officially commenced with a development team made up of EvilSeph, Dinnerbone, Grum, Tahg, and sk89q.

Initial reactions to the news were generally positive, with most of the hMod community having trust in the developers of Bukkit after having seen their work on hMod and hMod plugins. A small segment of the community disagreed that hMod wasn’t worth continuing, and continued to update it themselves as a fork. This was the first split in the server community, albeit a minor one. A majority of servers and developers followed the Bukkit project into 2011.

2011 - The Golden Era of Bukkit

The launch of Bukkit

As 2011 kicked off, the Bukkit project was officially released with an announcement thread on the Minecraft Forums on the 1st of January. Bukkit was designed from the ground up to address many of the issues that plagued hMod users and plugin developers. Bukkit was intended to be significantly easier to develop plugins for, as well as running much faster. There were a few features that were not brought over from hMod however, such as inbuilt admin commands and a permissions system. To make up for the lack of these features, the Bukkit project created a set of plugins to add basic admin commands, a home system, and a chat system. The plugins were named ScrapBukkit, HomeBukkit, and ChatBukkit, respectively. Rather than being “official”, these were released just like any other plugin.

One of the planned key features of Bukkit that was announced was the Fill plugin repository. This repository was designed to go alongside commands within the Bukkit software that would allow server admins to install, update, and uninstall plugins all from within their server. Not much progress was made on this, however, and the project never saw the light of day. The Bukkit forums were used instead for plugin releases.

The Bukkit team also expanded at this point, to include others such as lukegb, GoMySQL, and more. Their primary role on the Bukkit project was managing infrastructure.

While highly active early on, sk89q did not stay with the Bukkit team for long. Many major decisions that have stuck with the Bukkit project and community since were led by him, however, such as the usage of YAML for configuration and the service loader system. He also made many changes to make plugins like CraftBook and WorldGuard more capable, such as the inclusion of BlockPhysicsEvent/BlockRedstoneEvent, the vehicle system, and partial cause tracking to many events. As of writing, sk89q is still the 4th biggest committer to the original Bukkit project despite leaving the team before the end of 2011.

In the early days, members of the community were involved in many meaningful discussions around how the project should run. One such debate was around which software licenses Bukkit and CraftBukkit would use. Bukkit was licensed under GPL and CraftBukkit under LGPL. While the license was noted to not be valid due to the intent of usage with proprietary code, this did have the implication that all plugins built using the Bukkit API were required to be GPL. EvilSeph did state that the Bukkit team would never enforce the license. However, this does not prevent other Bukkit contributors from requiring enforcement. To this day, the theory that all Bukkit plugins must be licensed under the GPL has never been tested in court.

CanaryMod

While most of the community switched to Bukkit, there was still a core group that was faithful to the hMod platform. On the 3rd of March 2011, shadow386 rebranded their hMod continuation fork as CanaryMod. CanaryMod improved on the API of hMod in many ways, similar to the Bukkit project. Some Bukkit code was also borrowed, making it a hybrid of both platforms. CanaryMod also kept up a small number of plugins, generally forks of all of the original plugins but updated by different authors. The primary user of CanaryMod was the MinecraftOnline server, which they are still running to this day.

Dawn of the Proxies

On the 9th of January, Raphfrk made the first of their three proxies. CraftProxy was the first Minecraft server proxy. However, it functioned somewhat differently from modern proxies. It was not built to allow a player to switch between servers in-game, but instead, host multiple Minecraft servers on the same machine while still using the default port. For example, you could host both a creative.server.com, and survival.server.com from the same device, and it’d forward the user to the correct server based on what URL they use to connect.

Later on, CraftProxy underwent two recode projects, CraftProxyLite and CraftProxyLiter. These rewrites improved performance and added features such as protocol compression.

Griefer YouTube

As with any multiplayer video game, Minecraft servers were vulnerable to griefing, primarily in the form of destroying terrain, builds, or killing players. Perhaps the most infamous of the griefers were Team Avolition, who uploaded their first Minecraft griefing video onto YouTube on the 9th of January 2011. They were most well known for finding servers from Reddit, and griefing or trolling with a custom cheat client. Team Avolition quickly gained a cult following amongst a section of the community and inspired a wave of griefing YouTube channels and cheat client developers. They also sparked a feud with Reddit and became infamous for repeatedly griefing the NerdNu series of servers.

The Early Bukkit Plugins

Right after Bukkit’s launch, plugin developers were hard at work on creating new Bukkit plugins. Most of the large hMod plugins were quickly ported, including all of the ones listed in this post. Many brand new plugins were also created at this time too.

On the 3rd of January 2011, the BigBrother project was started by Taylor Kelly. BigBrother, like LogBlock, was a plugin that logged block changes by players. BigBrother was the first block logging plugin to be available for Bukkit, with LogBlock following shortly after.

Nijikokun, the developer of iConomy, started work on a plugin to fill the void that the lack of general admin commands in Bukkit left in the community. The General plugin was then released on the 5th of January 2011. On the 19th of January 2011, Zenexer started another project under the name of GeneReal, a spoof of the name General. This then sparked a public argument between Nijikokun and Zenexer on the GeneReal forum thread. Shortly after, the General plugin was abandoned, and GeneReal was renamed to Essentials.

The MinecartMania plugin started development on the 13th of January 2011, led by Afforess. MinecartMania aimed to expand upon what Minecarts could do within Minecraft. While MinecartMania itself only added a few features, it relied heavily upon extensions to the base plugin that added anything from automated Minecart spawners to automatic farming with Minecarts. MinecartMania gained quick popularity, as the highly popular Minecart features of CraftBook would not be updated to Bukkit for a short while after MinecartMania was released.

On the 12th of February 2011, Acrobat released the iConomyChestShop plugin. While initially only supporting iConomy, this plugin allowed players to sell and buy items using in-game currency by clicking a sign on a chest. This concept is commonplace on servers now but was novel at the time. The plugin was later renamed to ChestShop once it gained support for other economy plugins after the release of Vault.

On the 14th of February 2011, Acru released the Lockette plugin. Lockette was similar to LWC in functionality but had a crucial difference in that it used signs for protecting blocks, rather than commands and a database. This difference was a big deal to many server owners, due to the simplicity of not requiring a database.

The DynamicMarket project was started on the 21st of February 2011 by HaloInverse and was the first shop plugin that adjusted the price of items based on supply and demand. This plugin has a very different concept to most of the shop plugins at the time and helped start a few of the first economy servers. However, this idea has not been profoundly popular since.

The first permissions plugin for Bukkit started development on the 22nd of February 2011; created by Nijikokun and aptly called Permissions. This plugin aimed to bring a re-imagined version of hMod’s permission system to Bukkit. Permissions was a dominant player in the permission plugin space for a large portion of the early days of Bukkit.

Also on the 22nd of February, Simon Rigby started work on the MultiVerse project. MultiVerse allowed servers to have multiple worlds that players could travel between using commands. This project sparked a trend in the server community where servers would have secondary worlds, usually for mining or events. MultiVerse eventually had add-on plugins released, such as MultiVerse-Portals that allowed construction of physical portals that the player could walk through, similar to nether portals.

Unhappy with the current state of command plugins, sk89q started work on his own. On the 1st of March 2011, the CommandBook project started development. CommandBook had a focus on usability and strayed away from many of the less command-based systems that Essentials had. CommandBook was the first plugin ever to allow selectors such as #near to refer to nearby players or natural language such as 3am to refer to a Minecraft time. Like his other plugins, he also made CommandBook depend on WorldEdit, which had started to take on the form of a mini API.

On the 18th of April 2011, t3hk0d3 started work on another permissions plugin known as PermissionsEx. The introduction of a second permissions plugin caused turbulence in the Bukkit community, as most plugins only supported Nijikokun’s Permissions plugin. sk89q created a system known as WEPIF (WorldEdit Permissions Interoperability Framework) to handle the existence of multiple permissions plugins, but it never gained widespread usage outside of his plugins. The original PermissionsEx would continue to be maintained until 2017, and later zml2008 would begin a rewrite of PermissionsEx.

On the 1st of June, work on the MCBans service was started by firestar. MCBans was a game-changer for server admins, allowing a global ban list to be created for problematic players. MCBans allowed servers to prevent any player who had received a certain number of bans from joining their server, and also let admins look up whether individual players had been banned in the past. MCBans was not the only service to offer this; the MCAdmin server wrapper had this feature as well. However, MCAdmin was surrounded by controversy. Griefing teams, such as Team Avolition, were exploiting the MCAdmin bans system to ban admins before going on to grief servers, and Doridian made himself unbannable after a similar issue. MCAdmin was not well trusted, but MCBans alleviated most of these concerns by being open source and having a system that was less trivial to abuse.

Due to more and more economy, permissions, and chat plugins releasing, cerealcable started work on a plugin that made it significantly easier for other plugins to support any economy, permissions, or chat plugin. From this, the Vault project formed on the 28th of June. Vault is still widely used to this day and supports almost every major plugin.

ElgarL started the Bukkit version of the Towny project on July 18th 2011. It was initially released for hMod by Shadeness, but little information is available for that release. Towny was a plugin that allowed players to create and run towns, as well as go to war with other towns.

On the 14th of August 2011, the Buycraft service launched. Buycraft made it easy for server admins to charge real money for in-game content, such as access to plugins, chat perks, or in-game currency. The introduction of monetisation on Minecraft servers massively shifted the server landscape, making it now possible for server admins to profit off of the servers they ran. Since then, the Buycraft service has been renamed to Tebex. The Bukkit plugin was now known as BuycraftX, paying homage to the historical roots of the service as well as marking a new era of the plugin rewrite by Tux.

Server Lists

In early 2011, websites that provided a list of Minecraft servers started showing up and gaining popularity. Prior to this, servers were generally listed on Reddit or the Minecraft Forums. In early January of 2011, a server list known as MineStatus.net launched, making it the oldest Minecraft server list that is still running today. Other server lists such as minecraft-server-list.com and MinecraftServers.org followed shortly after. Initially, the list order was obtained by player votes for each server, but over time more methods of increasing the rating, such as paid slots, were added. Paid slots were initially released on minestatus.net on the 10th of July 2011. For the longest time, server lists were the most common place to find a Minecraft server.

Minestatus.net would create two plugins that would set an example for how server lists would operate. One of these, Votifier, was launched on the 19th of June 2011, sparking a massive shift in the way servers would bring in players. Votifier allowed servers to incentivise players voting for them on server lists, which became common practice throughout the entire community for years to come. While the rewards players received from voting have changed significantly over time, rewarding votes is still seen across most servers today. The plugin was maintained by the original authors until 2015. Today most servers use NuVotifier, a fork of the original Votifier started by Ichbinjoe and Tux that adds vote forwarding, support for Sponge, BungeeCord, and Velocity, and an improved protocol.

minestatus.net also created another piece of foundational software for the server space, MineQuery. MineQuery allowed external services such as websites to get information about a Minecraft server, such as whether it is online and what players are currently playing. MineQuery later became redundant with the introduction of the query protocol to Minecraft 1.0, and the server list ping packet to Minecraft 1.3.

Economy Servers

With numerous plugins releasing that allowed further possibilities around an in-game currency, servers were popping up that took the current “Survival+” game style and added an economy. Generally, these servers would be survival servers with plugins such as CraftBook or MinecartMania to change up the gameplay, with an added dash of capitalism. Many of these servers also had a town system, such as with the plugin Towny. Players would earn enough money to build a town by working in other towns or selling things they gathered and then employ newer players to do various tasks.

This game style was similar to others that emerged around the same time, such as the Prison game style, which also made heavy use of an economic system. Prison forced players to mine in various “cell block” themed mines, and then sell their resources to level up to the next rank.

The largest and longest-running Economy server was EcoCityCraft, which was launched on the 4th of April 2011 and is still running to this day. This server heavily influenced the economy game style.

BukkitContrib

Afforess started the BukkitContrib project on the 1st of May 2011. BukkitContrib was an extension to Bukkit that could be installed as a plugin, that allowed plugin developers to create things beyond the limits of Bukkit. BukkitContrib also published a client mod, that when used would let plugins do things that generally would require mods. Plugins written with BukkitContrib could add new sounds, GUIs, and even give the impression of extra items and blocks using textures. None of these required installing any client mods beyond BukkitContrib, which was sent data from plugins by the servers that the player joined. A plugin that shows off what BukkitContrib was capable of is Sprout, which allows adding infinitely more crops to Minecraft.

On the 1st of August 2011, BukkitContrib relaunched as Spoutcraft due to Bukkit cracking down on the usage of the Bukkit name in other projects. Soon after, sk89q and lahwran planned to make a competitor to Spoutcraft. Designs were made for various systems, but the project never went anywhere. A few of the designed systems ended up making their way into the WorldEdit API.

Return of the Lightstone

SpaceManiac started work on continuing Lightstone on the 4th of June 2011, with plans to implement the Bukkit API. The project was named Glowstone, due to it being the new name for the Lightstone block. Glowstone continued the goal of achieving a server without any Mojang code, and the project is still alive today.

A few months after the Glowstone project started up again, the Spoutcraft team abandoned Spoutcraft in favour of writing a custom server implementation based on Glowstone. The team then rebranded again as Spout and forked Glowstone. Spout also had its own rewritten game client as well, and a plugin for the Spout server called Vanilla that allowed Minecraft clients to connect. The project never gained feature parity with Spoutcraft and was abandoned towards the end of 2013.

Later in the year, on the 4th of October, the Cuberite project was started. Like Glowstone, Cuberite is also still around today. The goal of Cuberite was to offer a very high-performance game server, using a custom-written server in C++. Cuberite specialises in minigames and has an API of its own.

MinecraftForge

On July 12th 2011, SpaceToad started the MinecraftForge project. Minecraft Forge was a spiritual successor to Risugami’s Modloader and SDK’s ModloaderMP, allowing mods to easily be written and loaded on both the server and client. MinecraftForge became the go-to platform for running a server that used mods that added content such as blocks, items, or mobs. While it did not support Bukkit plugins, the modded Minecraft community had very different needs, making this less of a problem. MinecraftForge is still around today, run by LexManos and the rest of the MinecraftForge team.

Bukkit Matures

As the Bukkit project grew throughout 2011, a few issues had started to creep up. Permissions management in the Bukkit ecosystem was non-ideal, and the forums were outgrowing their usefulness as a place to download plugins.

Dinnerbone proposed a solution, a system in Bukkit for permissions that was colloquially known as SuperPerms. Not wanting to break the community-made permission plugins, the Bukkit permission system instead did what Vault had done, providing an official way for plugins to ask the installed permission plugin whether a player had a permission node. This system, while widely used for permission checking now, was imperfect compared to Vault. Dinnerbone did not believe that plugins needed access to which groups a player was in, and instead suggested to use a group.GroupName permission node. Due to this decision being disagreed with by many permission plugin designers, plugins that relied on group names had to continue using Vault. Both Vault and WEPIF were updated to support the new system and kept around for the following years.

As part of the SuperPerms launch, SpaceManiac also launched a new permissions plugin that implemented SuperPerms as an example. The new plugin, PermissionsBukkit, was started on the 2nd of July 2011 and launched on the 17th of July alongside SuperPerms inclusion in Bukkit.

The Bukkit team still had to fix the growing problem with the plugin releases section of the forums, especially as their Fill plugin repository was nowhere to be seen. After discussing a partnership with Curse, the Bukkit team announced the launch of BukkitDev on the 25th of August 2011. Initial reactions were mixed, many were positive about the capabilities of the new system, while others were reluctant to try something new. A few fears were raised regarding how Curse has treated other Minecraft community sites, as well as how the bukkit.org domain name was registered to Curse. Over time, all active plugins migrated over from the Bukkit forums to BukkitDev, and the plugin releases section of the forums was locked.

2012 - The introduction of Forks and Other Cutlery

Admincraft

On the 12th of January 2012, /u/theheyway created a new Minecraft community subreddit, /r/admincraft. The subreddit existed to discuss all things Minecraft server admin related, from how to run a server, to the discussion of plugin development. The admincraft community has since grown also to include a Discord and is one of the most widely known server administrator communities.

Shotbow Network

The Shotbow Minecraft server network was formed during February 2012 and is recognised as the oldest Minecraft server network. Not only did Shotbow first introduce the concept of a centralised hub server that let players join minigames, but they also created the popular MineZ minigame. MineZ, based on the DayZ mod for Arma 2, quickly became one of the most popular Minecraft game modes of all time, even getting recognition outside of the Minecraft multiplayer community.

Bukkit x Mojang

In late 2011, the Bukkit team was invited to Mojang for discussions around the future of Minecraft modding. Little was known about what was explicitly discussed at this time. On the 28th of February 2012, EvilSeph made a post to the Bukkit forums in which he explained that the Bukkit team had been hired by Mojang to work on the modding API. Dinnerbone provided a thorough FAQ where he reassured the community that Bukkit was not going anywhere and that Bukkit plugins would be mostly compatible with the future Minecraft modding API. While the modding API never happened, the addition of the Bukkit team to Mojang significantly influenced the direction of the game. Contributions made by the team, especially some of the internal technical changes by Grum, are part of the reason that the game is so different now than it was in 2012.

Following the Bukkit team’s hire by Mojang, Bukkit brought on a few new developers. On the 31st of March 2012, fieldmaster and Wolverness were brought onto the team. A few weeks later on the 24th of April Amaranth joined as well, with mbaxter and evilmidget38 to follow after that.

Increments and Decrements of CraftBukkit

In May of 2012, the Bukkit team was having trouble keeping modified versions of CraftBukkit out of the forums. Afforess, working on behalf of HeroCraft, started work on a modified version of CraftBukkit that aimed to improve server performance significantly. This fork, known as CraftBukkit++ and released on the Spout forums, introduced some of the significant performance improvements that are seen in Spigot and Paper today. These features were initially being trialled for inclusion within CraftBukkit itself, in a private version of the Bukkit-Bleeding project, however, were ultimately scrapped due to making slight changes to vanilla Minecraft behaviour. After this point, the Bukkit team opted to remain faithful to vanilla behaviour rather than implement performance improvements.

Very shortly after CraftBukkit++ was released, the project was abandoned. EcoCityCraft wanted to keep the project alive and had md_5 and a few of their other developers work on a continuation of CraftBukkit++. A new project was then released, under the name CraftBukkit--, chosen as a parody of CraftBukkit++. Unlike CraftBukkit++, this project had longevity. An attempt was also made to turn CraftBukkit-- into a Bukkit plugin. While some work had been done, the project was ultimately scrapped due to difficulties with making certain changes. md_5 has also planned to create a custom server similar to Glowstone that implemented Workbench known as Fondue, the running title for Mojang’s official modding API. As Workbench never materialised, neither did md_5’s project.

New Plugin

On the 2nd of June 2012, ZachBora released PlotMe. PlotMe was the first significant plot world generator plugin, inspiring what is now the basis of almost all creative servers. Initially, plot worlds found their use as protected building space in other game modes, such as prison.

Proxy Time

md_5 and Codename_B set out to work on a new proxy software for the Minecraft server. There was a growing demand for chaining multiple servers together, which existing proxies like CraftProxy were not directly capable of doing. In August 2012, the projects RubberBand and RubberBukkit were released. RubberBand, named by Codename_B as it flings you between servers, was a proxy with rudimentary support for chaining multiple servers together. It had a fatal flaw; it required using a modified version of CraftBukkit known as RubberBukkit to work.

md_5 started work on building software around RubberBand and created a suite of software known as the Elastic Server Suite. At the same time, he began work on a follow-up to the RubberBand proxy to address some of the main issues in the software. On the 4th of October 2012, the BungeeCord project started. BungeeCord was a successor to RubberBand and a part of the Elastic Server Suite. BungeeCord was faster, had a plugin API, and didn’t require a modified version of CraftBukkit to work. BungeeCord was the first significant public server proxy that allowed combining individual servers into a single Minecraft network and is still used to this day.

2013 - Rise of the Network

Spigot

On the 15th of January 2013, md_5 rebranded the CraftBukkit-- project as Spigot. The Spigot project, while still partnered with EcoCityCraft, was no longer a project developed by EcoCityCraft. As Spigot started cementing themselves as a real Bukkit alternative, the community began to become split between the Bukkit and Spigot forums. Spigot added a resources subsection to their forums, to allow Spigot-only plugins to be released due to new BukkitDev rules against Spigot-only plugins. Since launch, Spigot has remained a major player in the server software space.

Super Networks

Mineplex was a server network that launched on the 24th of January 2013. It was the first “super-network”, hitting a record of over 34 thousand simultaneous players with an average of over 10 thousand concurrent players. Gaining initial popularity from videos made by CaptainSparklez, the server went on to set a Guinness World Record for the player count. Mineplex’s popularity started to dwindle later on and has now become a predominantly Minecraft Bedrock Edition server network due to a partnership with Mojang.

On the 13th of April, the Hypixel server network launched. Hypixel grew beyond the size of Mineplex, and is the definite champion of Minecraft server networks, averaging over 100 thousand concurrent players. Unlike Mineplex, however, Hypixel is only available on Minecraft Java Edition. Hypixel has 4 Guinness World Records, including the one that was previously held by Mineplex.

Proxy Developments

Keeping permissions synchronised across multiple servers in a network started to become a more significant problem, leading to a plugin known as BungeePerms to be developed on the 3rd of April 2013 by weaondara. BungeePerms allowed multiple servers on a network to share permission setups, a feature which has since been adopted into other plugins such as LuckPerms.

On the 20th of April 2013, Coelho started the LilyPad project, providing an alternate proxy to BungeeCord. LilyPad aimed to provide a more straightforward plugin API while using significantly fewer resources than BungeeCord and was eventually also ported to the Go language to further improve performance.

Led by a network known as The Chunk, the RedisBungee project started on the 29th of September 2013. RedisBungee was the first public project that allowed combining multiple Minecraft proxies. Similar to Minecraft servers, proxies also have limitations in the number of players they support. Due to this, scaling the number of proxies in use became a common practice on larger networks.

2014 - Bukkit is dead, long live Sponge...Spigot?

On the 16th of April 2014, Spigot launched a section of their resources page that allowed developers to charge for plugins. This decision was highly divisive within the Minecraft community, with many being firmly for or against it. Shortly after, MCMarket.org launched on the 30th of July. Unlike Spigot Resources, MCMarket was home to all kinds of transactions. It became common to see people trading worlds, plugins, or even entire servers. MCMarket also allowed players to trade Minecraft accounts, contrary to the terms of use for the game.

Prior to these marketplaces, the most common form of making money in the server scene was to create custom plugins or worlds for servers in exchange for money. This system opened up the ability to publicly sell plugins, for better or for worse. This development also led to the creation of a few Minecraft piracy websites, that have been riddled with controversy. There have also been many controversial implementations of DRM by plugin developers.

PaperSpigot

The PaperSpigot project was started by gsand and Z750 on the 23rd of June 2014. While initially created for fun, the project became more serious after Spigot became reluctant to accept many community contributions. To separate themselves from Spigot they later rebranded as Paper. Paper worked on including significant performance improvements into the Minecraft server, going far beyond that of Spigot.

EngineHub

On the 5th of July 2014, sk89q created an organisation known as EngineHub. All of his plugins and libraries were transferred to EngineHub. This included WorldEdit, WorldGuard, CraftBook, CommandBook, and more. As sk89q had not been the only one working on these plugins for a majority of their existence, this allowed sk89q to step back from the projects. EngineHub software is now mainly developed by Me4502, octylFractal, and wizjany.

The Death of Bukkit

On the 21st of August 2014, EvilSeph announced that the Bukkit project was shutting down. He cited reasons such as the legal grey area that the project was in, and that the API was old and incompatible with the future of Minecraft. Shortly after, Mojang announced that they had owned the Bukkit project since the Bukkit team was hired in 2012. This was a shock to the community, leaving many long-time Bukkit contributors feeling betrayed as this was never made public. Dinnerbone and Grum announced that they would be updating the Bukkit project while reiterating that Bukkit would not be the official modding API.

On the 5th of September 2014, GitHub received a DMCA claim over the CraftBukkit project and all forks that contained changes beyond the 25th of January 2012. Due to this, CraftBukkit, Spigot, and all related projects were taken down from GitHub. Due to this takedown, Dinnerbone and Grum were unable to update Bukkit as there were legal implications of doing so. At this point, the Bukkit project was officially dead.

From the Ashes, #nextstep rises

Amid the panic, many key members of the Minecraft community got together to discuss what should happen now that Bukkit is gone. A plan and time were set for the meeting, and a document distributed to the community. The discussions took place between the 5th and 7th of September and eventually led to a new project forming with the name Sponge. The project leads for the Sponge project were Blood, Zidane, and sk89q.

Initial goals for the Sponge API were to build a modern API that was more in line with the way Minecraft worked at the time compared to Bukkit, which was very much showing its age by this stage. Sponge was to be implemented on top of Forge and would allow plugins to work alongside mods natively. On the 7th of September 2014, the first commit to the Sponge API was made. Sponge’s API, while similar to Bukkit in some ways and very different in others, very quickly became more powerful than Bukkit. Borrowing heavily from Spout, WorldEdit, and WorldGuard, the Sponge API was a real community project. While the API came quickly, the actual server software was not ready for some time.

Alongside development on the Sponge API, another group started work on the MythicAPI on the 8th of September 2014. The API did not last long, and eventually became an implementation of the Sponge API on a vanilla server, similar to what CraftBukkit was. This project then became Granite.

On the 28th of November 2014, Spigot released a 1.8 version of CraftBukkit and Spigot. This release was the first time that the Spigot team had updated CraftBukkit themselves and marked a shift away that led to Spigot gaining market dominance as the de facto implementation of Bukkit.

2015 to 2017 - The Era of Stagnation

Essentials reborn

During the DMCA debacle, the Essentials project had been abandoned for Bukkit. There had been plans for Me4502 to continue the Essentials project for Sponge; however, due to other projects taking priority and the release of other command plugins for Sponge, this never happened. On the 15th of April 2015 however, drtshock started the EssentialsX project, a continuation of Essentials for Bukkit. EssentialsX quickly filled the void Essentials left and became almost as commonly used.

SpongeVanilla

In early 2015, the Granite project continued to grow and gained many followers from within Sponge staff. After many discussions between the Sponge team and the Granite team, it was decided to bring Granite into the Sponge ecosystem, and rebrand it SpongeVanilla. On the 21st of April 2015, Granite’s codebase had officially become SpongeVanilla. To make SpongeVanilla and SpongeForge more similar, they were set up to share a majority codebase under the name SpongeCommon.

DragonProxy

DragonProxy was an early attempt by DefinitelyEvil to allow players of Minecraft Bedrock Edition to connect to Minecraft Java Edition multiplayer servers. The project was officially started on the 11th of December 2015. While the project worked, numerous issues prevented it from being used on any serious server.

Waterfall

Due to some disagreements and issues surrounding the BungeeCord project, a fork was made by minecrafter on the 25th of January 2016. Waterfall aimed to improve stability and performance, improve compatibility with non-Spigot servers, and be more open to community contributions.

EULA Enforcement

Around the 24th of February 2016, Mojang started to enforce the game’s End User License Agreement on servers that allowed users to purchase anything that impacted gameplay. Any server that did not comply with the EULA risked being blacklisted by Mojang, preventing the Minecraft client from connecting. This was major in the server community at the time, as almost all servers were breaking the EULA. Most server owners slowly changed their stores to comply with the EULA, while a few others used workarounds to prevent themselves from being blacklisted. Overall, this majorly changed how profitable running a Minecraft server could be.

The Combat Update and Protocol Compatibility

Minecraft 1.9 was released on the 29th of February 2016. This release, also known as “The Combat Update”, was the first update to create a significant divide in the community. A vocal minority of players rejected the changes to combat and preferred to stay on Minecraft 1.8.

At the same time, FormallyMyles began development on a plugin known as ViaVersion. ViaVersion allowed newer versions of Minecraft to connect to a server, which was necessary due to servers not being able to update to new Minecraft versions on day one. ViaVersion allowed players using the latest version to still play on a server up until the point it could properly be updated.

Due to the dislike of Minecraft 1.9, some servers decided that they would continue using ViaVersion for the considerable future, rather than ever updating. To this day, there are still some PvP-oriented servers that have not updated past Minecraft 1.8.

LuckPerms

On the 21st of May 2016, lucko started the LuckPerms project. LuckPerms was a new permissions plugin that developed on many of the learnings over the years and supported multiple platforms. It could be installed on Bukkit, Sponge, and even BungeeCord. LuckPerms also had a web user interface to set up permissions. To this day, LuckPerms is used by a vast majority of servers due to ease of use and versatility.

2018 to 2020 - The Era of Change

Minecraft 1.13, The Flattening

Minecraft 1.13 released on the 18th of July 2018. Similar to Minecraft 1.9, this update was highly divisive. Rewrites happened to many core parts of the game, and all block and item IDs changed, creating significant obstacles when updating plugins and servers. On top of this, server performance had decreased substantially. Unlike Minecraft 1.9, this divide in the community was caused by server admins rather than players. To this day, some servers are still on Minecraft 1.12.

Velocity and Waterfall

Frustrated by how limited Waterfall was due to the need to retain BungeeCord compatibility, Tux, the original creator of Waterfall, decided to create a new proxy project. On the 24th of July, development for Velocity started. Velocity aimed to avoid the pitfalls that BungeeCord had and provide an improved API along with better performance. After Velocity launched, Tux transferred the Waterfall project to Paper on the 29th of September, allowing them to maintain it.

Fabric

Towards the end of 2018, the Fabric project officially started. Built to fill the gap left by Forge’s slow update, Fabric aimed to be a much simpler mod loader akin to Risugami’s Modloader from the early days of modding. Due to its simplicity, Fabric has been used for many smaller Minecraft servers that don’t need software as complex as Spigot or Paper, or for servers that want to support Minecraft snapshot releases. Fabric is also a very community-orientated process, using community tools like Sponge’s Mixin framework.

Bedrock Compatibility, Take Two

Due to issues surrounding DragonProxy, a rewrite was started. The goal of the rewrite was to support the Bedrock protocol more straightforwardly, making it easier to maintain and achieve feature parity. This project started on the 10th of October 2018, led by Luukey.

Almost a year later, another proxy project known as GeyserMC started. GeyserMC started on the 9th of July 2019 and was developed by RednedEpic. The project eventually went on to absorb DragonProxy and became the community standard for Bedrock compatibility proxies. While it works very well, there are still some minor issues due to the way Bedrock and Java behave differently.

Official Obfuscation Mappings

In an attempt to make modding easier, Mojang announced on the 4th of September 2019 that they would be releasing official obfuscation mappings alongside Minecraft releases from now on. This release allows modders to know what each part of the Minecraft codebase does. However, due to unclear legal terms surrounding the releases, this is currently only useful for personal use or reference purposes. Releasing a project that uses these mappings is in a legal grey area. In theory, once all legal issues are resolved, projects such as Yarn (Fabric) and MCP (Forge) would no longer need to create their own mappings.

Revised Commercial Usage Guidelines

On the 17th of April 2020, Mojang revised the commercial usage guidelines of the game to allow servers to monetise more than just cosmetic changes. This change partially reverts the restrictions added when enforcement of the EULA commenced. The new restrictions allow selling packages that impact gameplay, as long as they do not give the player a “competitive gameplay advantage”.

The future?

Predicting the future is hard, but I’ll give it a shot anyway. I feel that the Paper project, which is already gaining a majority user base, will soon become the de facto Bukkit implementation and therefore have control over API additions. Once this happens, I feel that there will be a strong push to modernise the API.

I feel that Minecraft Bedrock Edition and Java Edition will continue to gain feature parity, with a potential protocol merge, allowing players to play on the servers of either platform natively. Bedrock Edition is growing much faster than Java Edition, so if this does not happen Java Edition servers will struggle to keep a player base.

Overall, I feel that Minecraft will live for another decade with a new generation of players. I just hope Minecraft Java Edition stays along for the ride.

Contributors and Afterword

I'd like to massively thank every single person who helped me with this document. This project was a community effort, and I couldn’t have finished it without you all. Here is a list of everyone who has worked on this project:

Me4502, kashike, KennyTV, zml, Inscrutable, mdcfe, Aurora, Tux, Garanthor, Myokan, Glare, stifflered, mbaxter, DemonWav

Special thanks to kashike for letting me co-opt a channel in the Kyori discord while writing this.

The Minecraft server community has been a large part of my life for the past decade, and this was part of my way of giving back. Throughout this project, I learnt so much about the various people who have made the community what it is today, and I hope this article helps share their contributions with the Minecraft community of the future.

Share this with others!
Post Tags

Other Posts

Should you use Large Plugins or Multiple Small Plugins?

Posted on July 11, 2020

There is a lot of controversy around large plugins being worse than multiple small plugins, but is it true?

Updating WorldGuard to Minecraft 1.13

Posted on August 10, 2018

Updating WorldGuard to 1.13 has been a complicated process, however not as time-consuming as WorldEdit.

How to use WorldEdit with Modded Blocks

Posted on May 09, 2020

Using WorldEdit with blocks added by mods on versions of Minecraft before 1.13 can be confusing, but there are a few ways to make it simple