Paper is the most popular Minecraft Java server software for plugin-based servers. It’s a high-performance fork of Spigot (itself a Bukkit fork), runs Bukkit/Spigot plugins, fixes many vanilla bugs and exploits, and adds a lot of configuration for performance. If you want plugins (permissions, protection, economies, minigames), Paper is the default choice.
New to Minecraft servers? Start with Minecraft Java server on Linux.
Requirements
- Java 21 (for current Minecraft versions). See install Java.
- 2–4 vCPU and 4–8 GB RAM for 10–30 players. Single-thread CPU speed matters most.
- Port 25565/tcp.
Install Paper
sudo apt install -y openjdk-21-jre-headless
sudo adduser --disabled-password --gecos "" minecraft
sudo -iu minecraft
mkdir paper && cd paper
# download the latest build for your version from papermc.io/downloads (or via its API)
wget -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/<build>/downloads/paper-1.21.4-<build>.jar"
echo "eula=true" > eula.txt
Start script with good JVM flags
#!/bin/bash
# start.sh — "Aikar's flags", widely recommended for Paper
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 -jar paper.jar --nogui
Set -Xms and -Xmx to the same value, and leave 1–2 GB of RAM for the operating system. Run it in tmux or as a systemd service. See tmux and systemd unit files.
Essential plugins
Download plugins from Hangar (PaperMC’s repository), Modrinth or SpigotMC, and put the .jar files into plugins/. Then restart (avoid /reload).
| Plugin | Purpose |
|---|---|
| LuckPerms | Permissions and groups (web editor) |
| EssentialsX | /home, /spawn, /tpa, kits, warps, chat |
| CoreProtect | Block logging and rollback for griefing |
| WorldGuard + WorldEdit | Region protection and building tools |
| Vault | Economy/permissions API used by many plugins |
| Geyser + Floodgate | Let Bedrock players (phones, consoles) join a Java server |
| Chunky | Pre-generate the world to avoid lag while exploring |
| spark | Profiler for finding lag |
| DiscordSRV | Chat bridge to Discord |
Keep the plugin list lean, because each plugin adds load and attack surface. Only download plugins from trusted sources, since malicious plugins exist.
Permissions with LuckPerms
/lp creategroup member
/lp group member permission set essentials.home true
/lp group default parent add member
/lp user YourName parent set admin
/lp editor # opens the web editor
Performance configuration
Paper’s configs live in config/paper-global.yml and config/paper-world-defaults.yml, plus spigot.yml and bukkit.yml. Common tweaks:
server.properties:view-distance=8,simulation-distance=6(big savings with many players).- Entity limits and despawn ranges in
paper-world-defaults.yml. - Pre-generate the world with Chunky (
/chunky radius 5000,/chunky start), and set a world border. - Use spark (
/spark profiler) to find what causes lag.
Geyser for Bedrock players
With Geyser and Floodgate installed, Bedrock players connect to your server’s IP on UDP port 19132:
sudo ufw allow 25565/tcp
sudo ufw allow 19132/udp
See UFW and Bedrock server.
Updating
Back up first, then replace paper.jar with a newer build of the same Minecraft version. For a new Minecraft version, wait until your essential plugins support it. See backup strategy.
Backups
Back up the world folders (world, world_nether, world_the_end) and plugins/ (configs and data). Use save-off, then save-all, copy, then save-on, or a backup plugin.
Quick reference
| Item | Value |
|---|---|
| Java | 21 |
| Port | 25565/tcp (+19132/udp for Geyser) |
| Plugins folder | plugins/ |
| Main configs | config/paper-*.yml, spigot.yml, server.properties |
| Profiler | spark |
Related: modded Minecraft with Forge or Fabric and game server VPS.