You may have heard rumblings in the community about a Paper "hard fork". This article covers what it is and what it means for Paper and the wider Minecraft server community. And no, it's not an eco-friendly, durable, and disposable cutlery set.
In the software world, a fork is software that inherits and modifies another piece of software. Generally, a fork will keep up to date with the upstream project. On the other hand, a hard fork refers to a fork that no longer keeps up with the upstream project. They take the code from that point in time, and entirely diverge the projects and take it in their own direction from that point forward. There have been a few highly notable hard forks in the past, such as the Ethereum project. In this case, Paper is a fork of Spigot. A "hard fork" in Paper would mean detaching itself from Spigot. This change would mean Paper is its own project and must update both the API and the server itself.
Paper takes a bit of time to update to new Minecraft versions because the team can't start until Spigot is updated. Spigot won't release an update until after the version is out, creating delays of up to a week before Paper is out for a new version. If Paper were to split from Spigot, they would handle their update process. This change would allow them to start the update process before Spigot is released, leading to much faster initial releases. The reason Spigot can update so quickly is they start the update during the pre-release phase, which Paper cannot currently do.
Paper having complete control of their update process would also allow them to release updates for snapshot versions of Minecraft theoretically. Of course, there's no guarantee they'd do this, but they or other members of the community would be capable of it. Paper has a much more open and community-orientated update process than Spigot, so anyone can do it.
Paper currently uses an extended version of the Bukkit API, which Spigot maintains. As Paper extends Spigot, it maintains compatibility with all Spigot plugins. This requirement limits the team's ability to improve the Bukkit API, which would allow plugins to do more with better performance. While Paper has added some new features to the API, such as new events and support for the Kyori Adventure library, they can't modify any existing APIs due to compatibility. Removing this requirement would allow Paper to modernise the Bukkit API, which is fundamentally incompatible with modern versions of Minecraft in many ways.
When developers are working on Spigot or Paper, or writing plugins that utilise NMS, they're working with a reasonably obfuscated version of the code. This obfuscation means the code is hard to both read and understand. A Paper hard fork would allow the team to switch to the official Mojang mappings for Minecraft, allowing developers to more quickly and easily write code. Forge is also using this in the future, with Fabric providing support in Yarn. This cohesion majorly increases cross-project compatibility and ease of sharing patches.
Not at first. When and if the hard fork happens, Paper wouldn't suddenly become entirely different. Over time as the team makes changes, it's possible more, and more Spigot plugins will break. However, most plugins already recommend using Paper over Spigot, and Paper has a much wider community. Due to this, it's more likely that plugins would break on Spigot rather than break on Paper. In general, if Paper do choose to break plugins, it’ll likely be for a very good reason and be overall beneficial to the plugin development ecosystem.
Spigot resources currently do not allow plugins that only support Paper, so this is a valid concern. Paper has released a site called Hangar, which is the perfect place to publish Paper-specific plugins. Alternatively, there's also BukkitDev/CurseForge, which many large plugins such as WorldEdit already use. A few newer unaffiliated sites such as Modrinth have also popped up over the past few years.
Spigot's userbase has been shrinking substantially over the past few years. While nothing is stopping you from using it, it's generally a pretty bad idea in the modern Minecraft server ecosystem. While over time, a Paper hard fork would make it harder to use Spigot if plugins do start to abandon the platform, there are already numerous growing reasons not to use Spigot over Paper.
While I cannot comment on any specific Paper fork, the most likely outcome is that they continue to exist as a Paper fork. While tooling used to develop Paper will likely change, it wouldn’t prevent forks of Paper from existing, and might even make them easier to develop.
The Paper hard fork is now closer than it’s ever been before, with tooling such as the Hangar project acting as a download hub for Paper-only plugins. The hard fork will occur alongside a major Minecraft update, likely with some pre-warning beforehand so that no one is caught off-guard. While it’s likely to be soon, Paper is a community project so all of the work required to pull this off does require key people to have free time to get this ready prior to a major update. Due to this, it’s impossible to definitively say it will be alongside one specific update at this stage.
In saying that, Paper is still improving everyday, with significantly improved new APIs, a new plugin system for Paper-only plugins, and sites like the before-mentioned Hangar. While the hard fork will provide the benefits this article outlines, most of these benefits are incremental changes that will happen both before and after the point the hard fork takes place. It’s a process, not a single point in time. And that process is well underway.
A Paper hard fork is an exciting albeit potentially scary change that may happen in the future. While change can always be difficult, keep in mind that the Paper team are a community project and are doing the best for the community. A hard fork will likely be a massive boost in the server admin space for years to come.