Direct answer

Packet-heavy plugins can create network delay and client-side stutter even when server TPS is stable. Diagnose packet output separately from tick-time costs before removing a plugin.

How to check it

  1. Record the affected client protocol, location, player count and the exact feature that triggers lag (scoreboard, hologram, tab list, menus or disguise).
  2. Capture a spark profile during the issue to test whether the plugin also consumes substantial main-thread time.
  3. Inspect host network throughput and packet/error metrics available in your proxy, system or plugin tooling; do not infer packet volume only from low TPS.
  4. Compare with the suspect feature disabled on staging, using the same player scene and clients.

What to change

  • Reduce unnecessary update frequency or recipient scope only using settings documented for the actual plugin.
  • Remove duplicate scoreboards, hologram services or other overlapping packet emitters where appropriate.
  • Check ViaVersion/ProtocolLib/PacketEvents compatibility after server updates, but do not uninstall dependencies required by other plugins.

Software and version notes

Network traffic, client rendering and tick CPU cost are separate bottlenecks. A proxy may amplify a problem that appears only for specific versions or when many viewers are nearby.

Practical example: Example: a tab list updating dozens of entries every tick can cause noticeable client processing in crowded lobbies. If MSPT is healthy but clients freeze when the overlay changes, compare packet rate and client frame time with the tab-list feature disabled on staging. A high main-thread plugin stack is a different symptom.

Verify the result

  • Repeat the exact player-visible test and note ping, client FPS and tick percentiles.
  • Restore settings if performance gains come with broken scoreboard or visibility behavior.

References