If you’re a Minecraft server admin, chances are you’ve heard the term “Bukkit” get thrown around in reference to common server software such as Paper, Spigot, or even the historic CraftBukkit. So, what exactly is it, and how does it relate to that software?

Bukkit and CraftBukkit

Back in 2010, the Bukkit team created two projects, Bukkit and CraftBukkit. CraftBukkit was the server software you’d install to run a Minecraft server, and Bukkit was what developers would use to create plugins. Bukkit is what’s known as an API, or an “Application Programming Interface.” An API in this context is an interface to allow programmers to interact with an application. So to put it simply, Bukkit was what plugin developers would interact with in their plugins’ code in order to interface with the Minecraft server software. As CraftBukkit was written to load plugins written against Bukkit, it’s referred to as an implementation of Bukkit. If a plugin is written for Bukkit, there’s an expectation that it will run on all (correctly made) implementations of Bukkit.

But CraftBukkit is dead? What about Bukkit?

Even though CraftBukkit hasn’t existed for a long time at this point, the Spigot team have continued to maintain the Bukkit API. The main difference is that instead of CraftBukkit being the software released alongside it, Spigot is. This means that while Bukkit has changed hands, it fundamentally is still the same thing that it was beforehand. Bukkit is a simple way to refer to plugins that will work on servers that implement the Bukkit API.

Spigot API, Paper API?

While server software such as Paper, Spigot, etc all implement the Bukkit API, they also extend the Bukkit API further. Spigot also maintains the Spigot API alongside the Bukkit API, containing a few minor additions on top of Bukkit. Paper go a step further and extend the Spigot API considerably, adding many new features that plugins can make use of for servers that implement the Paper API.

If a plugin is referred to as a Spigot plugin or a Paper plugin, that implies it’ll only run on servers that implement the Spigot API (Spigot, Paper, and forks of Paper) or the Paper API (Paper and forks of Paper). In the future Paper plans to diverge from Spigot, allowing them to go in their own direction. At that point it’d be expected that Paper plugins become more common, and that Bukkit plugins might slowly stop working on Paper servers.

Conclusion

Bukkit is an API that has allowed creating plugins for Bukkit-based servers for well over a decade. While it isn’t server software, it refers to a class of server software that are all capable of running plugins made for Bukkit.

About the Author

Maddy Miller

Hi, I'm Maddy Miller, a Senior Software Engineer at Clipchamp at Microsoft. In my spare time I love writing articles, and I also develop the Minecraft mods WorldEdit, WorldGuard, and CraftBook. My opinions are my own and do not represent those of my employer in any capacity.