Pufferfish and Purpur are two very popular Minecraft server jar options. In this article, we will discuss their pros and cons, and help you come to a conclusion on which is better for your server.
What is Pufferfish?
Pufferfish is a server jar that came on the market in November of 2021. This server jar is based on Paper, making it a Paper fork. Pufferfish aims to include a ton of performance improvements while remaining fully compatible with Paper. While Pufferfish does change some default vanilla behavior, it tries to stay as close to Paper as possible, while gaining a maximum performance advantage.
Pufferfish also includes a number of "enterprise" features that power users may find useful. It includes a rich Sentry.io integration that enables server owners to upload any errors produced by their server into Sentry's servers, where they can be analyzed later. It also includes a built-in profiler, called Flare, which is the only profiler for Minecraft servers that is capable of advanced features like memory profiling, at the time of writing.
For performance, Pufferfish includes partial asynchronous entity processing, faster map rendering using SIMD techniques, far faster entity brain ticking using a feature called DAB, optimized hoppers, memory efficiency improvements to reduce total garbage collection time, optimized raytracing algorithms, and many more features. Although the marjority of these features do not create any noticeable impact to gameplay, any feature that does modify gameplay is fully configurable using the
pufferfish.yml configuration file.
Pufferfish is, first and foremost, a performance fork of Paper, and does not include any features that intentionally change gameplay.
What is Purpur?
Purpur is a fork of Pufferfish, meaning that it includes all of Pufferfish's features by default. While purpur does not include any optimization patches of its own, it does include a number of "oddball" features that some users may find interesting or useful. Purpur includes features like flying squids and ridable mobs, for example. It has a configuration file with thousands of lines, where all of its hundreds of additional features can be configured. By default, all of these features are disabled and it behaves similar to Pufferfish.
It is important to note that using Purpur will not improve your performance any more than using Pufferfish. Because of its additional patches, it may also create a larger surface area for bugs, so issues may be more common. For this reason, we recommend only using Purpur if you wish to use its extra features. Otherwise, you should use the Pufferfish fork.
What about Pufferfish+?
Pufferfish+ is an even faster version of the Pufferfish software. This software adds additional performance patches, including a fully asynchronous entity tracker and asynchronous pathfinding. It also includes other proprietary patches, and in total, improves the performance of most servers using it by approximately 30-35%, over a standard configuration of Pufferfish. This fork comes in two variants. The first variant is the plain Pufferfish+ variant, which behaves exactly like the Pufferfish fork. The second variant is the Pufferfish+/Purpur variant, which includes all of Purpur's patches, as well as the super high-performance Pufferfish+ patches.
Pufferfish+ is a paid product, but it is available for free on all Pufferfish Host plans. Standalone licenses are also available, starting at a price of $50/month.
In conclusion, if you are looking for the best server jar for your server, choose Pufferfish if you want a regular, high performance server, Purpur if you want the extra features, and Pufferfish+ if you really want that extra boost, allowing you to handle even more players.