Paper has dozens of configuration options spread across multiple files. Most admins never touch them, leaving performance on the table. Here are the settings that actually matter.
paper-global.yml
Async Chunk Loading
chunk-loading-basic:
autoconfig-send-distance: true
chunk-loading-advanced:
auto-config-send-distance: true
player-max-chunk-generate-rate: 10.0
player-max-chunk-load-rate: 50.0
player-max-chunk-send-rate: 75.0
Limiting chunk generation rate prevents single players from monopolizing the CPU when flying with elytra. Setting player-max-chunk-generate-rate to 10 means each player can generate at most 10 new chunks per second.
Packet Limiter
packet-limiter:
kick-message: '<red>Connection throttled'
limits:
all:
interval: 7.0
max-packet-rate: 500.0
PacketPlayInAutoRecipe:
interval: 4.0
max-packet-rate: 5.0
action: DROP
This protects against packet spam exploits and reduces unnecessary server processing.
paper-world-defaults.yml
Entity Processing
entities:
spawning:
monster-spawn-range: 6
creative-arrow-despawn-rate: 60
non-player-arrow-despawn-rate: 60
behavior:
spawner-nerfed-mobs-should-jump: false
zombie-villager-infection-chance: default
Reducing monster-spawn-range from the default 8 to 6 concentrates mob spawns closer to players, reducing the total number of loaded mobs while maintaining farm efficiency.
Arrow despawn at 60 ticks (3 seconds) instead of the default 1200 ticks (60 seconds) eliminates thousands of unnecessary entity updates on PvP servers.
Mob Caps
spawn-limits:
monster: 50
creature: 8
ambient: 1
axolotls: 3
underground-water-creature: 3
water-creature: 3
water-ambient: 3
These are per-player mob caps. Reducing monsters from 70 to 50 cuts mob-related processing by 30% with barely noticeable gameplay impact. Players won't notice 50 vs 70 monsters, but your TPS will.
Hopper Optimization
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-above: false
cooldown-when-full: true prevents hoppers from checking for items when they're already full. On servers with large hopper systems, this alone can improve TPS by 1-2 points.
spigot.yml
Activation Ranges
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 24
flying-monsters: 48
tick-inactive-villagers: true
Activation ranges control how far from a player entities actually "think" (pathfind, target, etc.). Reducing these from defaults saves significant CPU:
| Setting | Default | Optimized | CPU Savings | |---------|---------|-----------|-------------| | animals | 32 | 16 | ~15% entity processing | | monsters | 32 | 24 | ~10% entity processing | | misc | 16 | 8 | ~5% entity processing |
Merge Ranges
merge-radius:
item: 3.5
exp: 4.0
Increasing item and XP merge radius means fewer individual entities on the ground. Instead of 100 separate item drops, they merge into 20-30 stacks. Massive TPS improvement at mob farms.
Measuring Your Results
After making changes, use Spark to measure the impact:
/spark tps
/spark tickmonitor --threshold 50
The tick monitor shows you exactly which ticks exceed your threshold. Run it before and after optimization to see real numbers.
On Space-Node's Ryzen 9 7950X3D hardware, these optimizations can push a 50-player server from 16-17 TPS to a stable 19.5+ TPS. Hardware sets the ceiling, but configuration determines how close you get to it.
