RE:NODE

Minecraft11 min read

Paper, Fabric or vanilla: which server software to run

What each Minecraft server jar is for, plugins versus mods, the Paper forks worth knowing, and how to switch between them without losing the world.

Updated

2 readers

These are not three versions of the same thing. Vanilla is the game's own server, unchanged. Paper is a heavily rewritten fork of it built for performance and for plugins. Fabric is a mod loader that does not run plugins at all. Picking between them is really picking what you want to be able to add later, and the practical dividing line is one question: do you want people to join by typing an address and nothing else? If yes, you want plugins, which means Paper. If you want new blocks, machines and dimensions, you want a mod loader and everyone installs the pack. Everything below is the detail behind that.

The three things you are actually choosing between#

It helps to see the family tree, because the names make more sense once you know what forked from what.

Mojang serverthe referenceCraftBukkitthe Bukkit APIFabricmod loaderForge, NeoForgemod loaderSpigotpatched CraftBukkitPaperplugins, performancePurpur, PufferfishPaper forks
Where each server jar comes from

Everything in the left-hand chain exposes the Bukkit API, which is why a plugin written in 2014 for CraftBukkit often still loads on Paper today. Everything in the right-hand chain patches the game's own code directly, which is why mods break on every game update and plugins usually do not.

One thing all of them share: the main tick loop is single-threaded. Chunk generation, file writes and networking happen off it on modern versions, but the actual simulation - mobs, redstone, hoppers, block updates - runs on one thread on vanilla, Paper, Fabric and Forge alike. That is why clock speed matters more than core count for a Minecraft server, and why "more cores" is rarely the fix for lag. The only mainstream exception is Folia, below.

Vanilla: the reference implementation#

The server jar Mojang publishes. You accept the EULA in eula.txt, start it, and you have exactly the game, down to the redstone quirks and the mob-farm edge cases.

bash
$ java -Xms2G -Xmx2G -jar server.jar --nogui

What it is good for:

  • Correctness. If your players build machines that depend on precise update order, or you are testing whether a farm design works before you build it, vanilla is the only answer that is definitionally right.
  • Snapshots and release day. Vanilla is available the moment a version ships. Paper and the mod loaders are days to months behind.
  • Datapacks. A datapack changes recipes, loot tables, advancements, predicates and functions with no server software change and nothing installed on the client. Vanilla runs them, and so does everything else on this page. For a lot of "can we change X" requests, a datapack is the whole answer.

What it is bad at is everything to do with running a community. There is no permissions system beyond operator levels, no land protection, no block logging, no economy, no way to see who broke something. And it is the slowest of the options at scale, because none of the optimisations that alter edge-case behaviour have been applied. Vanilla is a fine choice for four friends and a bad one for forty strangers.

Paper: the plugin server almost everyone runs#

Paper is vanilla with the expensive paths rewritten, a large set of bug fixes applied, several hundred configuration options added, and the Bukkit/Spigot plugin API attached. At the same player count on the same world it holds a lower MSPT than vanilla, and the gap widens as entity counts rise, because entity ticking, hopper behaviour, chunk loading and light propagation are where most of the rewriting happened.

It also gives you five configuration files instead of one:

FileWhat lives in it
server.propertiesVanilla's own settings: ports, distances, difficulty, whitelist
bukkit.ymlSpawn limits per category, chunk GC, ticks per spawn cycle
spigot.ymlEntity activation ranges, merge radii, mob spawn range
config/paper-global.ymlServer-wide Paper settings, including unsupported-settings
config/paper-world-defaults.ymlPer-world Paper settings, overridable per world

Paper split its own config into those last two files at 1.19; older guides referring to a single paper.yml are out of date. The Paper optimisation guide goes through the settings in each that actually move the needle.

The trade is behaviour. Paper fixes things vanilla considers features, and some farms depend on those features. The unsupported-settings block in config/paper-global.yml exists precisely to turn a few of them back on - which entries it offers changes between versions, so read the file you have rather than a post about an older one. Paper can also swap the redstone implementation for a much cheaper one, which is a large win on a server full of redstone and a subtle behaviour change in edge cases. If your community is full of technical players, tell them which server software you run before they spend a weekend on a design.

