Minecraft

Optimize Paper.yml to Reduce Lag

Minecraft·March 22, 2026·25 min read

NOTE: This article is specifically for Minecraft Java Edition servers and requires Paper to work. If you are not sure which server type you are running, please check out this article to find out.

This guide will show you the settings offered by Paper that you can use to optimize your server's performance.

Below is a list of paper.yml settings and their recommended values for optimal performance. These settings have been tested and optimized to provide the best possible performance with minimal impact on gameplay.

(Note: The actual settings and values are not provided in the question. If you have specific settings you'd like recommendations on, feel free to ask.)

max-auto-save-chunks-per-tick

Default: 24

Optimized: 6

Performance impact: High

➫ This slows down incremental chunk saving during the world save task. This is incredibly important for performance as chunk saving is a very heavy operation.

Note: Setting this too low could result in unsaved chunks, so avoid reducing it too much.

optimize-explosions

Default: false

Optimized: true

Impact: Minor

➫ Paper has a very efficient algorithm for explosions with no impact on gameplay.

mob-spawner-tick-rate

Def: 1

Opt: 2

Impact: Minor

➫ This is the delay (in ticks) before an active spawner attempts to spawn mobs. Doubling the delay will not affect spawn rates and will reduce the amount of checks the server has to perform.

disable-chest-cat-detection

Def: false

Opt: true

Impact: Minor

➫ Chests search for the presence of a cat on top when a player opens them. While enabling this removes the default cat-on-chest behavior, it is negligible as the feature is rarely used.

container-update-tick-rate

Def: 1

Opt: 3

Impact: Minor

➫ This changes the frequency (in ticks) at which inventories are updated while open. Do not exceed 4 to avoid visual issues.

max-entity-collisions (in Spigot.yml in some versions)

Def: 8

Opt: 2

Impact: Medium

➫ Cramped entities (grinders, farms, etc.) will collide less and consume less TPS in the process.

grass-spread-tick-rate

Def: 1

Opt: 4

Impact: Medium

➫ The time (in ticks) before the server attempts to spread grass in chunks. This will have no impact on gameplay for most use cases.

despawn-ranges

Def: soft: 32, hard: 128

Opt: soft: 28, hard: 96

Impact: Minor

Soft = The distance (in blocks) from a player where mobs will be periodically removed.

Hard = Distance where mobs are instantly removed.

➫ Lower ranges remove background mobs and allow more to spawn in areas with player traffic. This reduces the amount of mobs overall.

reduced spawning (bukkit.yml).

hopper.disable-move-event

Def: false

Opt: true

Impact: High

➫ This will significantly reduce hopper lag by preventing InventoryMoveItemEvent from being called for EVERY slot in a container.

Warning: Plugins that listen to InventoryMoveItemEvent will break.

non-player-arrow-despawn-rate

Def: -1 (uses Spigot's arrow-despawn-rate)

Opt: 60 (3 seconds)

Impact: Minor

➫ Similar to Spigot's arrow-despawn-rate, but applies to arrows shot by skeletons. Since players cannot pick up these arrows, it makes sense to despawn them faster.

creative-arrow-despawn-rate

Def: -1 (Spigot's arrow-despawn-rate)

Opt: 60 (3 seconds)

Impact: Minor

➫ Similar to the previous setting, but for arrows shot by players that cannot be recovered (infinity bows).

prevent-moving-into-unloaded-chunks

Def: false

Opt: true

Impact: Medium

➫ Prevents players from entering an unloaded chunk (due to lag), which causes more lag. The "true" setting will teleport them back to their previous position.

Note: If you did not previously pre-generate your world (what's up with that?), this setting is critical.

use-faster-eigencraft-redstone

Def: false

Opt: true

Impact: High

➫ This setting reduces redundant redstone updates by up to 95% without breaking vanilla devices. This is the recommended redstone algorithm.

Note: If you use a plugin to change redstone algorithms, consider replacing them with this option, as the plugins typically cause more lag than the

default redstone behavior.

armor-stands-tick

Def: true

Opt: false

Impact: Minor

➫ Some items are considered entities (requiring ticking) since they interact with the world. Armor stands not ticking will result in them not being affected by gravity, water, etc.

Note: Paper also staggers item frame ticking instead of having all frames tick at once. This has a very positive impact on

TPS without any gameplay impact.

per-player-mob-spawns

Def: false

Opt: true

Impact: Minor

➫ Implements spawning behavior for a single player instead of Bukkit's random algorithms. This prevents exploiting mob spawning behavior. You can also experience a more consistent mob count around you.

Note: If you reduced spawn limits in Bukkit and notice a shortage of animals and monsters, consider increasing those limits back.

alt-item-despawn-rate

Def: false

Opt: true

Impact: Medium

➫ Removes certain items faster (or slower) than the item-despawn-rate set in Spigot. This allows you to avoid having useless items building up on the ground.

Example of despawning cobblestone and netherrack in 15 seconds:

Code (Text):

enabled: true

items:

COBBLESTONE: 300

NETHERRACK: 300

Note: Use Spigot's material list when adding items.

no-tick-view-distance

Def: -1

Opt: # > view-distance setting

Impact: N/A

➫ This is the distance at which chunks are loaded but not yet ticked outside your view distance.

Note: If you had to set your view distance very low (like 3 or 4), you could set this to 5 or 6 to improve the player experience without impacting performance.

anti-xray.enabled

Def:

false

Opt: true

Impact: N/A

➫ Although this setting does consume TPS, Paper's anti-xray is the most efficient one that exists. Engine 1 might be the best option for most servers as it consumes less TPS than Engine 2.

Still have questions?

Come chat with us and we will get back to you as soon as possible!

Contact Support