Skip to main content

Identifying the Source of Lag

In the Minecraft ecosystem, “Lag” is a generalized term that frequently describes two distinct technical phenomena. To resolve performance issues effectively, you must first identify the root cause:
  • Server Lag (Low TPS): The server’s CPU cannot process world events (ticking) within the required 50ms window. This results in “rubber-banding” and delayed entity movements. A “Perfect” server operates at 20.0 TPS.
  • Network Lag (High Ping): The physical latency between the player’s computer and the FREAKHOSTING data center. This results in delayed block-breaking and chat latency.
This guide focuses on maximizing your TPS to ensure a 20.0 high-performance experience for your community.

Difficulty

Intermediate

Time

12 Minutes

1. The Strategy of World Pre-Generation

Real-time terrain generation is the most CPU-intensive task a Minecraft server performs. When players fly into unexplored territory, the server must calculate biomes, structures, and block placement instantly, often causing massive TPS drops.
  • The Solution: use the Chunky plugin to programmatically render your world border during off-peak hours.
  • Technical Goal: Pre-generating a 5,000 to 10,000 block radius ensures that the server only needs to “read” existing files from the high-speed NVMe storage rather than calculating them on the fly, eliminating 90% of explorer-related lag.

2. Technical Configuration Hardening

Tuning your core property files is the fastest method for reclaiming wasted CPU cycles.

server.properties

  • view-distance: Set to 6. The vanilla default (10) requires the server to track and process nearly 400% more chunks than a setting of 6.
  • simulation-distance: Set to 4. This restricts active entity AI and ticking logic to a tight radius around the player, preserving resources for core world events.

bukkit.yml

  • spawn-limits: Reduce monsters to 45 and animals to 8.
  • ticks-per.monster-spawns: Set to 4. This instructs the engine to check for new spawns every 4 ticks rather than every single tick, reducing AI overhead by 75%.

spigot.yml

  • entity-activation-range: Set monsters to 24 and animals to 16. Entities outside this range will “hibernate,” pausing their AI logic until a player approaches.

3. Advanced Diagnostic Profiling (Spark)

If lag persists after configuration hardening, a specific modification or entity farm is likely the culprit.
1

Initialize the Profiler

Install the Spark plugin and execute: /spark profiler start.
2

Data Capture

Monitor the server during a period of active lag for approximately 10 minutes.
3

Generate Flame Graph

Execute: /spark profiler stop.
4

Technical Review

Open the generated URL. The hierarchical graph will pinpoint exactly which plugin, event, or entity type is consuming the highest percentage of your CPU’s “tick time.”


Need Extra Help?

If you encounter any issues, our support team is ready to assist:

Save on Your Hosting

Ready to get a new server? Use code KB20 at checkout for 20% off your first month!

Last Updated: January 2026 | Performance: 20.0 TPS achieved.