Paper ships with sensible defaults. A handful of them are conservative for a busy server, and a much larger handful are fine exactly as they are — which is why copying somebody's «ultimate optimised config» usually changes gameplay more than it changes TPS.
The ones that earn their keep
| Setting | File | What it does |
|---|---|---|
entity-activation-range | spigot.yml | How close a player must be for an entity to tick. Lowering it is the single biggest win on a server with many mobs. |
merge-radius | spigot.yml | How aggressively dropped items and experience stack together. Fewer entities means fewer things to tick. |
disable-move-event | paper-world-defaults.yml | Stops hoppers firing an event on every item movement. Safe unless a plugin depends on that event. |
max-auto-save-chunks-per-tick | paper-world-defaults.yml | Spreads the world save over more ticks instead of one long freeze. |
Cutting spawn-limits in bukkit.yml reduces load because fewer mobs exist. It also means mob farms stop producing and caves feel empty. That may be the right call for your server — but make it deliberately, not because a config pack set it to a third of default.
How to change any of them without guessing
- Measure first
/spark profiler start, play normally for five minutes, then stop it. You now know what is actually expensive on your server rather than on somebody else's. - Change one value
One value, then a restart, then the same measurement again. Two changes at once means you never learn which one did anything.
- Write down what you changed and why
A comment in the file, or a note. In four months you will be looking at a value you do not recognise and wondering whether it was deliberate.
A view distance that matches how people actually play, and removing one badly-behaved plugin, beat every setting on this page combined. Config tuning is what you do after those, not instead of them.
TPS holds at 20 with the same player count, and a fresh spark report shows the entity or hopper time you were targeting has dropped.