
Paper Server Configuration Guide
paper-global.yml, paper-world.yml, spigot.yml, and bukkit.yml - what each config does.
Config File Hierarchy
These files exist on Paper only. Vanilla, Fabric, Forge and NeoForge have none of them, and creating one by hand does nothing.
server.properties - the vanilla settings, at the server root. Edited from the Settings tab. See server.properties Reference.
bukkit.yml - Bukkit API settings (spawn limits, chunk GC). At the server root.
spigot.yml - Spigot settings (entity tracking, mob spawn range, hopper timings, merge radius). At the server root.
config/paper-global.yml and config/paper-world-defaults.yml - Paper's own settings. These are in the config/ folder, NOT the server root; that changed in Paper 1.19 and older guides still name a single paper.yml at the root.
commands.yml, permissions.yml and help.yml are also at the root and are yours to edit.
All of them are editable from the Files tab, and all of them are included in your backups.
Paper config overrides Spigot config, which overrides Bukkit config. Where the same idea appears in more than one file, the most specific wins.
paper-global.yml Key Settings
chunk-loading-basic: player-max-chunk-load-rate (default 100) - Maximum chunks loaded per player per tick. Lower reduces memory spikes.
chunk-loading-basic: player-max-chunk-send-rate (default 75) - Maximum chunks sent to client per tick. Lower reduces bandwidth spikes.
chunk-loading-advanced: player-max-concurrent-chunk-generates (default 0, 0 = unlimited) - Limit concurrent chunk generation per player.
chunk-loading-advanced: auto-config-send-distance (default true) - Automatically adjust send distance based on view-distance.
anticheat and obfuscation - Anti-cheat settings. Don't change these unless you know what you're doing.
paper-world.yml Key Settings
entity-activation-range - How close players must be for entities to tick. Lower = less CPU but mobs freeze sooner. Defaults: animals 32, monsters 32, raiders 64, misc 16, water 16, villagers 32, flying-monsters 32.
chunks: delay-chunk-unloads-by (default 10s) - How long chunks stay loaded after a player leaves. Lower frees memory faster.
chunks: max-auto-save-chunks-per-tick (default 24) - Maximum chunks saved per tick during auto-save. Lower reduces save lag.
chunks: auto-save-interval (default default) - How often auto-save runs. Format: duration like 6000 (ticks) or 5m.
entities: spawning: per-player-mob-spawns (default true) - Distributes mob caps per player instead of globally, which prevents spawn camping. It is already on.
environment: disable-world-ticking-when-empty (default false) - Stop ticking worlds with no players. Saves CPU on servers with multiple worlds.
spigot.yml Key Settings
entity-tracking-range - How far entities are tracked. Defaults: players 48, animals 48, monsters 48, misc 32, other 64. Lower reduces bandwidth.
mob-spawn-range (default 8) - How far from players mobs can spawn. Lower concentrates spawns near players.
merge-radius - Radius for merging dropped items and XP orbs. Higher reduces entity count. Defaults: item 2.5, exp 3.0.
hopper - Hopper transfer and cooldown settings. Adjusting these can help with hopper-heavy servers.
bukkit.yml Key Settings
spawn-limits - Mob spawn caps. Defaults: monsters 70, animals 10, water-animals 5, water-ambient 20, ambient 15, axolotls 5. Lower these if you have too many mobs causing lag.
chunk-gc: period-in-ticks (default 600) - How often unloaded chunks are garbage collected.
ticks-per: animal-spawns (default 400) - Ticks between animal spawn attempts. Higher = fewer animals.
ticks-per: monster-spawns (default 1) - Ticks between monster spawn attempts. Higher = fewer monsters.
connection-throttle (default 4000) - Milliseconds before a player can reconnect after disconnecting. Helps prevent crash-loop attacks.
All Bukkit, Spigot and Paper config changes need a server restart. Stop the server before editing, then start it again - a running server rewrites these files on shutdown and will discard your edit.
