Minecraft
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:MaxRAMPercentageso Java takes a share of your plan automatically. Never set-Xmxto 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
.jargoes directly inplugins/. 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
- Make a backup and lock it.
- Create a folder
plugins/update/and put the new jars in it. - Restart. Paper swaps them in during start-up.
- 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-alljust before the backup task, and a locked backup before every update. - Your world is the
worldfolder (or whateverlevel-namesays). Back upplugins/andconfig/with it; panel backups take everything.
Security
online-mode=trueunless the server sits behind a correctly set-up Velocity proxy.white-list=trueandenforce-whitelist=truefor 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. |
