How to Set Up a Paper Server
Updated · MCJarHub
Download the Paper jar for your Minecraft version, install the Java version it needs, start it with java -Xms4G -Xmx4G -jar paper.jar --nogui, accept the EULA, and drop Bukkit/Spigot/Paper plugins into plugins/.
1. Pick the Paper version
Choose the Minecraft version your players and plugins use. On the Paper download page every version shows its Java requirement, latest build, SHA-256 and whether PaperMC still supports it.
Newest stable Paper right now: Paper 26.3 build 227 (Java 25).
PaperMC labels builds for a brand-new Minecraft version as experimental (alpha/beta) until they are ready. They are fine for testing; for a live server wait for a stable build and for your plugins to update.
2. Install Java
Each Paper version needs at least the Java version Mojang requires for that Minecraft version — for example Java 21 for 1.20.5–1.21.11 and Java 25 for 26.x. The requirement is shown on every Paper version page. Check with java -version.
3. Download and start
- Create an empty folder and download the Paper jar into it (the file is named like
paper-1.21.11-132.jar). Optionally verify its SHA-256. - Start it with PaperMC's short command:
(replace
java -Xms4G -Xmx4G -jar paper.jar --nogui
paper.jarwith your file name). - The first start stops after creating
eula.txt. Seteula=trueto accept the Minecraft EULA and start again. - Join with a Java Edition client of the same version on
localhost(or your server's IP; port 25565).
4. Use a start script with Aikar's flags
PaperMC recommends Aikar's G1 garbage-collector flags for servers with several GB of memory. A Linux/macOS start.sh:
#!/bin/sh cd "$(dirname "$0")" java -Xms6G -Xmx6G -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -jar paper.jar --nogui
Windows: put the same java … line into start.bat and add pause on the next line. Set -Xms and -Xmx to the same value and leave 1–1.5 GB for the operating system — see how much RAM. The start script generator writes this for you.
5. Add plugins
Put plugin .jar files into the plugins/ folder and restart the server (don't use /reload). Paper runs Bukkit, Spigot and Paper plugins. Plugins have full access to your server, so install them only from sources you trust.
To update plugins without downtime, Paper supports an update folder: create plugins/update/, put the new plugin jars there, and they replace the old ones on the next restart.
6. The config files
| File | Controls |
|---|---|
server.properties | Vanilla settings: port, MOTD, whitelist, view distance, online mode |
bukkit.yml, spigot.yml | Settings inherited from CraftBukkit and Spigot (spawn limits, entity activation ranges…) |
config/paper-global.yml | Paper settings for the whole server, including proxy forwarding (proxies.velocity) |
config/paper-world-defaults.yml | Default Paper settings for every world |
<world>/paper-world.yml | Per-world overrides of those defaults |
Paper 1.18.2 and older used a single paper.yml instead of the config/ files.
Coming from Vanilla or Spigot?
Paper is a drop-in replacement for Spigot and CraftBukkit: stop the server, swap the jar, start. From vanilla, Paper converts the world on the first start (it stores the Nether and End as separate world folders). Back up first — see updating safely. Not sure Paper is the right choice? Read Paper vs Spigot vs Purpur.