A Vanilla Minecraft server (the official server jar from Mojang) is fine for a handful of friends, but as your player count grows or you want ranks, homes, anti-grief protection or other customizations, its limits appear quickly. You hit performance problems (dropping TPS, chunk-loading lag) and the fact that Vanilla supports no plugins at all. This article explains why Paper and Spigot are the popular choices, how the server software forks relate to each other, and how to migrate from Vanilla to Paper step by step, complete with tuning so it runs smoothly.
Why Move Away From Vanilla
The Vanilla server does exactly what Mojang designed, but it has no plugin system (Bukkit API) and is not optimized for large player counts. As your world grows and entities (animals, items, mobs) accumulate, per-tick processing gets heavy and TPS (ticks per second, ideally 20) drops, causing server-wide lag.
- No plugins for ranks, permissions or region protection
- No deep performance-tuning tools
- No anti-lag features or async chunk loading
- Griefing is hard to deal with because there is no history/rollback tooling
Server Software Lineage: From Vanilla to Purpur
Plugin-capable Minecraft server software has a layered lineage, each fork building on the last. Understanding it helps you choose correctly.
- Vanilla — Mojang's official server jar, the base for everything.
- CraftBukkit — added the Bukkit API, enabling plugins for the first time.
- Spigot — built on CraftBukkit, improved performance and added
spigot.ymlfor entity and view-distance settings. - Paper — a fork of Spigot with the heaviest optimization; runs all Bukkit/Spigot plugins, adds async chunk loading and fine-grained config files.
- Purpur / Pufferfish — forks of Paper that add extra gameplay and performance options (Pufferfish leans toward raw performance, Purpur toward flexibility).
Paper is today's de facto standard for Minecraft servers. It delivers markedly better TPS than Vanilla/Spigot, runs all existing plugins, and ships with paper-global.yml and paper-world-defaults.yml for deep anti-lag tuning. Start with Paper, then consider Purpur only if you need its extra features.
Comparing Vanilla / Spigot / Paper / Purpur
| Feature | Vanilla | Spigot | Paper | Purpur |
|---|---|---|---|---|
| Plugin support (Bukkit) | No | Yes | Yes | Yes |
| TPS performance | Baseline | Better | Very good | Very good |
| Async chunk loading | No | No | Yes | Yes |
| Anti-lag config files | None | spigot.yml | paper-global/world.yml | + purpur.yml |
| Gameplay customization | Low | Low | Medium | High |
| Existing world compatibility | — | High | High | High |
Always Back Up First
Even though Paper preserves Vanilla world compatibility well, changing server software should always start with a backup. What to back up:
- All world folders:
world,world_nether,world_the_end - The
server.propertiesfile - Whitelist/ops files:
whitelist.json,ops.json,banned-players.json
Warning: always stop the server fully before backing up. Never copy world folders while the server is running, because region files may be mid-write and the world can become corrupted.
Migrating From Vanilla to Paper Step by Step
- Stop the Vanilla server cleanly with the
stopcommand in the console. - Back up the world and config files as described above.
- Download the Paper jar matching your exact Minecraft version from the PaperMC downloads page or via the API.
- Place the jar in the server folder and update the start command to point at the new file name.
- Run it once so Paper generates its config files (
paper-global.yml,paper-world-defaults.yml,bukkit.yml,spigot.yml). - Verify players can join and the world loads correctly, then start installing plugins.
Here is how to fetch the latest Paper build for version 1.21.4 via the API (adjust version/build as needed):
# Get the latest build from the PaperMC API and download the jar
VERSION="1.21.4"
BUILD=$(curl -s https://api.papermc.io/v2/projects/paper/versions/$VERSION/builds \
| jq -r '.builds[-1].build')
curl -o paper-$VERSION.jar \
"https://api.papermc.io/v2/projects/paper/versions/$VERSION/builds/$BUILD/downloads/paper-$VERSION-$BUILD.jar"
Then point your start script at the new jar:
#!/bin/bash
# start.sh — switch from server.jar (Vanilla) to paper-1.21.4.jar
java -Xms2G -Xmx4G -jar paper-1.21.4.jar nogui
Installing Popular Plugins
Plugins are .jar files you drop into the plugins/ folder, then restart (or use a plugin's reload command) to load them. A popular set that covers the basics:
- EssentialsX — core commands, homes, warps, an economy system
- LuckPerms — granular rank and permission management
- WorldEdit — edit huge numbers of blocks at once for building
- CoreProtect — logs and lets you inspect/rollback actions, ideal for handling griefing
- Vault — a bridge that lets other plugins share economy and permission systems
Important: plugin versions must always match your server's Minecraft version. Check the plugin's SpigotMC/Modrinth page to confirm support for the version you run. A plugin that is too old can crash the server on startup.
Tuning Performance for Smoother Play
Once on Paper, adjusting just a few values can raise TPS significantly, especially on busy servers or those with limited RAM.
view-distance and simulation-distance
In server.properties, view-distance controls how far chunks are sent for players to see, while simulation-distance controls how far the server actually processes. Lowering simulation-distance (say from 10 to 6) often boosts TPS with players barely noticing.
Entity settings in spigot.yml
Tune the merge-radius for items/exp and cap mobs per chunk (mob-spawn-range, entity-activation-range) to reduce the entity-processing load.
Anti-lag in paper-world-defaults.yml
Paper offers options such as tick-rate limits for tile entities, entity collisions and chunk loading that reduce lag as worlds grow. Change one value at a time and watch TPS with the /tps command.
Running on a VPS or Home Machine
A Paper server needs Java (Java 17 or newer is recommended depending on the Minecraft version) and enough RAM. Running on a VPS keeps the server online around the clock without leaving a home PC on. AsiaGB offers Linux VPS from 500 THB/month on SSD with 99% uptime, managed through DirectAdmin, suitable for installing Paper and opening the server port yourself. Pick a plan whose RAM matches your expected player count.
Conclusion
Moving from Vanilla to Paper (or Spigot/Purpur depending on your needs) is the key step that gives a Minecraft server plugin support, better TPS and deep tuning. The core steps are: stop the server, back up the world, download a Paper jar matching your version, change the start command, then install plugins in the plugins/ folder while watching version compatibility. Always back up first for safety.
Frequently Asked Questions
Will my existing world still work after switching from Vanilla to Paper
Yes, Paper preserves Vanilla world compatibility, but you should back up the world folder and config files before switching every time for safety.
What is the difference between Paper and Spigot
Paper is a fork of Spigot with extra optimization that runs all existing plugins, delivers better TPS, adds async chunk loading and offers more detailed anti-lag config files.
Do Bukkit and Spigot plugins work directly on Paper
Yes, Paper fully supports the Bukkit and Spigot APIs, but you must choose plugin versions that match your server's Minecraft version to avoid crashes.
What view-distance should I set for smooth play
Start around view-distance 8-10 and lower simulation-distance to 6-8, which raises TPS a lot with players barely noticing any difference; adjust and monitor with the /tps command.
Ready to launch your Minecraft server?
AsiaGB Linux VPS (SSD, DirectAdmin, 99% uptime) from 500 THB/month — Thailand & Singapore datacenters for low ping, perfect for Minecraft servers of any size.
View VPS Plans