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.

What is a "Hard Fork"

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. 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.

What are the benefits?

Update Speed

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 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.

Improving the API

Paper currently uses an extended version of the Bukkit API, which Spigot maintains. As Paper extends Spigot, it maintains compatibility with all Spigot plugins. Not only that but even Spigot plugins that developers wrote over five years ago. 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.

Using Mojang Mappings

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.

Addressing Concerns

Will it break all my plugins?

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.

Where will I publish and download plugins?

Spigot resources currently do not allow plugins that only support Paper, so this is a valid concern. Paper is working on a plugin site known as Hangar, which would likely be available well before a hard fork occurs. Alternatively, there's also BukkitDev, which many large plugins such as WorldEdit already use.

What if I want to keep using Spigot?

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. While over time, a Paper hard fork would make it harder to use Spigot, there are already numerous growing reasons not to use Spigot over Paper.

What if I use a fork of Paper such as Tuinity?

It's hard to tell what would happen to these projects at this stage, as it's entirely up to them. They'll most likely inherit any changes Paper makes. They are based on Paper and would likely continue to be.

Conclusion

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.

Want to help me write more posts like this? Check out my Patreon!