GameGrid
Paper World Configuration Guide - visual guide

Paper World Configuration Guide

Understand Paper's split config system and the most important optimization settings.

Paper Config File Structure (1.19+)

Everything here is Paper only. Of the five Minecraft server types GameGrid offers, only Paper has these files - Vanilla, Fabric, Forge and NeoForge do not read them and creating one by hand does nothing.

Paper 1.19 and later split the old paper.yml into several files:

config/paper-global.yml - Server-wide settings that apply to all worlds.

config/paper-world-defaults.yml - Default settings for all worlds. Individual worlds can override these.

world/dimensions/[namespace]/[key]/paper-world.yml - Per-world overrides. Only copy values you want to change; everything else inherits from the defaults.

If you are upgrading from Paper 1.18 or earlier, the old paper.yml is backed up to config/legacy-backup/paper.yml.old and your settings are migrated automatically.

Edit these from the Files tab with the server stopped, and restart afterwards. A running Paper server rewrites them on shutdown and will discard your edit. Both files are included in your backups.

Key Global Settings

In config/paper-global.yml:

chunk-loading-basic.player-max-chunk-send-rate (default 75.0) - Maximum chunks sent per second per player. Lower this if players are experiencing lag on join.

chunk-loading-basic.player-max-chunk-load-rate (default 100.0) - Maximum chunks loaded per second per player. Lower this to reduce CPU spikes.

misc.max-joins-per-tick (default 5) - Limits how many players can join per tick. Useful for large servers to prevent join floods.

Key World Settings

In config/paper-world-defaults.yml:

chunks.max-auto-save-chunks-per-tick (default 24) - How many chunks the server saves per tick during autosave. Lower this if autosave causes lag spikes.

chunks.delay-chunk-unloads-by (default 10s) - How long chunks stay loaded after a player leaves. Lower this to free memory faster.

entities.spawning.spawn-limits.monster (default -1) - Caps hostile mobs for this world. -1 means "use bukkit.yml", where spawn-limits.monsters defaults to 70. Set a number here (e.g., 40) for better performance on busy servers.

redstone-implementation (default VANILLA) - Set to ALTERNATE_CURRENT for faster redstone processing. This is one of the biggest redstone performance improvements.

Per-World Overrides

If you want different settings for specific worlds (e.g., higher mob limits in the Nether, lower in the Overworld), create a paper-world.yml in the world's directory.

Only include the settings you want to override. Everything else inherits from paper-world-defaults.yml.

Example: To disable mob spawning in just the Nether, create world_nether/dimensions/minecraft/the_nether/paper-world.yml with:

entities: { spawning: { spawn-limits: { monster: 0, creature: 0, water_creature: 0 } } }

This is useful for event worlds, creative worlds, or worlds with special rules.