Paper and Purpur Servers: Setup and Best Practices

Set up a fast plugin server: memory, flags, the settings that matter, plugins, updates and security

Minecraft

5 min readIntermediateLast updated Oct 30, 2026

Paper is the standard for plugin servers: vanilla gameplay, much better performance, and support for Bukkit, Spigot and Paper plugins. Purpur is built on Paper and adds hundreds of optional gameplay toggles in purpur.yml. With its settings untouched, Purpur plays like Paper.

Choose Paper unless you want Purpur's extra toggles (rideable mobs, custom mob behaviour, more gameplay tweaks). Either way, plugins are the same, and switching later is just a server-jar change. Neither runs Fabric, Forge or NeoForge mods: for mods, see Fabric or NeoForge.

Setup checklist

  • [ ] Minecraft version pinned on Startup (not latest), and the right Java picked. Versions and Java
  • [ ] EULA accepted on the first start. First start
  • [ ] View and simulation distance lowered before players arrive. Settings
  • [ ] World pre-generated inside a world border. Pre-generate
  • [ ] Core plugins: a permissions plugin (LuckPerms), grief logging (CoreProtect), Chunky for pre-generation. spark is built into Paper (/spark profiler).
  • [ ] Whitelist on for private servers, few ops. Players
  • [ ] Backups and a daily restart scheduled. Backup schedules

Memory and start-up flags

Server Memory
A few friends, a handful of plugins 3–4 GB
10–30 players, 20–40 plugins 6–8 GB
Larger communities, big worlds 10–12 GB
  • Java needs memory outside its heap too. Your start command uses -XX:MaxRAMPercentage so Java takes a share of your plan automatically. Never set -Xmx to your whole plan: the server gets killed for going over its limit.
  • For 4 GB and up, Aikar's flags (Paper's recommended garbage-collection settings) cut lag spikes. They're published in Paper's docs. Ask us to set them on your server.
  • More memory than the server uses doesn't make it faster. If you have lag, find the cause first.

The settings that matter

Edit these with the server stopped.

server.properties (all settings)

Setting Default Recommended
view-distance 10 7–10
simulation-distance 10 4–6
network-compression-threshold 256 256 (-1 on back-ends behind Velocity)
sync-chunk-writes true true (safer after crashes)

spigot.yml: leave view-distance: default, so server.properties alone controls it. A number here silently overrides it.

config/paper-world-defaults.yml: Paper's own options. These are safe, well-known wins:

Setting Default Change to Effect
environment.optimize-explosions false true Much faster TNT and creeper explosions.
misc.redstone-implementation VANILLA ALTERNATE_CURRENT Faster redstone. Test big contraptions first: timing can differ.
entities.armor-stands.tick true false Stops idle armor stands costing CPU (breaks armor-stand machines).
collisions.max-entity-collisions 8 2–4 Cheaper mob farms and crowded pens.
chunks.entity-per-chunk-save-limit none e.g. experience_orb: 16, arrow: 16, snowball: 8 Stops chunks saving thousands of loose entities.

To change one world only (say, a creative world), put just the changed keys in that world's paper-world.yml, not a copy of the whole file.

bukkit.yml: spawn-limits (monsters 70, animals 10 by default) set how many mobs can exist per player. Lowering monsters to 40–50 helps busy servers.

Plugins

  • Download from Hangar (Paper's own site), Modrinth, SpigotMC or the author's GitHub. Plugins get full access to your server, so never install one from a random upload. The panel's Minecraft Plugins page installs from these sites for you. Install plugins
  • The .jar goes directly in plugins/. Subfolders aren't loaded.
  • Restart after adding or updating plugins. Don't use /reload: it breaks many plugins.
  • Check /plugins: green is running, red failed to load. The console says why.

Updating plugins safely

  1. Make a backup and lock it.
  2. Create a folder plugins/update/ and put the new jars in it.
  3. Restart. Paper swaps them in during start-up.
  4. If you replace jars by hand instead, delete the old one: two copies of the same plugin (name (1).jar) give an Ambiguous plugin name error.

Update one plugin at a time when you can, so you know which one caused a problem.

Restarts and backups

  • A daily restart at a quiet time, with warnings at 5 minutes and 1 minute. It clears memory and lets plugin updates load. Schedules
  • Backups every 6 hours, with save-all just before the backup task, and a locked backup before every update.
  • Your world is the world folder (or whatever level-name says). Back up plugins/ and config/ with it; panel backups take everything.

Security

  • online-mode=true unless the server sits behind a correctly set-up Velocity proxy.
  • white-list=true and enforce-whitelist=true for private servers.
  • Few ops; use LuckPerms groups for moderators.
  • enable-rcon=false. The panel console does the same job without another open port.
  • CoreProtect, so you can roll back griefing: /co rollback u:<player> t:1d r:50.

Common problems

Problem Fix
Plugin shows red in /plugins Built for another Minecraft version, or missing a required plugin. The console names it.
Ambiguous plugin name Two copies of one plugin in plugins/. Delete the older jar.
Lag with few players Usually a farm, an entity pile-up or one plugin. Profile with /spark profiler. Fix lag
View distance change ignored spigot.yml has a number instead of default.
Server killed for memory -Xmx set too close to the plan's limit. Leave headroom.

Article information

Category
Minecraft
Read time
5 minutes
Difficulty
Intermediate
Last updated
Oct 30, 2026