Paper, Spigot, Purpur or vanilla: which server software?
Paper is the default choice for most Minecraft servers. It runs hundreds of performance patches on top of Spigot, is noticeably steadier in TPS and chunk loading, and is fully compatible with existing Bukkit and Spigot plugins. Vanilla is for when you want exactly the behaviour Mojang builds and need no plugins; Purpur is a fork of Paper with extra configuration options that still runs every Paper plugin.
What does server software actually do?
The server software is the jar file your server runs. That program works out the world, keeps track of entities, loads chunks — the 16 by 16 block columns the world is stored in — and handles everything players do. Mojang supplies a vanilla server jar for this itself. Alongside it sits a family of forks that run the same world but wrap a plugin API around it and rewrite the heaviest pieces of code.
That family started at Bukkit and runs through Spigot to Paper, and from Paper on to Purpur, Pufferfish and Folia. Each step is a fork of the one before, so what you install decides which plugins work and how the server behaves. Plugins run purely server-side on otherwise vanilla mechanics: your players install nothing and connect with an ordinary client.
That is the immediate difference with mods. Forge, NeoForge, Fabric and Quilt load mods that genuinely add new blocks, items, mobs and dimensions, and those have to sit on the server and on every client in the same version. If you want to run Create, Cobblemon or All the Mods, you pick a mod loader rather than Paper, and follow the explanation of what a modpack is and how to install one.
What are the options and how do they differ?
| Software | Performance | Plugin support | Vanilla accuracy | Update speed |
|---|---|---|---|---|
| Vanilla | Baseline, no optimisations | No plugins | The reference point | Straight away on release day, snapshots included |
| Spigot | Better than vanilla, basic optimisations | Bukkit and Spigot plugins | High, with a few deviations | Follows Mojang, but slower than Paper |
| Paper | Hundreds of performance patches on top of Spigot, steadier TPS and chunk loading | Bukkit, Spigot and Paper | Deliberately deviates where that buys performance | Quickly after a new Minecraft release |
| Purpur | Same as Paper, plus whatever you switch off yourself | Everything that runs on Paper | Same as Paper, unless you enable its options | Follows Paper, so slightly later |
| Pufferfish | Same as Paper, tuned for heavily loaded servers | Everything that runs on Paper | Same as Paper | Follows Paper |
The key thing to spot: from Bukkit onwards, everything is compatible upwards. A plugin written for Bukkit works on Spigot, Paper, Purpur and Pufferfish.
Why is Paper the default choice for most servers?
Paper does three things well at once. First, performance: hundreds of patches on top of Spigot target exactly the places where a server loses the most time, such as entity processing and chunk loading. On identical hardware Paper keeps TPS — ticks per second, the server's heartbeat — noticeably steadier, especially during spikes: a group riding through unexplored terrain, or a farm filling up.
Second, compatibility. Paper is fully compatible with Bukkit and Spigot plugins, so your whole stack keeps working. EssentialsX for /home, /tpa and /warp, LuckPerms for permissions and ranks, CoreProtect for logging and rolling back griefing, WorldGuard or GriefPrevention for protection: it all runs on it. There is an overview of what you genuinely need in our article on the best Minecraft plugins.
Third, how tunable it is. Alongside server.properties you get configuration files where you set things like view distance, entity limits and spawn rules per world. Those are the dials you turn to keep a busy server calm; they underpin almost everything in our guide to optimising your Minecraft server. Do measure what is really costing you time with the spark plugin before you start adjusting anything.
When should you pick Purpur or Pufferfish?
Purpur is a fork of Paper that mainly adds extra configuration options, plus a set of optional features that are off by default. Think rideable mobs and adjustable mob AI. Everything that runs on Paper runs on Purpur: you do not have to replace a single plugin. So Purpur is worth a look if you want to tweak gameplay without players installing anything, or if you want to switch off behaviour Paper gives you no dial for.
The drawbacks are small but real. Purpur is a fork of a fork, so its updates arrive after Paper's. You also have more dials to set wrongly, and when you hit a bug every plugin developer will first ask whether you can reproduce it on Paper. If you run Purpur without using a single one of the extra options, you have added complexity and got nothing back for it.
In purpose, Pufferfish sits between Paper and Purpur: it aims at servers pushing up against their limits, without bringing along Purpur's gameplay options. A fine choice if you know exactly why you are reaching for it, but not the standard advice for a new server.
When is vanilla the better choice after all?
This deserves an honest answer. Paper gets part of its speed from changing vanilla behaviour. Some mechanics are simplified, cut short or timed differently because the exact vanilla implementation is expensive. On the vast majority of servers nobody notices. But if you build technical contraptions that lean on precise behaviour, a farm that works in singleplayer may behave differently on Paper, or not work at all. That is why purists, redstone players and technical communities run vanilla.
Vanilla is also the only option if you want to be on the very newest version straight away. Minecraft Java has used year-based version numbers since 2026: after the 1.21.x run came 26.1 "Tiny Takeover" in March 2026 and 26.2 "Chaos Cubed" in June 2026, while 26.3 — with the dappled forest biome among other things — is still in snapshots for the third quarter of 2026. Snapshots only run on vanilla; the forks follow later.
What you give up with vanilla is everything plugins do. No /home, no ranks, no claims, no rollback after griefing and no live web map. For a private world with friends who trust each other, that is no problem. For a public server it very much is.
What is Folia and do you need it?
Folia is experimental multithreaded Paper, built for very high player counts. It splits the world into regions that are processed in parallel. Two things to know before you consider it: it breaks most existing plugins, and it only helps if activity really is spread across the map. If everyone is sitting at spawn or on top of each other in the same dimension, it buys you nothing.
How do you move from vanilla or Spigot to Paper?
The switch takes a few minutes and is reversible as long as you have a backup: Paper reads the same world files and plugin folder, so you are not starting over.
- Make a full backup of the world, the plugin folder and your configuration files.
- Shut the server down cleanly with
stopin the console, not with a hard kill. - Download the Paper build that matches your exact Minecraft version. If you run 1.21, do not grab a jar for a different version.
- Replace the server file and point the start command at the new jar. With us that step happens in the Pterodactyl panel included with every Minecraft hosting plan at MC-Node.
- Start up once and let the server create the new configuration files. Read the console from top to bottom and watch for plugins that fail to load.
- Test with a handful of players, then measure for a few days with spark before you start turning any dials.
If you later decide to go back, use that backup rather than pulling files out by hand.
Which software suits which type of server?
- Survival with friends, using plugins: Paper. Simple, fast, and everything works.
- Public server with ranks, claims and an economy: Paper, with LuckPerms, EssentialsX, CoreProtect and GriefPrevention on top.
- Minigames or a network behind a proxy: Paper on the game servers.
- Bedrock players joining in: Paper with Geyser and Floodgate, so one server serves both editions.
- Custom gameplay without players installing anything: Purpur, to switch on the extra options and features.
- A server demonstrably hitting its limit: Pufferfish, after measuring with spark.
- Technical or redstone community, or running snapshots: vanilla, and accept that plugins fall away.
- Modpacks such as All the Mods 10 or Cobblemon: none of these. That calls for NeoForge, Forge or Fabric.
Frequently asked questions
Will my Spigot plugins work on Paper? Yes. Paper is fully compatible with Bukkit and Spigot plugins, so EssentialsX, LuckPerms, WorldEdit, WorldGuard and CoreProtect work without modification. It does not work the other way round: a plugin that specifically uses the Paper API will not start on Spigot.
Is Purpur faster than Paper? Not automatically. Purpur is a fork of Paper and therefore inherits the same performance baseline; the gains come from the extra configuration options that let you switch things off yourself. If you never use those options, in practice you are running Paper with an extra layer on top.
Can I combine mods and plugins on the same server? Paper, Purpur and Spigot do not load Forge, NeoForge or Fabric mods, and mod loaders do not run Bukkit plugins. You pick one side per server. If you want new blocks, items and mobs, that means a mod loader, and then every player needs the same mods in the same version.
My server is lagging, should I move to Folia? Almost certainly not. Folia is experimental, breaks most existing plugins and only helps if players really are spread out across the map. Measure with spark first to see where the time goes and tidy up entities and chunk settings; that resolves the overwhelming majority of cases.
Which Minecraft version should I pick in 2026? 1.21 "Tricky Trials", with the Trial Chambers, Vaults and the Mace, is still the most-played version on Dutch servers, and it is where the plugin ecosystem is most mature. If you want to run 26.1 or 26.2, first check that your core plugins support that version; with ViaVersion and ViaBackwards you can let several client versions connect at once regardless.