Advertisement

Why Is My Minecraft Server Lagging? A TPS, MSPT and spark Troubleshooting Guide

Posted on 12 min read Published by MinecraftIP
A voxel observatory with an engineer studying a miniature world and diagnostic displays.
AI-generated editorial illustration; not an official gameplay screenshot.

“The server is lagging” can describe three different failures: a player's computer struggles to draw the scene, the connection delivers updates late, or the server cannot keep up with the world. Buying more RAM before identifying which one you have is an expensive guess.

This guide follows a diagnostic workflow for a Java server, with Paper and spark as the worked example. It is intended for owners who can read logs and run administrative commands. Players can use the first section to write a useful report. The example measurements below are invented to explain decisions; they are not benchmarks or promises about a hosting plan.

First, separate FPS, network delay and tick lag

Three complaints that need different investigations
ObservationLikely area to investigateUseful comparison
The camera stutters, but other players say the world is normal.Client rendering, shaders, resource packs or the local machine.Try the same location with lighter visual settings.
The camera is smooth, but actions arrive late for one player.Connection quality, route, packet loss or local network congestion.Compare another player and a different connection at the same time.
Many players see delayed blocks, slow mobs or a frozen world together.Server work or a shared hosting/network problem.Check tick measurements and logs during that exact period.

These are starting hypotheses, not diagnoses. One crowded spawn can stress a player's renderer and the server simultaneously. Ask two testers in different locations what they observe. Record the time of the complaint and whether it affected everyone. “At 19:42, three players froze while someone explored new terrain” is a much better lead than “laggy all evening.”

Three scenes show a struggling screen, a network route and a busy world-processing workshop.
Locate the layer that fails before choosing a fix. AI-generated editorial concept, not a gameplay screenshot or build schematic.

If you are a player, report the server name, approximate time, activity, location and whether reconnecting changed anything. Do not paste passwords, session tokens or your whole configuration. If you are comparing servers in the Java server directory, remember that a player-count snapshot is not a performance benchmark.

Read TPS and MSPT together

At Minecraft's usual 20-tick-per-second rate, a tick has a 50-millisecond budget. TPS describes how many ticks are completed; MSPT describes how long tick processing takes. A server can show 20 TPS while having very little spare capacity, and a short spike can be hidden by a longer average. The spark explanation of TPS and MSPT covers the relationship and the meaning of its reported statistics.

Illustrative readings, not hosting benchmarks
ReadingInterpretationNext step
20 TPS, typical ticks around 12 msThere is spare tick budget under this observed workload.Investigate client or network symptoms if players still report trouble.
20 TPS, typical ticks around 47 msThe server is close to the usual tick budget.Profile peak activity before adding more load.
Low typical tick time, occasional very large spikesAverages may hide intermittent work.Capture the spike and match its timing to an action.
Sustained tick times above 50 msThe usual target tick rate cannot be maintained indefinitely.Find the expensive work instead of treating the TPS number itself.

Use the same observation window when comparing results. A quiet morning sample cannot validate a change intended for a crowded evening. Keep player count, loaded locations, activities and software versions beside each measurement. If those conditions differ, describe the difference rather than presenting the numbers as a clean before-and-after result.

Capture the problem while it is happening

Paper bundles spark from 1.21 onward. On another platform, check the supported installation rather than dropping a random plugin into a mods directory. Start with a short health check and a profile that covers the activity players reported:

/spark tps
/spark profiler start --timeout 600

The timeout example collects ten minutes. Run it while the troublesome workload is present, then save the report URL and your notes. From a server console, commands generally omit the leading slash. Use the command help for your installed spark build if a flag is rejected. Do not keep restarting the server in the middle of the sample.

A measuring instrument and clock in a workshop overlooking a village.
A useful profile needs a time window and a reproducible workload. AI-generated editorial concept, not a gameplay screenshot or build schematic.
  1. Write down the server build, Java runtime and relevant plugin or mod versions.
  2. Record the number of players and the activity you intend to observe.
  3. Start the profile, reproduce that activity and note when symptoms occur.
  4. Save the report, the startup log and a short excerpt around any errors.
  5. Describe what changed recently: a plugin update, new farm, world import, host move or configuration edit.

Review a report before sharing it publicly. Diagnostic output can expose infrastructure and configuration details. Send it through the support route you intend to use, with only the context needed to investigate. A screenshot of one percentage is usually less useful than the report and a description of the workload that produced it.

