Paper vs. Purpur - What's better?


| By kennytv

Choosing which server software to use is not an easy task, thanks to countless different projects and forks. This guide will inform you about the main players in the Bukkit/Spigot/Paper ecosystem. It assumes Paper as the default, given Spigot has mostly fallen out of use for public servers. It's also worth noting that I'm a part of the PaperMC team, but I'll do my best at giving you a neutral and honest conclusion.

What is Paper?

Paper, made by the PaperMC organization, is a modified version of the Vanilla Minecraft server software. Paper includes API for plugins to use, as well as a large array of performance optimizations and bug/exploit fixes. With hundreds of API patches and over a thousand server patches with many contributors, Paper is by far the largest active project in the chain. It is also the project with the highest market share, as shown on bStats. Due to its size, larger changes generally take longer compared to smaller projects in order to guarantee a stable server and API.

The slightly longer story is that Paper was created by a group of Spigot contributors that were unhappy with the state of Spigot and went on to create their own fork of it. While many plugins still provide basic compatibility with Spigot, Paper has become the defacto base for most plugins and all Bukkit-based server software.

What is Purpur?

Purpur is a fork of Paper and thus includes all the features and optimizations that Paper has. Purpur's main selling point is its own large config. Purpur does not contain notable performance patches on its own, but pulls others from another fork, that being Pufferfish. It also includes a few API additions. At the time of writing, Purpur still regularly receives upstream updates as well as the occasional fix to its own features, but new feature additions are rare.

Purpur was initially created by a single disgruntled Paper contributor to bypass Paper's long queue of pull requests, but has since evolved to include any config option someone asked for at some point. While most of them would be possible through simple plugins using Paper's API, Purpur aims to provide them out of the box.

What is Pufferfish?

Like Purpur, Pufferfish is a fork of Paper. It adds various optimization patches to make the server run better, such as fast map rendering and on-demand entity brain ticking. Pufferfish updates have slowed down a lot, only occasionally receiving upstream updates. There's also a paid version of Pufferfish, being Pufferfish+, though I can't comment much on it given I don't have access to it and its distribution is limited.

What about other forks?

There are of course many many other forks of Paper, Purpur, and Pufferfish. Most of these will make performance their mission, though take some advice from someone that has to properly benchmark performance optimizations and carefully test bug fixes: Very often, these forks will contain questionable, or outright dangerous changes to the server that can result in anything from small issues to irreversible world corruption. You might not run into any issues for months, but there is a good chance that you will eventually, or that your players were already stumped by them without noticing what exactly happened.

More often than not, these forks are led by people that are new to such a project and simply want to enjoy the process of developing a server software. This is a great way to learn, but it's important to remember that, generally speaking, these forks are not suitable for production use.

Which server software is the best for you?

There is no universal answer, but here are some rough guidelines depending on your specific needs and priorities:

Performance

Paper as the base is already very optimized, and Purpur doesn't add any major performance patches on its own. Pufferfish includes additional optimizations that are generally considered safe, but might not be needed if you don't want to go beyond 100 concurrent players on any individual server.

Features

Purpur offers additional configuration options that are not available in Paper, but most of them can be achieved through plugins. It'll depend on whether you need any of their additional options and can't find an equivalent plugin.

Support and updates

Paper has the largest team and community out of the three, and thus receives the most updates and support. Purpur on the other hand is more likely to include your specific, small-scale feature request, but may take a few days to pull in Paper's changes. Pufferfish is the least active of the three. You will only receive support from the project that you are actually using, meaning the support of those forks, especially smaller ones, will be limited. Therefore, if you are just sarting out with Minecraft servers, Paper is generally the easiest default choice.

Conclusion

  • Use Paper if you want a stable, widely-used server software with strong community support and fast updates.
  • Use Purpur if you need any of its additional configuration options, but can sacrifice fast updates and direct support from PaperMC.
  • Use Pufferfish if your only goal is squeezing out additional performance at the expense of more deviation from Vanilla, keeping in mind its slow update cycle and limited support.
  • Be careful with other forks, especially if they advertise too-good-to-be-true performance, as they commonly include untested or unsafe changes.
Profile Picture

About the Author

I'm Nassim (or Kenny), a software developer working in and around the Minecraft server software in my free time. I'm also a member of the PaperMC team. I've spent years optimizing and building servers for countless players. Through my work, I want to help improve the Minecraft server ecosystem and provide a better experience for both players and developers.

You may also know me from the ViaVersion project, which allows players to connect to servers on different Minecraft versions.