Short answer
Minecraft server facts, checked November 2, 2026
- Current Java Edition release
- 26.3since September 15, 2026
- Java needed for 26.x
- Java 251.20.5 to 1.21.11: Java 21
- Default port
- 25565TCP
- Plugins go into
- plugins/Paper, Purpur, Spigot
- Mods go into
- mods/Fabric, Forge, NeoForge
- Tick budget
- 50 ms20 ticks per second
Minecraft server software is the .jar file the server runs. Mojang ships one, the vanilla server. Everything else (Paper, Purpur, Spigot, Folia, Fabric, Forge, NeoForge) is either a modified copy of it or a loader that patches it at start. This guide compares all of them, links only the official download for each, and shows how to move a world from one to another without losing it. Versions and build numbers were read from each project’s own site or API on November 2, 2026.
| Vanilla | Best defaultPaper | Purpur | Spigot | Fabric | Forge | NeoForge | |
|---|---|---|---|---|---|---|---|
| Family | Neither | Plugins | Plugins | Plugins | Mods | Mods | Mods |
| Adds new blocks and items | No | No | No | No | Yes | Yes | Yes |
| Vanilla client can join | Yes | Yes | Yes | Yes | With server-side mods only | No | No |
| Runs Bukkit/Spigot plugins | No | Yes | Yes | Yes | No | No | No |
| Ready-made jar to download | Yes | Yes | Yes | No, built with BuildTools | Installer or launcher jar | Installer | Installer |
| Build for 26.3 on November 2, 2026 | Yes (September 15) | Yes, build 237 stable | Yes | Yes, BuildTools --rev 26.3 | Yes, Loader 0.20.1 | Yes, recommended 66.1.0 | Yes, 26.3.0.x |
| Built-in tuning | None | Many options, spark bundled | Paper plus gameplay toggles | Fewer than Paper | Through mods (Lithium) | Depends on the pack | Depends on the pack |
| Best for | Pure survival, testing | Most public and friend servers | Paper plus custom gameplay | A plugin that needs it | Light and performance mods | Older and big modpacks | Current modpacks |
Plugins vs mods: the two families
Every choice below is really one decision: plugins or mods. It is the one that is hard to undo later, so make it first.
- Plugin servers (Paper, Purpur, Spigot, Folia) implement the Bukkit API. Plugins sit in
plugins/, run only on the server, and players join with the normal launcher, no install needed. Plugins can add commands, permissions, land claims, shops and minigames, but they cannot add new blocks, items or mobs that the client does not already know. - Mod loaders (Fabric, Forge, NeoForge) patch the game itself. Mods sit in
mods/and can add anything: machines, dimensions, magic systems. A mod that adds content must also be installed on every player’s client, with the same loader and mod versions. Pure server-side Fabric mods such as Lithium are the exception: the server runs them and vanilla clients can still connect.
No setting turns one family into the other. Paper’s own documentation says mods for Forge or Fabric “will not run on Paper”, and neither Fabric nor Forge loads Bukkit plugins. So-called hybrids that try to run both (Mohist, Arclight and Youer are the best-known names) are, in PaperMC’s words, “fundamentally flawed”: expect plugins and mods that half work. If you really need both, run two separate servers behind a Velocity proxy (more on proxies below) so players move between them with one address.
Vanilla: the official Minecraft server
The vanilla server is Mojang’s own server.jar from minecraft.net. It plays exactly like singleplayer: every redstone quirk, every farm design and every mob rule behaves the way the Minecraft Wiki describes it. That is its main reason to exist. It has no plugin or mod support, no extra configuration beyond server.properties, and little to tune when the world gets busy beyond view distance and simulation distance.
java -Xms1024M -Xmx2048M -jar server.jar nogui
# first run stops at the EULA: set eula=true in eula.txt, then start againChoose vanilla for a small survival world with friends who want the untouched game, for technical players who rely on exact vanilla mechanics, or to test snapshots the day they come out. As soon as you want a whitelist with ranks, protection against griefing or any kind of economy, you have outgrown it.
Paper, Purpur and Spigot: plugin servers
All three descend from Bukkit, the original plugin API. Spigot forked CraftBukkit, Paper forked Spigot, and Purpur builds on Paper through Pufferfish, a performance fork of Paper. Each one runs the plugins written for the ones below it, which is why a plugin page often says “Bukkit” or “Spigot” even when you run Paper. Other Paper forks exist too; they keep Paper’s plugin support but add their own changes, so check that one is still updated for your Minecraft version before you rely on it.
Paper
Paper is what most plugin servers run today. It adds a long list of performance and configuration options, fixes many vanilla duplication and gameplay bugs, and bundles the spark profiler since 1.21. Its docs call it a drop-in replacement for CraftBukkit and Spigot. Paper publishes a ready-to-run jar per build; on November 2, 2026 the newest one was paper-26.3-237.jar on the stable channel, and it needs at least Java 25.
java -Xms4G -Xmx4G -jar paper.jar --noguiPaper: strengths
- Runs almost every Bukkit and Spigot plugin; PaperMC asks plugin authors to build against the Paper API
- Vanilla clients join without installing anything
- Profiler (spark) included, so lag has a cause you can see
- Downloadable jar, stable channel, clear Java requirement per version
Paper: trade-offs
- Cannot add new blocks, items or mobs
- Some fixes change edge cases that technical players rely on (certain duplication tricks stop working)
- Since the hard fork, plugins that use Spigot-only API added after 1.21.4 may not work
Paper vs Spigot
Spigot has no direct download. Since a 2014 takedown request, you build it yourself with BuildTools, which compiles spigot-<version>.jar, and SpigotMC asks you not to redistribute the jar you build. Paper, by contrast, gives you a finished jar and more tuning options.
java -jar BuildTools.jar --rev latest
# --rev latest builds the latest stable Spigot; --rev <version> picks one
# add --compile craftbukkit if you really want CraftBukkit as wellIn December 2024 PaperMC announced a hard fork starting with Minecraft 1.21.4: Paper no longer pulls in every new Spigot API change. Plugins built against older Spigot versions keep running on Paper, but a plugin that depends on a Spigot feature added after the fork may not, and going back from Paper to Spigot is no longer supported. In practice that makes Spigot the choice only when a specific plugin you need says it runs on Spigot and not on Paper. Otherwise Paper wins.
Purpur
Purpur describes itself as a drop-in replacement for Paper servers, “designed for configurability”. Its API includes everything from Pufferfish, Paper, Spigot and Bukkit, and it adds gameplay switches in purpur.yml: rideable mobs, tweaked mob behavior and many per-entity settings. Pick Purpur when you want those gameplay changes without writing a plugin; pick plain Paper when you want the smallest difference from what plugin authors test against. Its download API serves the newest build for a version directly:
curl -o purpur.jar https://api.purpurmc.org/v2/purpur/26.3/latest/downloadFolia, for very large servers
Folia, also from PaperMC, splits the loaded world into regions that tick in parallel. Its README names the target clearly: servers that spread players out (SMP, skyblock), with a sizeable player count, ideally on at least 16 physical cores. It also warns that it “breaks many plugins”: only plugins marked folia-supported: true load at all. For a server of friends or a few dozen players in one town, Folia brings nothing that Paper does not, and the plugin cost is real.
Fabric and the Fabric installer
Fabric is a small, modular mod loader. Its meta service already listed 26.4 snapshots on November 2, 2026 and Fabric Loader 0.20.1 for 26.3, so new Minecraft versions usually reach Fabric quickly. Most Fabric mods need the separate Fabric API mod in mods/ as well. Fabric is also the home of popular server-side optimization mods: Lithium, for example, speeds up game logic while keeping vanilla mechanics, and clients do not need it. Quilt, a community fork of the Fabric loader, says it runs Fabric mods too; choose it only when a mod you want needs Quilt itself.
The Fabric installer is a separate jar. Its command-line mode sets up a server in the current folder; without flags it picks the latest stable Minecraft version and the latest loader:
java -jar fabric-installer-1.1.2.jar server -mcversion 26.3 -downloadMinecraft
java -Xmx2G -jar fabric-server-launch.jar noguiFabric’s download page also offers a single executable launcher jar that fetches the missing Loader and Minecraft files on first start, which is the shorter route on a fresh server. When you upgrade a Fabric server, delete the .fabric folder if the installer left it behind, otherwise you can get classloading errors.
Fabric: strengths
- Fast to support new Minecraft versions and snapshots
- Light loader; performance mods can stay server-side only
- Good fit for technical servers that want vanilla behavior plus speed
Fabric: trade-offs
- No Bukkit plugins; admin tools come as mods instead
- Many big content packs exist only for Forge or NeoForge
- Content mods must match exactly on every client
Forge and NeoForge
Forge is the original mod loader and the base of most older and many large modpacks. NeoForge started in July 2023 as, in its own words, “a fork of MinecraftForge”, and many newer mods and packs target it. Today mod pages list Forge and NeoForge as separate loaders: a Forge build of a mod does not load on NeoForge or the other way round, so download the file tagged for your loader.
Both still ship builds for the current release. On November 2, 2026 Forge listed 66.1.0 as the recommended build for 26.3 (dated October 21, 2026, about five weeks after 26.3 came out) and 66.1.2 as the latest; NeoForge had published 26.3.0.x builds. Both install the same way, with an installer jar:
java -jar neoforge-VERSION-installer.jar --installServer
./run.sh # stops on the first run: set eula=true in eula.txt, run again
# RAM and other JVM flags go into user_jvm_args.txt, e.g. -Xmx6GWhich one? The modpack decides. A CurseForge or Modrinth pack names its loader, and its server pack already contains the right installer. Without a pack, check what the mods you want publish for the Minecraft version you want. Big modpacks are also where RAM and CPU needs jump: plan for several gigabytes more than a plugin server of the same size.
Proxies and Bedrock players
A proxy sits in front of several servers, for example a lobby, a Paper survival world and a modded world, so players switch between them with one address and /server. Velocity, made by PaperMC, is the proxy to start a new network on. BungeeCord is SpigotMC’s original proxy and still works with older setups. Waterfall, PaperMC’s former fork of BungeeCord, has been unsupported since March 2024 according to PaperMC’s download API (checked November 2, 2026), so do not build anything new on it. Pick BungeeCord only when a proxy plugin you cannot replace exists for it alone.
Players on phones, consoles and the Bedrock version for Windows cannot join a Java server directly. There are two ways to host for them:
- Bedrock Dedicated Server from minecraft.net is Mojang’s server for Bedrock only. It runs on Windows and Ubuntu, listens on UDP port 19132 (19133 for IPv6), and Java players cannot join it. Plugins and mods from this guide do not run on it; Bedrock uses add-ons instead.
- Geyser lets Bedrock players join your Java server. It installs as a plugin or mod on Paper, Spigot, Fabric, NeoForge, Velocity or BungeeCord, or runs standalone. Its companion Floodgate lets Bedrock players in without a paid Java Edition account. Geyser’s setup guide (read November 2, 2026) says its port, 19132 by default, must be open on both TCP and UDP: Bedrock clients now find the server over TCP and play over UDP.
sudo ufw allow 25565/tcp # Java players
sudo ufw allow 19132 # Geyser, TCP and UDPPerformance: what changes and how to measure it
A Minecraft server does most of its world work on one main thread, 20 times per second. That gives each tick 50 milliseconds. While the average time per tick (MSPT) stays below 50 ms, the game runs at full speed; above it, the server falls behind and everything slows down. When it falls more than about two seconds behind, the log shows Can’t keep up!. The server software changes how much work fits into those 50 ms:
- Vanilla does the full vanilla work for every loaded chunk and entity. Your levers are
view-distance,simulation-distanceand player count. - Paper and Purpur add optimizations plus options that trade small gameplay details for speed (entity and redstone settings in
config/paper-world-defaults.yml). Purpur inherits all of Paper’s. - Fabric is light on its own; speed comes from mods such as Lithium.
- Forge and NeoForge are only as fast as the pack. A hundred mods that each do a little every tick cost far more than the loader itself.
Percentages you find online (“50 % more players”) rarely state the world, the player count or the hardware. Measure your own server instead, and compare jars on the same copy of the world with the same level-seed, view distance and player load:
/tick query # average and percentile time per tick
/spark tps # TPS and CPU (Paper, or spark mod on Fabric/Forge/NeoForge)
/spark health # TPS, CPU, memory and disk in one report
/spark profiler start --timeout 600 # 10-minute profile, then a report linkspark is bundled in Paper since 1.21 and is available as a mod for Fabric, Forge and NeoForge, so the same report works on every family. If one plugin or mod dominates the profile, fix or replace it before switching software or buying more RAM.
Minecraft server software download: official sources only
Download every jar from the project itself. Third-party mirrors and “all in one” download sites are a common way to get an outdated or tampered file.
| Official source | What you get | |
|---|---|---|
| Vanilla | minecraft.net/en-us/download/server | server.jar for the current release |
| Paper | papermc.io/downloads/paper | Ready jar per build, each tagged with a release channel |
| Purpur | purpurmc.org | Ready jar, also through api.purpurmc.org |
| Folia | papermc.io/downloads/folia | Ready jar |
| Spigot | spigotmc.org/wiki/buildtools | BuildTools.jar, you compile Spigot |
| Fabric | fabricmc.net/use/server | Launcher jar or installer jar |
| Forge | files.minecraftforge.net | Installer jar (use --installServer) |
| NeoForge | neoforged.net | Installer jar (use --installServer) |
Whatever you pick, install a Java runtime that matches the Minecraft version first: Java 25 for the 26.x releases, Java 21 for 1.20.5 to 1.21.11, Java 17 for 1.18 to 1.20.4 (Paper asks for Java 21 from 1.20). On Debian 13 and Ubuntu 24.04 that is the openjdk-25-jre-headless package, and java -version shows what you have.
Switch server software without losing your world
The world folder is the only thing that is hard to replace. Treat every switch as a migration with a backup, and keep the Minecraft version the same while you switch: change the software first, update the game version later as a separate step.
The direction matters, so read the rule for your move before you start. What the projects document, as of 26.1 (PaperMC’s migration guide unless noted):
- Vanilla to Paper or Purpur: replace the jar and start. Paper changes the way the world is stored automatically.
- Paper to Purpur: replace the jar; plugins and configs carry over. Source: Purpur’s docs, which call it a drop-in replacement for Paper servers.
- Paper to Vanilla: with the server stopped and
level-name=world, movegame_rules.dat,scheduled_events.dat,wandering_trader.dat,weather.datandworld_gen_settings.datfromworld/dimensions/minecraft/overworld/data/minecraft/intoworld/data/minecraft/, then start the vanilla jar. - Paper to Fabric, Forge or NeoForge: do the Paper to Vanilla file moves above first, because these loaders keep the world in Vanilla’s layout, then run the loader’s installer. PaperMC’s guide (written for Fabric and Forge) also warns that “neither Fabric nor Forge will support Paper plugins”, so plan replacement mods.
- Spigot or CraftBukkit to Paper: not possible directly since 26.1. Move the world to Vanilla first (Spigot’s documentation covers that step), then from Vanilla to Paper.
- Paper to Spigot: unsupported, and PaperMC warns that data loss is possible.
- Vanilla to Fabric, Forge or NeoForge: run the installer in the server folder, as the Fabric and NeoForge install guides describe. PaperMC notes that Fabric and Forge use the same world layout as Vanilla, so nothing needs to move.
- Fabric, Forge or NeoForge to Paper: the world loads, but everything that mods added is gone.
- 1Stop the server and back up the whole folder
Debian · Ubuntu sudo systemctl stop minecraft # or type stop in the console sudo tar -czf ~/mc-backup-$(date +%F).tar.gz -C /opt minecraftsudois there because a server folder owned by its own system user is not readable for your login user. Copy the archive off the server too, for example with scp or rsync. - 2Check the family rule
Plugins in
plugins/carry over between Paper and Purpur, and from Spigot to Paper once the world has gone through Vanilla as described above; Paper to Spigot is unsupported. Mods inmods/carry over only to the same loader. Vanilla runs neither, and blocks and items that came from mods disappear when the world opens on Paper or Vanilla. - 3Swap the jar or run the installer in the same folder
Do any file moves the list above names for your direction before the first start. Keep
server.properties,eula.txt,ops.json,whitelist.json, thebanned-*.jsonfiles and the world folder. Point your start script or systemd service at the new jar or at the loader’srun.sh. - 4Start once, read the log, then let players in
Watch the console for missing plugin dependencies, mods that failed to load and world conversion messages before you open the server again.
Running it on a VPS
Every server software above is a Java program, so any Linux VPS with root access runs all of them. Start with 2 to 4 GB of RAM for a small vanilla or Paper server, and plan 6 GB and up for modpacks; then size by what /spark health shows. Single-core speed matters more than core count because of the one main thread. Run the server as a systemd service or inside screen, and open TCP port 25565 with ufw.
A Standard KVM in Amsterdam gives you full root, a public IPv4 address and plans from 4 GB to 64 GB DDR4 RAM, enough to switch between Paper, Fabric and a modpack on the same machine. For one busy world that leans on a single thread, the Hi-CPU KVM line on AMD EPYC is the closer fit.
Which one should you pick?
- Pick Paper if you want plugins and players should join with a normal clientBest default
- Pick Purpur if you want everything Paper does plus gameplay switches without coding
- Pick Vanilla if you want Mojang's game exactly as shipped, or you test snapshots
- Pick Fabric if you want light mods, performance mods or a technical server close to vanilla
- Pick Forge or NeoForge if a modpack names it, which also decides which of the two
- Pick Spigot if a plugin you cannot replace works only on Spigot
- Pick Folia if you run a large, spread-out server on 16 or more cores and every plugin supports it
Frequently asked
What is the best Minecraft server software?
For most servers it is Paper: it runs Bukkit and Spigot plugins, players join with an unmodified client, and it ships a ready jar plus the spark profiler. Pick Fabric for light or performance mods, Forge or NeoForge when a modpack names it, Purpur for Paper plus gameplay switches, and Vanilla only when you want Mojang's game exactly as shipped.
Is Paper better than Spigot?
For almost every server, yes. Paper is a drop-in replacement for Spigot with more performance options and a ready-made download, while Spigot has to be compiled with BuildTools. Since Paper's hard fork at 1.21.4, plugins that use Spigot API added after the fork may not run on Paper, so use Spigot only when a plugin you cannot replace requires it.
Can you use plugins and mods on the same Minecraft server?
Not reliably. Plugins need the Bukkit API (Paper, Purpur, Spigot) and mods need a loader (Fabric, Forge, NeoForge); no setting combines them. Hybrid servers that try, such as Mohist, Arclight or Youer, are called fundamentally flawed by PaperMC. The supported way is two separate servers, one plugin and one modded, behind a Velocity proxy.
Do players need to install anything to join a Paper or Fabric server?
No for Paper, Purpur and Spigot: plugins run only on the server. For Fabric, Forge and NeoForge it depends on the mods: anything that adds blocks, items or mobs must be installed on every client with the same loader and versions, while pure server-side Fabric mods such as Lithium let vanilla clients join.
Should I use Forge or NeoForge?
Use whichever loader your modpack or your mods are built for. NeoForge began in July 2023 as a fork of Forge, and today mod pages list the two as separate loaders, so a Forge build does not load on NeoForge or the other way round. Both publish builds for Minecraft 26.3 as of November 2026.
Is Forge dead?
No. On November 2, 2026 Forge listed 66.1.0 (from October 21, 2026) as the recommended build for Minecraft 26.3 and 66.1.2 as the latest. Many newer mods and packs target NeoForge, a 2023 fork of Forge, so let your modpack or your mods decide which loader you run.
Can Bedrock players join a Java Minecraft server?
Not directly. Install Geyser as a plugin or mod (Paper, Spigot, Fabric, NeoForge, Velocity, BungeeCord) or run it standalone, and open its port, 19132 by default, on both TCP and UDP. Floodgate lets Bedrock players join without a paid Java account. Mojang's Bedrock Dedicated Server (UDP 19132) is for Bedrock players only.