Low TPS or changed gameplay

Find the relevant bottleneck or control before buying capacity or disabling modules.

On this page

Low TPS and high MSPT

Profile while the issue occurs using the measurement workflow. Record player activity, plugins, chunks, distances, disk, and available CPU. A normal mean can hide spikes; worker time is not a percentage of tick time saved.

Crowded hubs need fan-out/network checks; spread survival often needs chunk/simulation checks. Extra I/O threads do not repair a costly plugin handler.

Heap or GC pressure

Separate heap, process memory, and container limits. Observe post-GC usage and growth. Investigate retention rather than increasing Xmx from one peak. Leave memory outside heap. Container kills may occur without a Java heap OOM message.

Growing I/O queues

Check full storage, permission errors, write failures, and latency. Warning thresholds do not reject new latest snapshots, so retained memory can grow. Increasing thresholds hides alarms. Reduce heavy activity and plan clean shutdown after assessing disk health.

Slow pregen

Read nusa pregen status. It may be paused/throttled, finding existing/skipped chunks, or waiting for in-flight work. Pause stops admission, not accepted requests. Progress does not survive restart. Consult the pregen guide before increasing limits.

Changed mechanics

SymptomCheck
Invisible mobsmob-tracker, LOS culling, plugin hide/show, geometry, native range
Stationary/no-target mobsmob-ai, villager ticking, ticking mode, plugin AI
Restocking/weather/farms stoppedHUB and related ticking switches
Mob item pickup stoppedpickup policy and AI needed for seeking
Different idle hopper timingspreading flag/groups and inventory listeners
Less smooth distant playersfar-interval, combat priority, transport pressure

Test one change on staging and restart. Revert if unrelated. Never bypass thread ownership or delete data to hide an unexplained symptom.

Loading the index…