How To Use Spark on Your Minecraft Server!

DatHost. A visual walkthrough of collecting and sharing a profiler report. Hosting-panel steps are specific to the provider; the diagnostic workflow is the useful part.

Watch on YouTube

Read a profile as a lead, not a verdict

Begin with the work relevant to the symptom. Expand the expensive branches and inspect what they contain. A plugin's name appearing in a report does not automatically make it the root cause: it may be responding to unusually many events or calling another expensive system. Likewise, time under world processing is a category that needs another question, not a complete explanation.

Ask what the server was doing during those samples. Were players generating terrain, moving through an entity-heavy area, executing a command repeatedly or triggering a large edit? Compare that story with the report. If they do not line up, collect a better sample before making a destructive change.

A useful experiment has a narrow claim: “This particular menu action coincides with a spike, so we will reproduce it on a copy with that feature disabled.” A weak experiment says “This plugin appears somewhere near the top, so we will remove it and see what breaks.” Keep dependencies and stored data in mind before removing anything.

If the problem is a spike, stop averaging it away

A long quiet profile may dilute a rare stall. The spark lag-spike guide describes tick monitoring and profiling slow ticks. One useful observation command is:

/spark tickmonitor --threshold-tick 50

That threshold is a diagnostic example for the usual tick budget, not a target you must force every workload under by deleting gameplay. Note the timestamps of warnings and compare them with player actions and logs. If the lag occurs only during a scheduled job, capture that job; do not conclude the problem disappeared because a different ten-minute window was quiet.

For repeatable spikes, agree on a test action and a stop condition. Have one person reproduce it while another watches measurements. Stop if the experiment risks player data or makes the public world unusable. Use a copy for large edits, migrations and deliberate stress tests.

When exploration is the trigger, investigate terrain work

If the server is smooth in established areas but stalls when players explore, terrain generation is a plausible lead. Compare an already explored route with a genuinely new one under similar conditions. Also check disk space and host resource limits. Do not assume every teleport delay is generation; a destination plugin or storage problem may be involved.

Finished terrain transitions into an unfinished wireframe landscape.
Separate loading an existing area from creating a new one. AI-generated editorial concept, not a gameplay screenshot or build schematic.

Chunky can pregenerate a chosen region. Plan its world, shape, center and radius before starting, and check available storage. For example, a deliberately small trial in a world actually named world could use:

chunky world world
chunky shape square
chunky center 0 0
chunky radius 500
chunky start

These are console commands for an example selection, not a recommendation to run work immediately on a busy server. Back up first, use a maintenance window and confirm your installed command syntax. Keep the radius modest until you understand generation speed and disk growth. In a comparable shape, doubling the radius roughly quadruples the area; a seemingly small number change can create much more work.

Pregeneration moves some work earlier. It does not remove the cost of ticking entities, running plugins or loading and saving active areas. Decide whether to set a suitable world border separately; generating a region alone does not establish your community's exploration rules.

How To Pre-Generate Minecraft Worlds (Servers & Single Player with Chunky)

The Breakdown. A focused demonstration of pregeneration. Choose a modest trial area and check your own world name and storage before using any example commands.

Watch on YouTube

When farms or busy areas are involved, measure their activity

Do not begin by deleting every animal or dropped item. First identify the loaded area, the relevant processing category and the activity that makes it expensive. Ask the builder how the system works and how it can be paused. A reversible pause gives you a better comparison than an irreversible purge.

A cutaway compares a crowded farm area with a more orderly work area.
Find the expensive activity before imposing a blanket limit. AI-generated editorial concept, not a gameplay screenshot or build schematic.

Useful checks include collection overflow, constantly running clocks, dense entity concentrations and repeated plugin actions attached to those entities. These are investigation categories, not a universal blacklist. Test a smaller active footprint or a paused subsystem, then compare the same activity again. If you establish a rule, explain the measured issue and provide players with a practical alternative.

Changes to simulation, activation and spawning can alter farm behavior. Record the exact setting and original value, read the documentation for your server build, and test the gameplay consequence. “Better TPS” is not an adequate result if a core feature silently stops working for players.

Compare fixes by the evidence they require

