
paper-global.yml (Paper 1.19+)
chunk-system:
worker-threads: -1 # Auto-detect; set to (CPU cores - 1) manually for best results
gen-parallelism: default
misc:
max-joins-per-tick: 3 # Prevents login lag spikes on mass-join
packet-limiter:
max-packet-rate: 500 # Prevents packet flood exploits
watchdog:
early-warning-every: 5000
early-warning-delay: 10000
paper-world-defaults.yml
These settings have the highest TPS impact:
# Entity optimizations
entities:
spawning:
count-all-mobs-for-spawning: false # Improves spawn consistency
creative-arrow-despawn-rate: 20
non-player-arrow-despawn-rate: 20
# Hopper throttling - one of the biggest hidden lag sources
hopper:
cooldown-when-full: true # HUGE - prevents hoppers burning CPU when full
disable-move-event: false
ignore-occluding-blocks: true
# Redstone
redstone-implementation: EIGENCRAFT # Major improvement vs. vanilla redstone
# Mob AI throttling
entity-activation-range:
animals: 32
monsters: 32
raiders: 48
misc: 16
water: 16
flying-monsters: 32
villagers: 32
villagers-work-immunity-after: 100
villagers-work-immunity-for: 20
villagers-active-for-panic: true
tick-inactive-villagers: true
wake-up-inactive:
animals-max-per-tick: 4
animals-every: 1200
animals-for: 100
monsters-max-per-tick: 8
monsters-every: 400
monsters-for: 100
villagers-max-per-tick: 4
villagers-every: 600
villagers-for: 100
flying-monsters-max-per-tick: 8
flying-monsters-every: 200
flying-monsters-for: 100
The Hopper Cooldown Setting
This is the single most impactful setting on servers with any automated item sorting. By default, hoppers attempt to transfer items on every game tick - even when they are full. cooldown-when-full: true makes hoppers stop attempting transfers when they have nowhere to put items. For servers with large sorting systems, this drops hopper-related CPU usage by 40 - 60%.
Spawn Limits in bukkit.yml
spawn-limits:
monsters: 50
animals: 10
water-animals: 5
water-ambient: 20
water-underground-creature: 5
axolotls: 5
ambient: 5
The default monsters: 70 allows 70 hostile mobs per player chunk radius. Lowering this to 50 has no noticeable gameplay impact on survival servers but reduces mob AI processing by ~25%.
Measuring Your Improvements
Before applying these settings, run:
/spark tps --milliseconds
Note the average MSPT (milliseconds per tick). Apply one configuration change, restart, let the server run for 15 minutes, then re-measure. Changes that improve MSPT are keepers.
On a 50-player Space-Node test server, applying the above settings collectively dropped average MSPT from 28ms to 18ms - a meaningful improvement that brings TPS from ~16 to a stable 19+.