
The best Paper settings for performance include switching to ALTERNATE_CURRENT redstone, lowering villager tick rates, enabling per-player mob spawns, capping auto-save chunks per tick, and tuning entity despawn ranges. These changes alone can recover 2-5 TPS on a busy server without noticeably affecting gameplay.
Paper is the most popular performance-focused Minecraft server software, but most admins install it and never touch the config files. That's leaving free performance on the table. This guide covers every setting worth changing in Paper's two config files, paper-global.yml and paper-world-defaults.yml, for Paper 1.20 and newer. If you need a broader overview of all server config files, see our lag-free settings guide. For help installing Paper, check out our Paper installation guide.
Paper Global Settings
paper-global.yml controls server-wide behavior that applies to all worlds. Most defaults here are fine, but a few settings are worth adjusting.
Chunk Loading Threads
async-chunks:
threads: -1
The default value of -1 lets Paper auto-detect the optimal thread count based on your CPU. Leave this alone unless you have a specific reason to override it. Paper's auto-detection is accurate for the vast majority of servers.
Chunk Loading Rate Limits
chunk-loading-basic:
autoconfig-send-distance: true
player-max-chunk-load-rate: -1.0
player-max-concurrent-chunk-loads: 0.0
chunk-loading-advanced:
auto-config-send-distance: true
player-max-concurrent-chunk-generates: 0.0
player-max-chunk-generate-rate: -1.0
These control how fast chunks are sent and generated per player. The defaults use Paper's auto-configuration, which adapts based on server load. For servers with 20+ players, you can manually cap player-max-chunk-load-rate to 100.0 and player-max-concurrent-chunk-loads to 4.0 to prevent individual players from consuming too many resources during exploration or teleportation. For more on chunk loading, see our chunk loading lag guide.
Packet Limiter
packet-limiter:
kick-message: '<red>Too many packets!'
limits:
all:
interval: 7.0
max-packet-rate: 500.0
ServerboundPlaceRecipePacket:
interval: 4.0
max-packet-rate: 5.0
action: DROP
This protects against packet-spam crashes. The defaults are sensible. Only adjust if you're experiencing false kicks on high-latency connections, in which case bumping max-packet-rate to 600.0 can help.
Piston Duplication
unsupported-settings:
allow-piston-duplication: true
This is false by default. Many SMP servers set it to true because TNT and carpet duplication are considered accepted vanilla mechanics by a large portion of the community. If your players expect vanilla-like behavior, enable this. If you want a stricter experience, leave it off.
Chunk Settings
These live in paper-world-defaults.yml under the chunks section and directly affect chunk loading performance.
chunks:
max-auto-save-chunks-per-tick: 8
delay-chunk-unloads-by: 10s
prevent-moving-into-unloaded-chunks: true
entity-per-chunk-save-limit:
arrow: 16
ender_pearl: 16
experience_orb: 16
fireball: 8
small_fireball: 8
snowball: 16
- max-auto-save-chunks-per-tick: The default is
24. Lowering this to8spreads autosave writes across more ticks, eliminating the lag spikes that happen every few minutes when the server saves world data. This is one of the highest-impact changes you can make. - delay-chunk-unloads-by: Keeps chunks in memory for 10 seconds after all players leave them. If a player backtracks, the chunk loads instantly from memory instead of reading from disk. The default is fine for most servers.
- prevent-moving-into-unloaded-chunks: Stops players from entering chunks that haven't loaded yet, preventing them from falling through the world during lag spikes.
- entity-per-chunk-save-limit: Caps how many of each entity type are saved per chunk. Without this, a single chunk full of dropped arrows or XP orbs can bloat your save file and cause loading lag.
Entity and Spawning Settings
Entity processing is one of the biggest TPS drains on any server. These settings reduce the load without gutting gameplay.
Despawn Ranges
entities:
spawning:
despawn-ranges:
ambient:
hard: 72
soft: 30
axolotls:
hard: 72
soft: 30
creature:
hard: 72
soft: 30
misc:
hard: 72
soft: 30
monster:
hard: 72
soft: 30
water_ambient:
hard: 56
soft: 28
water_creature:
hard: 56
soft: 28
- soft range: Mobs beyond this distance have a random chance to despawn each tick. Default is
32, lowering to28-30slightly reduces distant mob counts. - hard range: Mobs beyond this distance despawn immediately. Default is
128, but lowering to72(or56for water mobs) dramatically reduces the total number of entities the server tracks. Most players never notice mobs beyond 72 blocks. For more entity optimization, see our entity lag guide.
Mob Spawning
per-player-mob-spawns: true
count-all-mobs-for-spawning: true
- per-player-mob-spawns: Distributes the mob cap evenly across all online players instead of using a global cap. Without this, one player in a mob farm can consume the entire server's mob budget, leaving other areas empty. This should always be
true. - count-all-mobs-for-spawning: Counts all mobs toward the cap, not just naturally spawned ones. Prevents mob count from spiraling out of control.
Item Despawn Rates
alt-item-despawn-rate:
enabled: true
items:
cobblestone: 300
netherrack: 300
sand: 300
red_sand: 300
gravel: 300
dirt: 300
short_grass: 300
kelp: 300
bamboo: 300
sugar_cane: 300
twisting_vines: 300
weeping_vines: 300
oak_leaves: 300
spruce_leaves: 300
birch_leaves: 300
jungle_leaves: 300
acacia_leaves: 300
dark_oak_leaves: 300
mangrove_leaves: 300
cactus: 300
diorite: 300
granite: 300
andesite: 300
scaffolding: 600
Items normally despawn after 6,000 ticks (5 minutes). Junk items like cobblestone, dirt, and leaves don't need to sit on the ground that long. Setting them to 300 ticks (15 seconds) keeps the ground clean and reduces entity count significantly on busy servers.
Villager Tick Rates
behavior:
villager:
validatenearbypoi: 60
sensor:
villager:
secondarypoisensor: 80
nearestbedsensor: 80
villagerbabiessensor: 40
playersensor: 40
nearestlivingentitysensor: 40
Villager AI is notoriously expensive. Every villager constantly scans for nearby points of interest (beds, workstations), other villagers, and threats. Increasing these tick intervals means villagers check less often, which massively reduces CPU usage in villages and trading halls. The values above are safe starting points that don't visibly break villager behavior.
Armor Stand Optimization
armor-stands:
do-collision-entity-lookups: false
tick: false
Armor stands don't need to tick or check for collisions in most cases. Setting both to false eliminates pointless processing. The only exception is if you use plugins that animate armor stands, in which case keep tick: true.
Environment and Redstone Settings
Redstone Implementation
environment:
redstone-implementation: ALTERNATE_CURRENT
This is the single most impactful performance setting in Paper. The default VANILLA redstone implementation recalculates the entire redstone network for every single update. ALTERNATE_CURRENT (based on the Alternate Current mod) uses a smarter algorithm that only updates what actually changed. On servers with any amount of redstone, this can reduce redstone-related tick time by 90% or more.
The only trade-off is that certain extremely niche quasi-connectivity exploits may behave slightly differently. For 99% of redstone builds, including complex ones, ALTERNATE_CURRENT works identically to vanilla.
Other Environment Settings
optimize-explosions: true
treasure-maps:
enabled: false
find-already-discovered:
loot-tables: true
villager-trade: true
- optimize-explosions: Caches explosion damage calculations instead of recalculating them for every block. No gameplay difference, just faster explosions.
- treasure-maps.enabled: Set to
falseto prevent the server from searching thousands of chunks for unexplored structures when a player trades with a cartographer. This search is one of the most expensive single operations in the game and can freeze the server for seconds. If you want to keep treasure maps functional, at least setfind-already-discoveredtotrueso it returns nearby structures instead of searching endlessly.
Collision and Misc Settings
collisions:
max-entity-collisions: 2
fix-climbing-bypassing-cramming-rule: true
- max-entity-collisions: Default is
8. Every entity checks for collisions with nearby entities each tick. Lowering to2dramatically reduces collision calculations in areas with lots of mobs, players, or item frames. Players rarely notice the difference. - fix-climbing-bypassing-cramming-rule: Prevents mobs from bypassing the entity cramming limit by climbing ladders or vines. Closing this exploit keeps mob farms from overloading chunks.
Settings to Leave Alone
Not every "optimization guide" gives good advice. Some commonly recommended changes break vanilla behavior in ways that frustrate players:
- Don't set view-distance below 4. Extremely low view distances break mob spawning mechanics and make the game feel claustrophobic. 6-8 is the sweet spot for most servers.
- Don't disable mob spawning categories. Turning off ambient or water mob spawning saves minimal TPS but makes the world feel dead.
- Don't set all tick rates to extreme values. Villager tick rates of 200+ cause villagers to stop pathfinding and break trading mechanics. The values in this guide are tested safe limits.
- Don't blindly copy configs. Every server is different. A technical SMP with redstone farms needs different tuning than a casual survival server. Start with the settings in this guide and adjust based on your TPS.
Running Paper on hardware that can keep up? Minecraft Server Hosting with NVMe storage and high single-thread CPU performance to get the most out of these settings.
Frequently Asked Questions
What is paper-world-defaults.yml?
It's Paper's per-world configuration file that controls gameplay mechanics, entity behavior, chunk handling, and environment settings. Changes here apply to all worlds by default. You can override settings for specific worlds by creating config files in each world's folder.
Do Paper settings affect vanilla gameplay?
Most settings in this guide are transparent to players. The biggest potential change is ALTERNATE_CURRENT redstone, which works identically for 99% of builds but may behave slightly differently for extremely niche quasi-connectivity setups. Despawn range changes and villager tick rate adjustments are invisible to most players.
What is the most impactful Paper setting to change?
redstone-implementation: ALTERNATE_CURRENT for servers with redstone, and max-auto-save-chunks-per-tick: 8 for eliminating autosave lag spikes. Together, these two changes handle the most common TPS issues on Paper servers.
Should I use ALTERNATE_CURRENT redstone?
Yes, unless your server specifically relies on niche redstone behaviors that require vanilla's exact update order. For SMP, survival, minigame, and most technical servers, ALTERNATE_CURRENT works perfectly and is dramatically faster.
How do I reset Paper settings to defaults?
Delete the paper-global.yml and paper-world-defaults.yml files and restart the server. Paper regenerates them with default values. You can also check Paper's documentation for the default value of any specific setting.
Does Paper replace Spigot settings?
No. Paper runs on top of Spigot, so spigot.yml, bukkit.yml, and server.properties all still apply. Paper's config files add additional settings on top of those. For a complete walkthrough of all config files, see our lag-free server settings guide.

