DGuard

Paper: installing and configuring your server

Paper is Minecraft server software with plugins, optimizations and flexible settings. This guide covers installing it, what's where after the first start, the settings worth knowing and how to update without putting your world at risk.

The DGuard team8 min read

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 versionJava
1.17–1.1917
1.20–1.21.1121
26.1 and newer25
From the table in Paper's documentation.

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. 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. 2

    Prepare a folder

    Create an empty server folder and put the jar in it. Renaming it to paper.jar saves you editing the start script on every update.

  3. 3

    Start the server

    Open a terminal in that folder and run the command below. -Xms and -Xmx set the memory, --nogui turns off the vanilla GUI window. A ready start script with recommended JVM flags comes from PaperMC's script generator.

  4. 4

    Accept the EULA

    On first start the server creates eula.txt and stops. Read the Minecraft EULA, set eula=true and start the server again.

  5. 5

    Check it

    Join and run /version — it shows the Paper version and build. /plugins lists plugins: green ones are running, red ones failed to load.

Starting Paper
java -Xms4G -Xmx4G -jar paper.jar --nogui

Coming 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

PathWhat's in it
config/paper-global.ymlglobal Paper settings: chunk loading, proxies, packet limits
config/paper-world-defaults.ymldefault world settings: anti-xray, entities, chunks, collisions
paper-world.yml in a world folderoverrides for that one world
server.propertiesvanilla settings: port, game mode, view distance
bukkit.yml, spigot.ymlsettings inherited from Bukkit and Spigot
plugins/plugin jars and their config folders
logs/latest.logthe 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.

world/dimensions/minecraft/the_nether/paper-world.yml
entities:
  spawning:
    spawn-limits:
      monster: 90

This 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.

SettingDefaultWhat it does
anticheat.anti-xray.enabledfalseore obfuscation against X-Ray; modes and ready block lists in X-Ray protection
chunks.delay-chunk-unloads-by10show long a chunk stays loaded after the player leaves
collisions.max-entity-collisions8after how many collisions the server stops processing them for an entity
entities.spawning.per-player-mob-spawnstruethe mob cap is counted per player rather than for the whole server
environment.optimize-explosionsfalsecaches entity lookups during explosions — explosions get much cheaper
hopper.disable-move-eventfalsedisables the hopper item-move event: faster, but breaks protection plugins
misc.redstone-implementationVANILLAEIGENCRAFT and ALTERNATE_CURRENT cut redstone lag but change how redstone dust behaves
chunk-loading-basic.player-max-chunk-send-rate75how many chunks per second the server sends to one player
packet-limiter.all-packets500 packets per 7 s, KICKkicks a player who sends too many packets
proxies.velocity.enabledfalseturn on when the server sits behind Velocity — see Velocity setup
The first seven are in 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.

A 10-minute profile
/spark profiler start --timeout 600

What 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. 1

    Back up

    Worlds, server configs, plugins and their configs. It's the most important step and the one people skip most.

  2. 2

    Plugins via the update folder

    Create plugins/update and put the new plugin versions there. On the next restart Paper swaps them in itself — no touching jars on a running server.

  3. 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. 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

All sections

Run the best anticheat for modern Minecraft

DGuard catches all 47 kinds of cheats in our comparison — the closest rival, Intave, has 27. Full protection on every plan, free up to 30 players online.