What Paper Is and Why You Should Use It

Paper is a high-performance fork of Spigot, which is itself a fork of CraftBukkit. It is the most widely used Minecraft server software for survival multiplayer and SMP servers because it delivers significant performance improvements over vanilla while remaining fully compatible with Bukkit and Spigot plugins.

The main reason to choose Paper over vanilla is tick rate stability. Vanilla Minecraft struggles to maintain 20 TPS (ticks per second) under heavy load, which causes lag, rubber-banding, and unresponsive redstone. Paper introduces hundreds of patches that optimize mob AI pathfinding, chunk loading, hopper item transfers, and entity tracking. On the same hardware, a Paper server will handle far more players and farms than vanilla before slowing down. Paper also exposes a rich API for plugins, making it the foundation for almost every public plugin ecosystem.

Downloading the Paper JAR

Paper is distributed through its official build site at papermc.io/downloads. Always download from here rather than third-party mirrors to avoid tampered JARs. On the downloads page, select the Minecraft version you want to run. Paper releases a new build for each Minecraft version whenever patches are merged, so the latest build number for your chosen version is always the one to grab.

Click the download button for the latest build. The file will be named something like paper-1.21.4-196.jar. Save it to a dedicated folder on your machine or directly to your server host using the file manager or SFTP. Do not rename the JAR before your first run; the server generates a world and config files next to wherever the JAR lives, so keeping it in its own folder avoids clutter in your home directory.

Uploading and Starting Paper on Your Host

If you are using a hosting panel, upload the Paper JAR through the file manager or over SFTP. Set the startup JAR name in the panel to match the filename you uploaded. Most Pterodactyl-based panels have a startup variable called SERVER_JARFILE where you type the exact filename.

On the first start, Paper will generate a few files and then stop, asking you to accept the EULA. Open eula.txt and change eula=false to eula=true, then start the server again. This time it will fully initialize, generate the world, and write all default configuration files. The first start takes longer than normal because chunk generation is running in the background.

If you are self-hosting, start the server with: java -Xms1G -Xmx4G -jar paper-1.21.4-196.jar --nogui. Adjust the memory values to match your machine. The --nogui flag skips the Swing window and uses the terminal directly, which is better for servers.

Key Configuration Files: paper.yml, bukkit.yml, and spigot.yml

Paper generates several configuration files, each controlling a different layer of behavior. Understanding which file to edit for a given setting will save you a lot of time.

server.properties is the base vanilla config. Set your max-players, motd, gamemode, difficulty, and view-distance here. Keep view-distance at 10 or lower for most servers; higher values multiply chunk load and memory use rapidly.

bukkit.yml controls spawn limits and mob tick distances. Lowering spawn-limits for monsters and animals reduces entity count without affecting gameplay quality noticeably. The chunk-gc period affects how aggressively unloaded chunks are freed from memory.

spigot.yml adds merge radius settings for items and XP orbs, entity activation ranges, and the max-tick-time watchdog. Setting entity activation ranges appropriately means mobs outside player view do not consume full AI cycles every tick.

config/paper-global.yml and config/paper-world-defaults.yml (Paper 1.19 and newer) contain Paper-specific patches. Notable settings include fix-climbing-bypassing-cramming-rule, async chunk loading behavior, and anti-xray engine configuration. The anti-xray engine mode 2 is the recommended choice for survival servers and has negligible performance impact on modern hardware.

Recommended JVM Startup Flags (Aikar Flags)

The default JVM settings are not optimized for long-running Minecraft servers. The garbage collector (GC) pauses that happen with default settings cause brief lag spikes that players notice as freezes. Aikar's flags tune the G1 garbage collector to minimize these pauses by telling the JVM to collect garbage more frequently in smaller batches rather than large, infrequent stop-the-world collections.

The recommended startup command for a server with 8 GB of RAM allocated looks like this:

java -Xms8G -Xmx8G -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-1.21.4-196.jar --nogui

Set -Xms and -Xmx to the same value to prevent the JVM from dynamically resizing the heap, which can cause GC pressure on resize. On hosting panels, paste the flags section into the JVM arguments field and keep the JAR name separate in its own variable.

First Plugins to Install on a Fresh Paper Server

A bare Paper server is functional but missing quality-of-life features that players expect. These four plugins cover the most common needs and work well together without conflicts.

EssentialsX is the standard utility plugin for Paper servers. It provides homes, warps, the /tpa teleport request system, player kits, economy commands, and dozens of admin utilities. Download it from essentialsx.net and drop the JAR into your plugins/ folder. Restart the server and you will find a config folder at plugins/Essentials/config.yml where you can set the server's economy prefix and disable commands you do not need.

LuckPerms is the permissions manager you should use if you plan to have staff ranks or want granular control over who can run which commands. It has a web-based editor at luckperms.net/editor that lets you build permission groups visually and then apply them with a single command.

WorldEdit from EngineHub speeds up large-scale building and world repair. Even if you are not a builder, it is useful for fixing griefed areas or placing structures from schematic files.

CoreProtect logs all block changes, container interactions, and chat. If something gets griefed, you can roll it back by typing /co rollback u:playername t:1h. It is a non-negotiable plugin for any survival server with more than a handful of players.

Install plugins by placing their JAR files in the plugins/ folder and restarting the server. Paper supports hot-loading for some plugins via /reload confirm, but a full restart is always more reliable for plugins that register event listeners on startup.

Need a Server to Run Paper On?

NetSkyway provides free Paper-ready servers on i9-13900K and Ryzen 9 9950X hardware with DDR5 RAM and NVMe storage. Request yours on Discord today.