Spigot still exists and Paper is a drop-in replacement for it: same plugins, same spigot.yml, strictly more configuration and strictly better performance. There is no remaining reason to choose Spigot over Paper for a new server.

Fabric and the mod loaders#

Fabric is a loader for mods that change the game itself. That is the whole distinction: a plugin talks to an API the server exposes, and a mod rewrites the game's own classes. Consequences follow immediately.

  • Clients need the same mods. Anything that adds content or changes rules must exist on both sides at the same version, or the client is kicked or desyncs. Players install a pack through a launcher rather than typing an address.
  • Mods break on every game update and wait for their authors. A Fabric server can usually follow the game within a week or two; a Forge or NeoForge pack can sit a full version behind for months.
  • There is no plugin API. Fabric will not load a Bukkit plugin, and no amount of configuration changes that. Some familiar tools have been ported - LuckPerms has a Fabric build, and there are server-side mods that cover block logging and chat formatting - but the ecosystem is a fraction of the size.
  • Fabric API is a separate mod. Almost every Fabric mod depends on it, and forgetting it is the single most common first-boot failure.

Forge and NeoForge sit in the same category with a longer history and heavier packs. Running a modded server without the crashes covers installing a pack, the Java version matrix and how to read the crash report when one of them will not start.

Fabric also has a genuinely good reason to exist on a non-modded server: server-side-only performance mods. Lithium, FerriteCore and Krypton change nothing a player can see, require nothing on the client, and make a Fabric server noticeably cheaper to run. A vanilla-feeling server on Fabric with three performance mods is a real option if you want vanilla behaviour without vanilla's cost - and unlike Paper, it keeps the edge-case behaviour intact.

Plugins or mods: the line that decides it#

Almost every "which should I run" question collapses into this table.

You wantRunPlayers install
Land claims, permissions, economy, homesPaperNothing
New blocks, machines, mobs, dimensionsFabric, Forge or NeoForgeThe pack
Exact vanilla behaviour for testingVanillaNothing
Vanilla behaviour, lower server costFabric with server-side mods onlyNothing
Console and mobile playersBedrock, or Paper with GeyserNothing
Several worlds behind one addressVelocity in front of Paper backendsNothing

The Bedrock row is a genuinely different program rather than another jar - Bedrock or Java is the comparison, and Geyser and Floodgate is the bridge if you want both. The Velocity row is what you reach for when one server stops being enough: a proxy holds the public port and passes players to lobby, survival and minigame backends that can be restarted independently. Building a Velocity network covers the forwarding secret, which is the part people get wrong.

The Paper forks worth knowing#

Three forks come up constantly, and each solves a narrow problem.

  • Purpur is Paper plus a very large number of gameplay switches: per-mob settings, ridable mobs, configurable end-crystal behaviour, a purpur.yml full of things vanilla would never expose. Same plugins, same performance profile. Take it if you want the knobs, ignore it if you do not.
  • Pufferfish is Paper tuned harder for performance, with asynchronous mob pathfinding and dynamic throttling of entity AI by distance. It trades a little behavioural fidelity for tick time on busy servers.
  • Folia is PaperMC's regionised multithreading fork. It splits the world into independently ticking regions across threads, which is the only real answer to the single-thread ceiling. The catch is severe: plugins must be written for Folia specifically, and most are not. It is built for very large numbers of players spread over a large world, not for a fifty-player SMP where everybody is in one town.

Sponge is worth a mention as the other plugin platform: its own API, available for both vanilla and Forge, with a much smaller plugin ecosystem. It is a reasonable choice if the specific plugins you need are Sponge plugins, and a poor one otherwise.

For almost everybody the answer is plain Paper. The forks are optimisations of a decision, not the decision.

Switching between them without losing the world#

The world survives most moves. What does not survive is anything a mod added, and what trips people up is the folder layout.

