In short: download the jar from papermc.io/downloads/paper, install the right Java (21 for Paper 1.20–1.21.11, 25 for 26.1 and newer), run java -Xms4G -Xmx4G -jar paper.jar --nogui, accept the EULA in eula.txt and start it again. Paper's settings live in config/, plugins go in plugins/.
What Paper is
Paper is a Minecraft: Java Edition server by the PaperMC team. It started as a Spigot fork, and since 1.21.4 it has evolved independently and no longer pulls in Spigot's changes. bukkit.yml and spigot.yml are still there and work as before.
Paper runs Bukkit, Spigot and Paper plugins, fixes vanilla mechanics bugs and adds a lot of settings. Forks such as Leaf and Purpur are built on it, so everything below applies there too. For a comparison with other options, see which server software to choose.
Which Java you need
| Paper version | Java |
|---|---|
| 1.17–1.19 | 17 |
| 1.20–1.21.11 | 21 |
| 26.1 and newer | 25 |
Don't set -Xmx right at your plan's limit: Java and the operating system need headroom on top, and Paper's docs suggest leaving about 1–1.5 GB. How much memory your player count needs is covered in how much RAM a server needs.
Installing Paper step by step
- 1
Download it
On the downloads page, pick your Minecraft version and click the build number. Older builds are in the build explorer, linked from the same page. Only download Paper from the official site.
- 2
Prepare a folder
Create an empty server folder and put the jar in it. Renaming it to
paper.jarsaves you editing the start script on every update. - 3
Start the server
Open a terminal in that folder and run the command below.
-Xmsand-Xmxset the memory,--noguiturns off the vanilla GUI window. A ready start script with recommended JVM flags comes from PaperMC's script generator. - 4
Accept the EULA
On first start the server creates
eula.txtand stops. Read the Minecraft EULA, seteula=trueand start the server again. - 5
Check it
Join and run
/version— it shows the Paper version and build./pluginslists plugins: green ones are running, red ones failed to load.
java -Xms4G -Xmx4G -jar paper.jar --noguiComing from Vanilla? Just swap the jar: Paper converts the world to its layout by itself. From Spigot on versions before 26.1, Paper is a drop-in replacement; from 26.1 on, a direct move isn't possible — first convert the world to the Vanilla layout following Spigot's instructions.
What's where
| Path | What's in it |
|---|---|
config/paper-global.yml | global Paper settings: chunk loading, proxies, packet limits |
config/paper-world-defaults.yml | default world settings: anti-xray, entities, chunks, collisions |
paper-world.yml in a world folder | overrides for that one world |
server.properties | vanilla settings: port, game mode, view distance |
bukkit.yml, spigot.yml | settings inherited from Bukkit and Spigot |
plugins/ | plugin jars and their config folders |
logs/latest.log | the current run's log; older ones are archived as .log.gz |
Where paper-world.yml lives depends on the version. On 1.21.x each dimension has its own folder in the server root: world/, world_nether/, world_the_end/. Since 26.1 Paper stores worlds closer to Vanilla: dimensions sit in world/dimensions/minecraft/ (overworld, the_nether, the_end), with a paper-world.yml in each.
How per-world settings work
Defaults live in config/paper-world-defaults.yml and apply to every world. To change something for one world, add only that line to its paper-world.yml. Don't copy the whole file: anything missing from paper-world.yml is inherited from the defaults.
entities:
spawning:
spawn-limits:
monster: 90This example from Paper's docs raises the monster limit in the Nether only (the path is for 26.x; on 1.21.x the file is in world_nether/). Every other world keeps the defaults.
Settings worth knowing
Out of the box Paper is configured sensibly. Below are the settings people ask about most; defaults are from Paper's docs. Change one at a time and check the result.
| Setting | Default | What it does |
|---|---|---|
anticheat.anti-xray.enabled | false | ore obfuscation against X-Ray; modes and ready block lists in X-Ray protection |
chunks.delay-chunk-unloads-by | 10s | how long a chunk stays loaded after the player leaves |
collisions.max-entity-collisions | 8 | after how many collisions the server stops processing them for an entity |
entities.spawning.per-player-mob-spawns | true | the mob cap is counted per player rather than for the whole server |
environment.optimize-explosions | false | caches entity lookups during explosions — explosions get much cheaper |
hopper.disable-move-event | false | disables the hopper item-move event: faster, but breaks protection plugins |
misc.redstone-implementation | VANILLA | EIGENCRAFT and ALTERNATE_CURRENT cut redstone lag but change how redstone dust behaves |
chunk-loading-basic.player-max-chunk-send-rate | 75 | how many chunks per second the server sends to one player |
packet-limiter.all-packets | 500 packets per 7 s, KICK | kicks a player who sends too many packets |
proxies.velocity.enabled | false | turn on when the server sits behind Velocity — see Velocity setup |
config/paper-world-defaults.yml (and per-world paper-world.yml), the last three in config/paper-global.yml.Profiling: spark is built in
Since 1.21 Paper bundles the spark profiler. Run it while the lag is happening: after 10 minutes spark returns a link to the report. The old Timings profiler has been off by default since 1.21 and can't be enabled at all since 1.21.3.
/spark profiler start --timeout 600What usually turns out to be the cause and how to read the report is in why your server lags.
Updating Paper
New builds bring fixes, so PaperMC recommends updating at least once a week. The order:
- 1
Back up
Worlds, server configs, plugins and their configs. It's the most important step and the one people skip most.
- 2
Plugins via the update folder
Create
plugins/updateand put the new plugin versions there. On the next restart Paper swaps them in itself — no touching jars on a running server. - 3
The new Paper build
Download it, stop the server, replace the old jar with the new one under the same name and start.
- 4
The log
Watch the startup log: plugin conflicts show up right away.
An anticheat on Paper
Paper is one of the two platforms DGuard is built for (the other is Leaf). Supported versions are Paper 1.21–26.3. The main version is 1.21.11: DGuard is tested on it and runs on it on production servers; the others are supported but haven't been run on production servers yet.
Setup works like any plugin: add the server in the panel to get a key, put the latest PacketEvents release and DGuard.jar into plugins/, paste the key into plugins/DGuard/config.yml → license.key and restart. Checks run in network threads rather than the main thread, so TPS stays at 20: on a live server DGuard takes 0.03% of one core on the main thread.
FAQ
Where do I download Paper?
From the official papermc.io site, under Downloads: it has the latest builds for each version and a link to the archive of older ones. Jars from third-party sites may be tampered with, so avoid them.
Which Java version does Paper need?
Java 21 for Paper 1.20–1.21.11 and Java 25 for 26.1 and newer. Older versions need Java 17 or lower — the table is in Paper's docs.
Where is paper.yml?
Current Paper versions don't have a paper.yml. Global settings are in config/paper-global.yml, default world settings in config/paper-world-defaults.yml, and per-world overrides in each world's paper-world.yml.
Can I switch from Spigot to Paper without losing my world?
Before 26.1, yes — Paper is a drop-in replacement for Spigot. From 26.1 on, Paper's docs say a direct move isn't possible: convert the world to the Vanilla layout following Spigot's instructions first, then install Paper.
How do I update Paper to a new build?
Back up, stop the server, replace the jar with the new build under the same name and start it. Update plugins at the same time through the plugins/update folder.
Does the DGuard anticheat work on Paper?
Yes. DGuard is made for Paper and Leaf 1.21–26.3, with 1.21.11 as the main version. It's free up to 30 players online.
Sources
- Paper: Getting started
- Paper: Downloads
- Paper: Configuration and per-world settings
- Paper: Global configuration
- Paper: World configuration
- Paper: Anti-Xray
- Paper: Profiling
- PaperMC: 1.21.3 announcement (Timings switched off for good)
- Paper: Updating
- Paper: Migrating to or from Paper
- Paper: Aikar's flags and memory
- Paper: Vanilla-like experience
- PaperMC: The future of Paper — Hard fork
- PaperMC: 26.1 announcement
- DGuard, the best anticheat for a modern Minecraft server: checks compared with GrimAC, Vulcan, Polar, Intave and Matrix
- DGuard: installation, requirements and troubleshooting
- DGuard: supported Paper and Leaf versions