What a proposed fix can and cannot solve
ChangeEvidence that supports trying itTradeoff or limitation
More memoryMeasured memory pressure or insufficient headroom for the actual workload.Does not automatically solve expensive tick processing or poor network routes.
A different host or CPU allocationConsistent resource constraints under a comparable workload, after software causes are investigated.Migration effort, cost and no guarantee that the new plan removes the bottleneck.
Lower view or simulation distanceA test shows the loaded area or simulation workload is material.Changes what players see or what stays active; test separately.
PregenerationNew-terrain exploration correlates with the problem.Consumes time and storage; does not fix all runtime work.
Plugin update or configuration changeA reproducible issue points to that component.May change behavior or require a data migration.
Client visual changesOnly the local renderer struggles while server measurements are healthy.Will not fix a server-wide stall.

Avoid installing several “lag fix” plugins together. That creates overlapping behavior and makes attribution difficult. Keep your plugin stack understandable; the plugin selection and testing guide explains how to introduce components deliberately. Never download an unverified replacement JAR merely because it promises a dramatic percentage improvement.

6 Tips to Make Your Minecraft Server Lag Free

The Breakdown. An overview of common approaches. Treat its title as an aspiration: select changes using your measurements, and do not assume every suggested tool is needed.

Watch on YouTube

Use a change log and a rollback test

Keep one row per experiment. Write the hypothesis before editing the configuration, because otherwise it is easy to redefine success after seeing the result. Record enough detail that another administrator can restore the original setting without relying on your memory.

Copy this experiment worksheet
FieldExample entry
SymptomSeveral players stall when entering new terrain.
BaselineReport URL, time window, player count, route and server build.
HypothesisGenerating this region is responsible for the repeated stalls.
ChangePregenerate a small agreed test area during maintenance.
RetestRepeat comparable exploration and normal play; save a second report.
DecisionKeep only if the symptom improves without unacceptable storage or gameplay cost.
RollbackRestore the documented configuration; restore backups only through a planned recovery procedure.
Two miniature worlds on separate workbenches beside a protected archive.
Use a separate test copy and keep recovery data outside the experiment. AI-generated editorial concept, not a gameplay screenshot or build schematic.

Be careful with data-changing upgrades. Restoring an older plugin JAR is not necessarily a rollback if the new version already migrated its database. Keep the matching data and configuration backup. Test that recovery on a copy rather than discovering during an outage that your archive contains only the world folder.

For an SMP, include normal play in the acceptance test: claims, inventories, shops, portals and restarts. The SMP setup guide provides a broader launch checklist. For crossplay, repeat the test with both editions using the crossplay acceptance matrix; a server change that helps Java players may expose a separate client compatibility problem.

Send support a report they can investigate

Include the exact symptom, the time and time zone, the affected players or locations, the software build, recent changes and a profile captured during the problem. Add what you already tried and whether you could reverse it. Use the host's private support channel for infrastructure-specific details.

Do not present “CPU is only 30%” as proof that processing capacity is irrelevant. Aggregate utilization can hide constraints in the work that matters to the game. Equally, do not diagnose a memory leak from one rising memory graph. Describe the observation and let the time series, profile and workload establish the cause.

Minecraft lag troubleshooting FAQ

Does 20 TPS mean nobody can experience lag?

No. Client rendering, network problems and short spikes can still affect play. Read tick duration and the symptom together instead of relying on one average.

Will allocating more RAM fix low TPS?

Only if memory pressure is part of the problem. Extra memory does not make an expensive plugin action cheap or repair a bad connection. Measure before changing the allocation.

Should I profile an empty server?

An idle baseline can be useful, but it does not reproduce a problem caused by players exploring or using a farm. Capture the workload that triggers the complaint.

Should I install spark separately on Paper?

Current Paper builds in the documented bundled range already include it. Check your exact build and the Paper profiling instructions before adding another copy.

Is clearing entities a safe first fix?

It can destroy player work and erase the evidence. Identify the expensive activity and test a reversible change first. Use destructive cleanup only as a deliberate, communicated operation with recovery planning.

Can a server-list page tell me which host will never lag?

No. Workload, geography, configuration and resource allocation all matter. Use listings to find communities and their stated features, then evaluate the actual experience under the conditions you care about.

Technical references reviewed October 22, 2026. Commands and examples are a diagnostic starting point; no production server was stress-tested for this article.

We use cookies to improve your experience and analyze site traffic. By continuing, you agree to our cookie use.