Vanilla stores all three dimensions inside one world folder: world/region, world/DIM-1/region for the Nether, world/DIM1/region for the End. Paper and every Bukkit-derived server split them into world, world_nether and world_the_end at the top level. Fabric and Forge follow vanilla's layout. So:

  1. Stop the server properly and wait for the save to finish. Never copy a world out from under a running server.
  2. Take a backup you can actually restore, not a copy in the same folder. Backups that actually restore explains the difference, and the panel's backups are stored off the machine they protect for exactly this reason.
  3. Going vanilla or Fabric to Paper: create world_nether and world_the_end, move world/DIM-1 into the first and world/DIM1 into the second, keeping the inner folder names. Then drop in the Paper jar and start.
  4. Going Paper back to vanilla or Fabric: the reverse. Move the two dimension folders back inside world. Paper's extra files and the plugins folder are simply ignored.
  5. Start with nobody online, then log in and check the Nether and the End specifically. If either is a brand new world, the folder move is wrong and your original data is still there under the other name.

Moving from modded to unmodded is the one that loses things. Vanilla and Paper replace blocks they do not recognise with air and drop unknown items, silently. Forge instead refuses to load a world missing registry entries until you confirm you accept the loss. Either way, take the backup first and expect holes where the machines were. Going the other direction - adding a mod loader to an existing vanilla world - is safe, because nothing is missing yet.

Version upgrades are a separate problem with the same discipline; Minecraft version upgrades covers doing one without a rollback.

What we run, and why it is Paper#

The Minecraft line here ships Paper, with the Java version matched to the Minecraft version, the EULA already accepted and the world generated before you first log in. That is not neutrality - it is the same recommendation this post makes, packaged. Paper is what the overwhelming majority of servers with more than a handful of players end up running, and starting somewhere else means starting with work.

If you want something else, you are not blocked: the file manager and SFTP are yours, there is no whitelist of allowed jars or mods, and the startup variables are editable. But it is your install. There is no one-click switch to Fabric, Forge or a modpack, and nothing on the panel knows what a .mrpack is. Budget an evening, keep the vanilla world backed up, and read the two loader posts first.

Whatever you run, how much RAM a Minecraft server needs applies unchanged - the jar changes the tick cost far more than it changes the memory footprint.

FAQ#

Is Paper better than Spigot?

Yes, with no real caveat. Paper is a fork of Spigot that keeps the same plugin API, adds several hundred configuration options and rewrites the expensive parts of the tick. Every Spigot plugin runs on Paper. There is no scenario left where a new server should choose Spigot.

Can I run plugins on Fabric?

No. Plugins target the Bukkit API, which Fabric does not implement. Some well-known tools have Fabric ports - LuckPerms among them - and Fabric has its own server-side mods for logging and chat, but the catalogue is far smaller. Bridging layers that claim to run Bukkit plugins on Fabric exist and are not dependable.

Does switching to Paper delete my world?

No, but it rearranges it. Paper splits the Nether and the End into separate top-level folders, so those two dimensions look empty until you move DIM-1 and DIM1 into world_nether and world_the_end. The overworld transfers untouched. Back up before you start and check both dimensions afterwards.

Will my players notice the difference between Paper and vanilla?

Most will not. Technical players will: Paper changes some update-order edge cases and fixes bugs that certain farm designs rely on. If your community builds machines, say which server software you run up front, and read the unsupported-settings block in config/paper-global.yml before you promise anything.

Which one should a small friends server use?

Paper, almost always. It is faster than vanilla, it costs nothing to run, and it leaves the door open to land claims and permissions later without a migration. Choose vanilla only if exact behaviour matters more than tooling, and a mod loader only if you all want the same modpack.

What about Folia for a big server?

Only if your player count is genuinely large and spread out, and only if the plugins you depend on support it. Folia's regionised threading is the real answer to the single-thread ceiling, but a plugin written for Paper will not run on it unchanged, and a crowded spawn does not benefit from regions.


Comments

Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.

0/2000