World and entities
What the Tickhound plugin reads from your worlds and how to act on it.
What the plugin reads
Every five minutes the plugin counts entities, loaded chunks and tile entities per world, finds the busiest chunks, measures player ping and disk space, and keeps a list of recent server freezes. This costs a few milliseconds on the main thread. You can switch parts off in the plugin's config.yml (world-stats, lag-spike-catcher).
Every six hours (or when you ask for it) the plugin also sends your config files, plugin list and JVM flags. Passwords and secrets are masked before they leave the server and IP addresses in the log are replaced. Only parsed facts are stored.
Entities
Every loaded entity costs tick time. Mobs, dropped items, armor stands and minecarts all count. As a rule of thumb, stay under about 5,000 entities per world and 10 per loaded chunk. Tickhound shows the most common types so you can see what fills the world.
Busy chunks
The plugin lists the chunks with the most entities. Block position is chunk × 16. Teleport there and look for mob farms, animal pens or villager halls. A single chunk with 300 entities can cost more than the rest of the world.
Dropped items
Items on the ground are entities. Collect them in farms, lower item-despawn-rate and raise the item merge radius in spigot.yml.
Hoppers and tile entities
Hoppers, furnaces, spawners and signs are tile entities. Hoppers are the heaviest. Replace long hopper chains with item sorters that use fewer hoppers and use Paper's hopper options.
Loaded chunks
The number of loaded chunks should follow the players online. If it is much higher than players × (2 × view distance + 1)², something keeps chunks alive: chunk loaders, /forceload, portals or plugins.
Disk space
A full disk makes the world save fail and can corrupt chunks. Keep at least 15% free. Old backups and logs are the usual cause.
Player ping
The plugin measures ping from the server to each player. A high average points to distance, routing or a saturated network, not to your TPS.
Server freezes
A light watchdog thread notices when the main thread stops ticking for more than 250 ms and looks at what it was doing. The culprit is the plugin whose code was running most during the freeze. Typical server-side causes are autosave, chunk generation and garbage collection.
Unclean stops
The plugin leaves a marker file while the server runs and removes it on a clean shutdown. A marker that is still there at the next start means the server was killed, crashed or lost power. Check logs/latest.log and the crash-reports folder, and the memory limit of your container.
Uptime
Long-running servers collect leaks and entities. A scheduled restart every night or week keeps them healthy. With a linked Pterodactyl server you can create that schedule from Tickhound.
Online mode
With online-mode=false anyone can join under any name, including an operator. It is only acceptable behind a proxy when the backend port is firewalled.
