Which file holds what
Paper, and Purpur on top of it, spreads its settings over several files. The names below are the ones Paper 26.2 uses. None of these keys are on the Settings tab, which covers server.properties only, so you edit them on the Files tab.
| File | What it holds for this guide |
|---|---|
bukkit.yml | Spawn limits, spawn attempt intervals and the save interval |
spigot.yml | Entity activation range, merge radius and hopper timing, under world-settings |
config/paper-world-defaults.yml | Per-player spawns, despawn ranges, collisions, chunk saves, hopper and redstone options |
world/dimensions/minecraft/the_nether/paper-world.yml | Overrides for one dimension, here the Nether |
config/paper-global.yml | Server-wide Paper options; none of the keys below live here |
A paper-world.yml only needs the keys that should differ; the rest comes from paper-world-defaults.yml.
Two links between files matter. spawn-limits and ticks-per-spawn in the Paper world config read -1, which means the numbers in bukkit.yml apply. In spigot.yml, a section named after a world key such as minecraft:the_nether overrides world-settings.default for that dimension.

Take a baseline before you touch anything
A value only helps if you can show the difference. Paper ships spark from 1.21 on. Pick a busy moment you can repeat, such as the evening peak with players at the main farm, and record it:
Console tab, no leading slash
spark health
spark profiler start --timeout 300
spark tickmonitor --threshold-tick 50Note the median and maximum tick durations and keep the profiler link. tickmonitor reports each tick over 50 milliseconds, so you see whether the trouble is steady or comes in spikes. The spark guide explains the report; here it matters whether entities, block entities or chunk saving lead the tree.
On the Files tab, press Download next to bukkit.yml, spigot.yml and the files in config first. Uploading the old file puts a bad change back exactly.
Entity activation range in spigot.yml
Inside the simulation distance every mob is loaded, but it does not have to think at full speed. Activation range is the distance in blocks around a player where entities tick normally. Further out they tick less often, woken now and then for a short burst. Vanilla has no such range, listed as 0.
| Key under entity-activation-range | Default | Covers |
|---|---|---|
animals | 32 | Cows, sheep, chickens and other passive mobs |
monsters | 32 | Hostile mobs on the ground |
raiders | 64 | Pillagers and the rest of a raid |
misc | 16 | Dropped items and other small entities |
water | 16 | Fish, squid and other water mobs |
villagers | 32 | Villagers |
flying-monsters | 32 | Phantoms, ghasts and other flyers |
Lowering animals and monsters a few blocks cuts the cost of big pens and caves full of mobs nobody is near. Lowering misc has a catch the Paper documentation spells out: outside that range, items riding a water stream can stutter, rubber-band or seem to move backwards. Long item transport lines far from players show it first.
- Farm players notice that mobs outside the range of the AFK spot act in bursts instead of steadily.
- Raid farms keep raiders fully active up to 64 blocks away; a smaller number slows more of the raid.
- `tick-inactive-villagers` is
true, so villagers keep ticking outside their range.falsesaves work in large trading halls, but distant villagers then only tick during short wake-up bursts.
Item and experience merging
| Setting | File | Default | Raising or enabling it |
|---|---|---|---|
merge-radius.item | spigot.yml | 0.5 | Dropped items combine across a wider gap, so a pile becomes fewer entities |
merge-radius.exp | spigot.yml | -1 (off) | Orbs combine when they appear; vanilla does not do this |
experience-merge-max-value | paper-world-defaults.yml | -1 (no cap) | A cap stops orbs from merging into one huge orb |
only-merge-items-horizontally | paper-world-defaults.yml | false | Items on different heights no longer merge, as in vanilla |
Merging pays at item farms that drop hundreds of items on one spot, since every separate item is an entity to move and check. Raise the item radius in small steps: the larger it gets, the further stacks travel to join, and players at a collection point see drops hop across the floor.
chunks.entity-per-chunk-save-limit in the Paper world config caps how many entities of one type a chunk saves and loads. It reads -1, no limit, for experience orbs, snowballs, ender pearls, arrows, fireballs and small fireballs, and any entity type can be added. A limit on arrows keeps a skeleton farm floor from reloading every stray arrow; whatever is over the limit is gone after the next load.
Spawn limits, spawn intervals and per-player spawns
bukkit.yml, the defaults
spawn-limits:
monsters: 70
animals: 10
water-animals: 5
water-ambient: 20
water-underground-creature: 5
axolotls: 5
ambient: 15
ticks-per:
animal-spawns: 400
monster-spawns: 1
water-spawns: 1
water-ambient-spawns: 1
water-underground-creature-spawns: 1
axolotl-spawns: 1
ambient-spawns: 1
autosave: 6000A spawn limit is the mob cap for that group, scaled by the loaded chunks around players divided by 289, the 17 by 17 square around one player. ticks-per counts the ticks between spawn attempts: 1 tries every tick, animals only every 400 ticks, 20 seconds.
per-player-mob-spawns in the Paper world config is true, unlike vanilla. The cap is counted per player, so one person's dark caves cannot use up everyone's monsters, with about the same total spread more fairly.
| Change | What it saves | Who notices |
|---|---|---|
monsters from 70 to 50 | Fewer hostile mobs loaded at once | Mob farm owners: fewer drops per hour |
monster-spawns from 1 to 2 | Half as many spawn attempts | Mob farms fill more slowly; caves feel emptier |
ambient from 15 to 5 | Fewer bats | Almost nobody |
water-ambient from 20 to 10 | Fewer fish in oceans | Players with fish farms |
animal-spawns above 400 | Very little, it already waits 20 seconds | Usually not worth it |
Farms are built for the vanilla numbers
Farm tutorials quote rates for the vanilla cap. Tell your builders what you lowered, or the first complaint will be that a proven design is broken.
Despawn ranges in the Paper world config
Vanilla removes a mob outright once it is more than 128 blocks from every player, and beyond 32 blocks it may disappear at random. Fish and other water ambient mobs go at 64 instead of 128. Paper sets both numbers per mob category under entities.spawning.despawn-ranges: hard is the outright distance, soft the random one, and both read default until changed.
config/paper-world-defaults.yml
entities:
spawning:
despawn-ranges:
monster:
hard: 96
soft: 32A lower hard range clears hostile mobs sooner after players walk off, so the cap is not held by mobs nobody will meet. despawn-range-shape stays ELLIPSOID, the vanilla shape; CYLINDER checks height apart from a round horizontal range.
Sky farms and perimeter farms
Natural spawning still reaches 128 blocks from a player. A farm with its AFK spot high above the spawning floor, or beside a dug out perimeter, needs mobs to survive at that distance. Measure from the AFK spot to the far platforms before going under 128.
Hoppers and redstone
| Setting | File | Default | Effect of changing it |
|---|---|---|---|
ticks-per.hopper-transfer | spigot.yml | 8 | Ticks between item moves; higher makes every hopper slower |
ticks-per.hopper-check | spigot.yml | 1 | Ticks between checks for items to pull |
hopper-amount | spigot.yml | 1 | Items moved per transfer, up to a stack |
hopper.cooldown-when-full | paper-world-defaults.yml | true | A full hopper waits instead of retrying every tick |
hopper.disable-move-event | paper-world-defaults.yml | false | Much faster hoppers, but protection plugins stop seeing hopper moves |
hopper.ignore-occluding-blocks | paper-world-defaults.yml | false | Hoppers skip containers hidden inside solid blocks |
At 8 ticks a hopper moves 2.5 items per second, the vanilla speed sorters, hopper clocks and storage systems are timed around. At 16, hoppers move items half as often and every sorter runs at half speed or backs up. Raising hopper-amount alongside keeps throughput but moves items in lumps that single-item filters do not expect. Redstone players notice either change on the first test run.
Keep disable-move-event off on any server with claims or a block logger, because those plugins use that event to stop hoppers draining protected chests.
misc.redstone-implementation is VANILLA. ALTERNATE_CURRENT and EIGENCRAFT compute redstone dust with far fewer block updates, which helps when long dust lines show up in the profile. Both change dust behaviour. Alternate Current makes the update order independent of where a wire sits, where vanilla's depends on location. It aims to stay close to vanilla, but builds tuned to vanilla update order may act differently.
Collisions and chunk saves
collisions.max-entity-collisions is 8, where vanilla has no practical limit. Past that many, the server stops processing further collisions for an entity, which counts in crowded pens and mob chambers. A lower number saves more, but crowded mobs push each other less, so farms that rely on mobs shoving each other into a water stream can slow down. An old max-entity-collisions in spigot.yml is taken over by Paper.
collisions.only-players-collide is false. Set to true, a collision is only calculated when a player is one of the two, which ends mob against mob pushing everywhere, farms and sorters included.
Saving is disk work inside the tick. ticks-per.autosave in bukkit.yml is 6000 ticks, five minutes, and chunks.auto-save-interval follows it while it reads default. chunks.max-auto-save-chunks-per-tick is 24, against 200 in vanilla, so a save spreads over more ticks. If tickmonitor shows a spike every five minutes, lower that number first. Nobody notices this one in game.
A careful order to change them
Start with what players cannot see
Lower
max-auto-save-chunks-per-tickif saves spike, lower theambientlimit, and check thathopper.cooldown-when-fullis stilltrue. Press Restart and repeat the baseline.Then activation range
Bring
animalsandmonstersdown a few blocks at a time. Leavemiscandwateralone where items travel through water.Then merging and save limits
Raise the merge radius a little and add limits for the entity types that pile up in your farms.
Spawn limits and despawn ranges with notice
These change farm rates. Announce the numbers, change one, and measure the same moment as the baseline.
Hoppers, collisions and redstone last
Try these on a copy of the server with the builds that matter before the live world gets them.
Change one file per restart and write down what changed. A broken YAML indent can stop the server from starting, so watch the console after each save. If ticks stay slow, look at how far the world ticks around players and terrain generated while players explore.
Written and checked by the Lodehost team, last reviewed on 14 September 2026.




