Paper Optimization Guide

By saintjust

Updated for Version 1.16.2

Since 1.13, Minecraft servers have gotten progressively harder to run. Paper, a fork of Spigot, offers many settings that greatly improve performance. For this guide, we will be dealing with four main files. Keep in mind, this guide merely provides suggestions, and should not be taken exactly, as every server is different.

server.properties

allow-flight

Default: false

Recommended: true

Importance: Very Low

Explanation: Stops players from getting kicked for flying, hack clients will normally bypass this anyway.

view-distance

Default: 10

Recommended: 4-7

Importance: Very High

Explanation: This is a big performance setting as it sets how many chunks around the player should be 鈥渁ctive鈥 at any given moment. This is not how far the player can see. (See paper.yml鈥檚 鈥渘o-tick-view-distance鈥.

bukkit.yml

spawn-limits

Default: monsters:70, animals:10, water-animals:15, ambient:15

Recommended: monsters:30, animals:8, water-animals:2, water-ambient: 2, ambient:0

Importance: High

Explanation: Entities are a large cause of lag in newer versions. Simply put, lower values mean less mobs spawning. Do not set these limits too low or players will notice a shortage of mobs. You can experiment with this setting and go higher/lower if you feel like your server needs it. Ambient mobs are set to 0 as the only ambient mobs are bats, which can cause quite a bit of lag and are useless.

chunk-gc.period-in-ticks

Default: 600

Recommended: 400

Importance: Medium

Explanation: This option will unload empty chunks faster, which will lead to less TPS consumption by the server.

ticks-per.monster-spawns

Default: 1

Recommended: 4

Importance: Medium

Explanation: This option will increase how often (in ticks) the server tries to spawn a hostile mob. Slightly increasing the time in between monster spawns will not impact spawn rates, and if you are noticing substantial TPS loss due to mobs, you can try raising this option even more.

spigot.yml

save-user-cache-on-stop-only

Default: true

Recommended: False

Importance: Medium

Explanation: Toggles whether to constantly save new user cache data to disk or only to do so when the server stops.

moved-wrongly-threshold

Default: 0.0625

Recommended : 1.0

Importance: Very Low

Explanation: Decreases the amount of players from getting rubber banded, you should use an anti-cheat instead to prevent movement hacks.

moved-too-quickly-multiplier

Default: 10

Recommended: 200

Explanation: Decreases the amount of players from getting rubber banded, you should use an anti-cheat instead to prevent movement hacks.

mob-spawn-range

Default: 8

Recommended: 3-6

Importance: Medium

Explanation: This option sets how far from the player mobs will attempt to spawn. If you are using a view-distance lower than 6, this option is best set at 1 lower than your view distance. This value should never be higher than your view-distance, or you will experience inconsistent mob behavior.

entity-activation-range

Default: animals: 32, monsters: 32, raiders: 48, misc: 16, water: 16

Recommended: animals: 16, monsters: 24, raiders: 16, misc: 8, water: 8

Importance: High

Explanation: Entities outside of the defined range will be ticked less often, which has a large impact on server performance. Avoid setting this option too low or you could break some mob behaviors, such as raids and mob aggression.

tick-inactive-villagers

Default: true

Recommended: false

Importance: Medium

Explanation: This option sets whether or not villagers outside of the standard mob activation range should be ticked. Villagers can be very performance heavy, however, this setting can affect villager breeders.

ticks-per.hopper-transfer

Default: 8

Recommended: 32

Importance: Low

Explanation: This option will slow down hoppers to transferring items only once per second. This option is not essential, but can reduce hopper inflicted lag,

hopper-amount

Default: 1

Recommended: 4

Importance: Low

Explanation: This option is very 鈥減er-server鈥 and reduces the amount of times that a hopper needs to move an item. This setting will negatively impact item sorters. If you are playing on a very technical server and looking to keep vanilla mechanics, do not change this setting.

merge-radius

Default: item:2.5, exp:3.0

Recommended: item:5.0, exp:6.0

Importance: Medium

Explanation: Large amounts of dropped items and experience can cause a significant performance hit. This option will allow more items to appear in 鈥減iles鈥, reducing lag.

enable-zombie-pigmen-portal-spawns

Default: true

Recommended: false

Importance: Medium

Explanation: This is another, 鈥減er-server鈥 option. If you are attempting to stay close to vanilla behaviors, you will want to keep this option as true. Setting this option to false will prevent players from making large overworld Zombie Pigmen farms, which can cause a large amount of entity lag.

max-entity-collisions

Default: 8

Recommended: 0-4

Importance: Medium

Explanation: Having many entities in one area can cause extreme lag on a server through entity collisions. If you plan on disabling it completely, this means that players won't be able to push mobs, so you'll need to find some other way for them to push mobs (like being able to lead villagers).

paper.yml

max-auto-save-chunks-per-tick

Default: 24

Recommended: 6-8

Importance: Very High

Explanation: Chunk saving is incredibly inefficient in modern versions of Minecraft. This option will slow incremental chunk saving. Setting this too low can result in unsaved chunks; If you have a larger player base that is very spread out throughout the map, you should keep this around 8 to be safe.

optimize-explosions

Default: false

Recommended: true

Importance: Medium

Explanation: Paper will very efficiently optimize and clean up explosions. This will have no impact on game play, so there is no reason to keep this disabled.

mob-spawner-tick-rate

Default: 1

Recommended: 2-6

Importance: Medium

Explanation: This option defines the delay before an active spawner attempts to spawn a mob. Spawners can have a significant impact on server resources; Most servers should be fine with this option on 2 or 3, however, servers with a heavy spawner focus should keep this around 5 or 6 for the best performance.

container-update-tick-rate

Default: 1

Recommended: 2-3

Importance: Low

Explanation: This option defines how often inventories are refreshed. Do not set this above 3, or else you will experience visual glitches.

armor-stands-do-collision-entity-lookups

Default: true

Recommended: false

Importance: Low

Explanation: Stops armor stands from checking for collisions, they normally won't be colliding so this option can normally be safely disabled. (May break vehicles / other plugins & datapacks that rely on it).

armor-stands-tick

Default: true

Recommended: false

Importance: Low

Explanation: Stops armor stands from being ticked, (May break vehicles / other plugins & datapacks that rely on it).

disable-chest-cat-detection

Default: false

Recommended: true

Importance: Low

Explanation: This option sets whether or not chests will test if a cat is sitting on top of it. This mechanic is useless and causes lag, so it is best to enable this option.

max-entity-collisions

Default: 8

Recommended: 4-6

Importance: High

Explanation: Having many entities in one area can cause extreme lag on a server. This option can give players some difficulty in pushing around mobs, so do not lower it too much unless you are having severe mob related lag.

grass-spread-tick-rate

Default: 1

Recommended: 4

Importance: Medium

Explanation: This option sets the amount of time before grass will attempt to spread to a dirt block. This option will have almost no impact on gameplay, however, Skyblock servers may wish to keep this at default.

despawn-ranges

Default: soft: 32, hard: 128

Recommended: soft: 28, hard: 96

Importance: High

Explanation: This option will clear mobs and allow more to be spawned near players. You should experiment with this option and see what works best with your respective view-distance.

non-player-arrow-despawn-rate

Default: -1

Recommended: 1

Importance: Low

Explanation: You cannot pick these items up, so there is no reason to have them stay in the world.

creative-arrow-despawn-rate

Default: -1

Recommended: 1

Importance: Low

Explanation: You cannot pick these items up, so there is no reason to have them stay in the world.

prevent-moving-into-unloaded-chunks

Default: false

Recommended: true

Importance: Very High

Explanation: This setting is critical, if a player attempts to enter an unloaded chunk, the server can experience high amounts of lag, so this option will teleport them out.

use-faster-eigencraft-redstone

Default: false

Recommended: true

Importance: Very High

Explanation: This setting will optimize redstone without breaking vanilla contraptions. It significantly reduces lag, and there is no reason to not have this enabled.

per-player-mob-spawns

Default: false

Recommended: true

Importance: Very High

Explanation: This option is critical to servers and better represent single-player behavior. Additionally, this option will evenly distribute mob spawns so that one player does not receive all spawns.

no-tick-view-distance

Default:

Recommended: 6-12

Importance: Very High

Explanation: This option is critical, it will allow players to see farther than the defined view-distance in server.properties. Things such as entities won鈥檛 be ticking in the no-tick-view-distance, and will give the illusion of a higher view-distance.

anti-xray-enabled

Default: false

Recommended: true

Importance: Low

Explanation: This option will effectively stop X-raying on your server, with a slight performance cost. Engine 1 is less heavy, but can be bypassed, so Engine 2 is recommended for survival servers.

Recommended Plugins for Performance:

Farm Limiter(Paid) - Farm Limiter prevents players from making abnormal mob farms, limiting groups of near entities of the same type.

Spark - Diagnoses performance of your server, and provides server health reports.

What to avoid:

ClearLagg & other entity clear plugins - Plugins like these will kill & remove all entities, which will temporarily help with lag, but mobs will spawn back very quickly, and this will also causes additional lag, while the amount of entities will go back up to what it was before.