Paper vs Purpur: Which Server Software Fits?

Purpur is a fork of Paper with optional gameplay features in its own config file. Pick Paper for strict vanilla mechanics, Purpur for rideable mobs and extras.

Written by
Mihail Griniuc
Last updated
Checked against
Paper 1.21.11 and Purpur 1.21.11
Reading time
4 min

Short answer

Purpur is Paper plus opt-in gameplay features, all in purpur.yml. Run Paper if you want strict vanilla mechanics or maximum plugin compatibility; run Purpur if you want features like rideable mobs or world-specific mob caps without writing a plugin.

Every Purpur guide and support thread eventually reaches the same question: is Purpur just Paper, or something else? It is a fork of Paper, so it inherits all of Paper's performance work and plugin compatibility. What it adds is a configuration file of optional gameplay changes, each one off by default.

That makes the decision unusually reversible in both directions. Change the software, restart, and the same world and the same plugins are there. The real question is whether the extras are features you want or surprises you do not.

Paper and Purpur compared

AspectPaperPurpur
Code baseFork of SpigotFork of Paper
Plugin APIBukkit, Spigot, PaperSame, plus Purpur additions
Extra configurationNonepurpur.yml, all off by default
Gameplay by defaultVanillaVanilla
Optional featuresNone built inRideable mobs, per-world caps, gamerule overrides, and similar
World filesVanilla formatVanilla format, identical
Client download for playersNoneNone
Best forStrict vanilla with pluginsPaper plus a few opt-in conveniences

What Purpur adds on top of Paper

Purpur's additions are gameplay conveniences that would need a plugin on Paper: rideable mobs, per-world mob caps and gamerule overrides, players sleeping through the night regardless of who is in bed, one-player sleep in the Nether, the ability to disable specific gamerules such as fire spread or leaf decay, and a few smaller conveniences.

They all live in purpur.yml and the worlds: section beneath it. Purpur reads Paper's configuration as well, so your Paper settings carry over untouched.

purpur.yml (excerpt with defaults)
allowSleepingOutsideTimeZone: false
blocks:
  disable:
    lava: false
    fireTick: false
    grassSpread: false
    leafDecay: false
    meltIce: false
    moreBlockExplosion: false
   mob:
  map:
    bat:
      killAfterDays: 0
experience:
  join:
    players:
      - join-message-radius: 0

Where Purpur is the same as Paper

Same world format, same plugin APIs, same vanilla client, same performance work. Any Bukkit, Spigot or Paper plugin runs on Purpur without changes, because Purpur sits above the same API and adds nothing to the plugin surface that existing plugins must adapt to.

Purpur also reads Paper's configuration files as its own, so the tuning advice in the Paper settings guide applies unchanged: the files you edit are Paper's, and purpur.yml never overrides them. Precedence is simple. Paper settings decide how the server runs, Purpur settings decide which optional gameplay features are on.

Deciding what the extra features are worth

Some Purpur options save a plugin rather than a line of config. Per-world mob caps, for instance, replace a plugin that other players can grief or misconfigure. Disabling fire spread or leaf decay globally is a real operational choice, one that reduces unintended spread on a survival world, and it is the kind of thing a plugin exists to do badly.

The counterweight is that every enabled feature is a change players can notice and that you now have to remember. Keep the list short, keep it in the file where the next administrator will see it, and write in the file why each line is there.

The one real compatibility difference: plugins that assume Paper

A small number of plugins check the server brand string and refuse to run on anything but the software they name. When that happens the plugin logs an error at startup and disables itself, which looks like a Purpur bug and is not one.

Before choosing Purpur on the strength of one of its features, check the plugins you already run. A plugin ecosystem you rely on outweighs rideable mobs every time, and the check takes a minute per plugin.

in game or console, after a switch, to confirm the brand and plugin health
/version
/plugins

Choose on the requirement, not on the brand

If your server is for playing survival as vanilla intends, with a plugin or two for quality of life, Paper is the shorter answer. You keep one fewer configuration file and one fewer thing to explain to players who ask why mobs can ride horses.

If you already know you want a specific feature that would otherwise need a plugin, Purpur is one line instead of a dependency. Either way, back up before you switch, and keep the backup until you have played on the new software and confirmed that your plugin list loads cleanly.

Good to know

  • Purpur tracks Paper upstream closely, so a new Minecraft version arrives for both at about the same time.
  • Purpur features are per world. A creative build world can have them while the survival overworld stays strict.
  • Paper vs Spigot is the other comparison worth reading: Purpur is closer to Paper than to Spigot in both code and behaviour.
  • The Purpur install guide covers the download and first run for a server you host yourself.

Common questions

Is Purpur better than Paper?

Neither is better in general. Purpur is Paper plus optional gameplay features you enable yourself. Choose it if you want one of those features without writing or installing a plugin; choose Paper if you want the smallest surface area.

Will my Paper plugins work on Purpur?

Almost all of them. Purpur implements the same plugin APIs. The exceptions are plugins that check the server brand and refuse to start, so check the plugins you already depend on before switching.

Does Purpur change gameplay by default?

No. Every Purpur feature is off in the default purpur.yml. A server you have just switched behaves exactly like Paper until you change something.

Is Purpur slower than Paper?

There is no meaningful difference: Purpur inherits Paper's performance work and adds configuration rather than new tick work. If a Purpur server lags, the cause is in the world or plugins, and the lag guide applies unchanged.

Sources

Official documentation this guide was checked against.

Written and maintained by Mihail Griniuc. Last reviewed against Paper 1.21.11 and Purpur 1.21.11. Spotted a mistake or something out of date? Email [email protected].

Revision history
  • Rewritten around purpur.yml: what it adds, what it shares with Paper, and the brand-check compatibility caveat.

Rather not run this on your own machine? PufferHost gives every player a free Minecraft server with 3 GB of RAM and 10 slots. Create a free server.