Skip to content

Game config files

What Tickhound checks in bukkit.yml, spigot.yml and the Paper config files, and the values it recommends.

How it works

Tickhound reads bukkit.yml, spigot.yml, config/paper-world-defaults.yml and config/paper-global.yml. With a linked Pterodactyl server this happens automatically (read-only). Otherwise paste or upload the files when you run diagnostics.

Only a short list of known settings is kept, never the full file. Per-world overrides are not read; the values under world-settings.default are used.

Mob spawn range

spigot.yml mob-spawn-range is the distance in chunks around a player where mobs can spawn. Use 6, and never more than your simulation distance. Lower values cut the spawn checks the server does each tick.

Entity activation range

Mobs outside the activation range only do a reduced version of their AI. Tickhound recommends animals 16, monsters 24, raiders 48, misc 8, water 8, villagers 16 and flying-monsters 16. These values keep gameplay normal and lower the number of fully active mobs a lot.

Item and XP merge radius

Items and XP orbs that land near each other are merged into one entity. Raise merge-radius.item to 4.0 and merge-radius.exp to 6.0 to keep farms from filling the world with separate entities.

Hoppers

Hoppers are expensive. Keep ticks-per.hopper-transfer and hopper-check at 8 or higher. In paper-world-defaults.yml, hopper.disable-move-event: true removes an event call per transferred item; only keep it on when a plugin needs the event.

Item despawn rate

How long dropped items stay, in ticks. 6000 is five minutes. Lower it if your world fills with items.

settings.bungeecord

With settings.bungeecord: true the server trusts the player identity sent by the connection. That is required behind BungeeCord/Waterfall and dangerous otherwise.

If your server is reachable directly while this is true, anyone can join as any username, including an operator. Always firewall the port so only the proxy can connect.

View distance override

A number in spigot.yml for view-distance or simulation-distance replaces server.properties. Keep it on default there, or use the same value in both places.

Mob caps (spawn-limits)

bukkit.yml spawn-limits sets the maximum number of mobs per type near a player. Good starting values: monsters 50, animals 8, water-animals 4, water-ambient 4, ambient 1.

ticks-per

bukkit.yml ticks-per.monster-spawns controls how often mob spawning is attempted. 1 means every tick. 4 is barely noticeable and cheaper.

Chunk autosave

In paper-world-defaults.yml, chunks.max-auto-save-chunks-per-tick limits how many chunks are saved per tick. 8 spreads the work and prevents save lag spikes.

Optimise explosions

environment.optimize-explosions: true caches part of the explosion math. The results are the same, with less cost for TNT.

Per-player mob spawns

entities.spawning.per-player-mob-spawns: true splits the mob cap between players, so one crowded spot cannot take all spawns.

Redstone implementation

misc.redstone-implementation: ALTERNATE_CURRENT is a much faster redstone engine. The signal order changes slightly, so check your redstone machines once.

Entity collisions

Set collisions.max-entity-collisions to 2 to make crowded pens cheap. Pushing still works.

Armor stands

Set entities.armor-stands.tick: false when you use many decorative armor stands (holograms, shops). They then cost no tick time.

Anti-xray

Paper can hide ores from x-ray clients. Enable anticheat.anti-xray.enabled with engine-mode 1 for a cheap but effective setup.

Velocity forwarding

In paper-global.yml set proxies.velocity.enabled: true, online-mode: true and a long secret that is identical to Velocity's forwarding.secret.

An empty or short secret means anyone who can reach the backend can pretend to be any player. Tickhound reports this as critical.

Unsupported settings

The unsupported-settings section can bring back duplication and bedrock-breaking exploits. Keep all of these false unless you run a technical server on purpose.