8 min read

Paper vs Spigot vs Fabric: Which Server Software Should You Run?

Paper runs almost any plugin server best; Fabric and Forge run the content mods that change the game — here's how the two families differ and which to pick.

Paper vs Spigot vs Fabric: Which Server Software Should You Run?

For nearly every public server you'd want to run, the answer is Paper — it's the fastest of the plugin-based server jars and runs the same plugins as Spigot, so there's rarely a reason to pick something else. The real fork in the road isn't Paper versus Spigot, which is mostly settled, but plugins versus mods: Paper and Spigot belong to one family that loads server-side plugins, while Fabric and Forge belong to a separate family that loads mods. Those two families don't mix, and which one you want depends entirely on whether you're adding features to vanilla or rebuilding the game into something new. If you're setting up your first one, how to set up a Paper Minecraft server walks through the install.

Plugins and mods are not the same thing

This is the split that trips up most new owners, so it's worth being precise. A plugin runs only on the server. Players join with the plain vanilla client — nothing installed — and they still get warps, homes, an in-game economy, anti-grief protection, and full minigame lobbies. The catch is that plugins can't truly add new blocks, items, or mobs to the base game; they reconfigure and extend what's already there. That's plenty for the vast majority of servers, and it's why a Survival server feels custom without anyone downloading a thing.

A mod is the opposite trade. Fabric and Forge mods can add genuinely new content — new blocks, items, mobs, even entire dimensions — but gameplay mods generally have to be installed on the server and every client. Join a modded server missing a required mod and you'll get refused at the door. Not every mod is like this: server-side-only mods (performance tuners, worldgen) never touch the client, and client-only mods like Sodium or OptiFine must never go in the server's mods/ folder. But the headline rule holds — content mods are a both-sides commitment, and that's the price of actually changing the game.

The folders make the divide concrete:

  • plugins/ (folder for Bukkit/Spigot/Paper/Purpur plugins)
  • mods/ (folder for Fabric/Forge/NeoForge mods)

A plugin dropped in mods/ does nothing, and a mod dropped in plugins/ does nothing. They are different software for different server types.

The plugin family: CraftBukkit, Spigot, Paper, Purpur

These four are one lineage, each a fork of the last. CraftBukkit was the original Bukkit-based server. Spigot forked it to add optimizations, more config, and bug fixes. Paper forked Spigot and went much further on performance, with an expanded API on top. The important part for owners: each is a superset for plugins, so a Spigot plugin runs unchanged on Paper. Moving up the chain doesn't cost you compatibility.

Paper is the default pick, and not by a small margin. It can raise the player count a server handles before it starts lagging by well over 50% versus CraftBukkit or Spigot, it ships the Spark profiler — far more useful than Spigot's old Timings when you're chasing a lag spike — and it runs the entire Spigot plugin catalog. There's almost no public plugin server where Paper isn't the right starting point. Once it's up, must-have Paper plugins for a new server covers what to install first.

On December 13, 2024 Paper hard-forked from Spigot. Instead of shipping as a stack of patches applied on top of Spigot's code — roughly 1,600 patches and 130,000-plus lines by that point — it became an independent project: Mojang mappings, no more CraftBukkit package-relocation versioning, and faster updates after each drop. That sounds like it should have broken plugins, and it's the question owners actually ask, but it didn't. Existing Bukkit and Spigot plugins still load on Paper today. The codebases will drift over time and a few old plugins may eventually break, but most plugins already recommend Paper, so the practical impact stays small.

Where Spigot still fits

Spigot's only real niche now is legacy support. If you depend on a very old, unmaintained plugin that was written against the original Bukkit/Spigot API and never updated, Spigot may run it when Paper's divergence doesn't. That's the whole case. If you don't have a specific plugin forcing your hand, there's no reason to choose Spigot over Paper.

Purpur, for deep gameplay tuning

Purpur is a fork of Paper (built on Pufferfish) and a drop-in replacement — it inherits Paper's optimizations and plugin compatibility, then adds hundreds of gameplay toggles through purpur.yml: rideable mobs, single-player sleep, and a long list of other knobs. Per Purpur's own FAQ, if you never edit purpur.yml, running the Purpur jar is no different from running Paper. So reach for it when you want to tune mechanics that Paper doesn't expose, not for raw speed — its documented advantage over Pufferfish is configurability, not extra TPS.

The mod family: Fabric and Forge

Fabric and Forge are mod loaders, and their mods are not cross-compatible — a Forge mod won't load on Fabric, and vice versa. The server's loader has to match the loader your players run and the mods you've installed, full stop.

Forge, and its 2023 successor NeoForge, is the home of large content modpacks where dozens of mods interoperate. Fabric is lightweight, updates fastest after a drop, and hosts the big optimization mods like Sodium and Lithium. One Fabric quirk worth knowing up front: Fabric splits into the Fabric Loader (the loader itself) and the Fabric API, a separate library mod most Fabric mods depend on — you drop Fabric API into mods/ like any other mod. Forge bundles its modding API into the loader, so there's no equivalent step there. If a modded world is what you're after, the modded server list is sorted by votes.

There's no central config file on a mod server the way there is on Paper. Each mod ships its own config, usually under a config/ folder, instead of one tidy spigot.yml or config/paper-global.yml to edit.

A quick way to decide

  • Paper — nearly every public plugin server. Best balance of speed and the plugin ecosystem.
  • Spigot — only when a needed legacy plugin demands the old API.
  • Purpur — Paper plus deep gameplay tuning through purpur.yml.
  • Fabric — lightweight, fastest to update, optimization and tech mods.
  • Forge / NeoForge — big content modpacks and inter-mod compatibility.

One note on versions. As of September 2026, Paper's stable builds are for 26.2 "Chaos Cubed" (protocol 776), while its builds for the newer 26.3 "Wilderness Bound" (protocol 777) are still experimental, and each plugin-server owner still needs to check compatibility before updating. 26.1 (protocol 775) remains a valid target when a plugin requires it. Fabric Loader already supports 26.3, but mods update one at a time, so a 26.3 modpack is only as ready as its slowest mod. Server software always follows its own release schedule, which is the background to do plugins break on Minecraft 26.2. Whichever family you pick, the networking is shared: Java servers default to TCP port 25565, and client and server must run the same protocol to connect.

FAQ

How do I check what software a running server uses?

On any Bukkit-family server (Paper, Spigot, Purpur), run /version — alias /ver — and it prints the software and version, with a line in the format This server is running Paper version <build> (MC: <version>). The exact build token varies by build, so read it as a format, not a fixed string. /plugins (alias /pl) lists what's installed. Fabric and Forge have no equivalent in-game command; you check the loader from the launch jar and the mods/ folder instead.

Can I run both plugins and mods on one server?

Hybrid jars like Mohist and Arclight try to load Bukkit plugins and Forge mods together, so technically yes. In practice they're widely regarded as less stable than a clean Paper or Fabric setup and sit outside the mainstream recommendation. If you can get what you need from one family, do that — the hybrid route is a last resort, not a default.

What's the startup command for a Paper server?

The standard form is java -Xms<size> -Xmx<size> -jar paper.jar nogui, where <size> is the memory you allocate (for example -Xms4G -Xmx4G). The first run generates the server's config files — server.properties, bukkit.yml, spigot.yml, and the config/ directory — which you edit before letting players in.

Do my players need to install anything to join my Paper server?

No. That's the whole point of the plugin family — anyone connects with the unmodified vanilla client and uses every plugin feature, as long as their client is on the same drop the server runs. A Fabric or Forge server with gameplay mods is the opposite: each player has to install the matching loader and the required mods first, or they get refused at connect.