Guide
ATM10 server lag: how to find and lower high MSPT
To fix lag on an All the Mods 10 (ATM10) server, confirm it is server lag, find the busy dimension with /neoforge tps, profile with spark while the lag is happening, and fix the largest entry first. The order published guides support is pre-generating terrain, limiting force-loaded chunks, dealing with the heaviest build or mod, then simulation distance, and changing garbage collection only when /spark gc shows pauses that match the lag. This page does not say how much any of them lowers MSPT, because no source read for it publishes a before-and-after figure and GameServerBench has measured nothing.
On this page
- Is it ATM10 server lag, the client or the network?
- What does high MSPT mean on an ATM10 server?
- What should you measure first?
- How do you read a spark profile on ATM10?
- Which ATM10 fix should you try first?
- What is not worth trying on ATM10?
- When is the answer a bigger plan or a different host?
- How should you test a change?
Is it ATM10 server lag, the client or the network?
Ask who feels it before touching the server, because only tick lag responds to the fixes on this page. This split follows GameServerKings' diagnosis guide (a hosting seller, updated 12 Sep 2026).
| Who feels it | Likely layer | What proves it |
|---|---|---|
| One player, with choppy rendering | That player's PC | The FPS figure on their F3 screen |
| One player or region, smooth but late | Network | /spark ping --player <name> |
| Everyone at once: late block breaks, sliding mobs | Server | MSPT at or above 50 in /spark tps |
| Cannot join, or an X in the server list | Version mismatch | Better Compatibility Checker |
Space-Node, a hosting seller, says ATM10 ships Better Compatibility Checker, and that an X beside the server means pack versions differ (setup guide, updated 1 Nov 2026). The same guide dates ATM10 8.4 to 29 Oct 2026, so move the server and every player together, after a backup.
What does high MSPT mean on an ATM10 server?
High MSPT means ticks take close to or more than 50 ms, the limit for holding 20 ticks per second. The spark docs define MSPT as the average milliseconds the game takes per tick, with 50 or fewer as the target. spark's tick loop guide says a late tick delays the next, and "when the server lags, everything happens more slowly", machines included.
The full explanation, including why median and worst-tick readings matter, is in MSPT and TPS explained.
What should you measure first?
Measure from cheap to detailed, and run everything while players are doing what causes the lag. Space-Node says the pack ships spark; if your server lacks it, install the mod. Commands are from the spark command docs unless noted.
/neoforge tpsprints mean tick time and TPS for each loaded dimension, then overall (NeoForge source). One slow dimension narrows the search at once./spark tpsgives TPS, CPU and the MSPT spread. A high median means steady overload; a normal median with a bad 95th percentile or max means spikes./spark health show --memoryprints CPU, memory and disk with JVM memory detail./spark gcshows garbage collection history, which tells you whether pauses line up with the lag./spark profiler start --timeout 600records ten minutes and stops automatically, the value in Paper's profiling docs.- For spikes,
/spark tickmonitor --threshold-tick 50reports each tick over budget, and/spark profiler start --only-ticks-over 50records only those. The lag-spike guide suggests a value between 50 and 100, lower than the laggy ticks.
Space-Node also says ATM10 ships Observable, which shows tick cost in-game once you bind its key. Write down what players were doing, the pack version and the settings in force. Without that, two profiles cannot be compared.
How do you read a spark profile on ATM10?
Open the link and work from the server thread down, following the percentages. The spark viewer docs say the server thread is usually the one to examine, that each frame shows its share of the thread's time, and that sleeping or parked time "is healthy". spark's tick loop guide says below 20% sleep the server "might be lagging on some ticks", and below 5% it "is probably lagging, and has no spare capacity". Those are averages, so a spiky server can look fine.
- All view, server thread. Expand the heaviest branch until the names stop being generic game code and start naming a mod, block entity or entity type.
- Sources view. It shows a tree for each mod. A mod that ticks many machines may only be doing what your base asks of it.
- Flat view. It lists the slowest 250 method calls, sortable by total or self time. Self time points at the method doing the work.
- Bookmark and share. Bookmarks live in the link, so a helper sees the same frames.
Space-Node's load-test guide groups modded tick time into the categories below. The right-hand columns combine it with Space-Node's other ATM10 posts, and they are a seller's general advice.
| What dominates | Likely cause | First thing to try | Cost |
|---|---|---|---|
| Chunk loading or generation, as spikes when players explore | New terrain | Pre-generate | Disk space and time |
| Block entities, Mekanism, AE2, Create | Machines and networks | Trim the heaviest build | Less automation |
| Block entities with nobody near them | Force-loaded bases | Cap force-loading | Offline farms pause |
| Entities: farms, dropped items | Mob or item build-up | Fix that farm | Players must rebuild it |
| One mod you do not use | A feature | Disable the module in config | That feature |
Long pauses in /spark gc that match the lag | Heap or flags | See the GC step below | Testing time |
A dominant frame on a server already at 20 TPS is no problem by itself.
Which ATM10 fix should you try first?
Work down this list and re-measure after each step. No source read for this page gives a measured MSPT gain for any of them. Space-Node says only that the settings are worth testing one at a time.
- Pre-generate. Space-Node says the pack has no pre-generation mod and NeoForge's command replaces Chunky. For about 5,000 blocks:
/neoforge generate start 0 64 0 313. NeoForge's source confirms a radius in chunks from 1 to 2,500 and permission level 4. Space-Node notes it covers only the dimension it runs in, so run it in each dimension players explore, and check free disk first. - Cap force-loaded chunks. Space-Node's lag guide (updated 1 Nov 2026) says to set FTB Chunks' Offline Forceloading Mode to Never, so a team's chunks stay loaded only while a member is online, and that the per-player cap defaults to 25. Its load-test guide says always-loaded bases can cost more than the players online. Long autocrafts stop while everyone is offline.
- Trim the heaviest build or mod. Use the profile to find it, then cut idle autocrafting, always-on machines or unused mod modules. Fix the top entry before anything below it. Space-Node says ATM10's Crash Utilities Item Clear is on by default, clearing items every 5 minutes above 1,000 on the ground, so a farm that dumps to the floor may lose output.
- Lower simulation distance. Space-Node lists the pack's default file as
simulation-distance=5andview-distance=8, so a server built from the official files may already be low. Paper's reference describes the setting as how far from players entities are updated. Space-Node works out that going from 5 to 4 cuts the simulated area per player from 121 chunks to 81, which is an area figure and says nothing about MSPT. Machines and farms outside the range stop running, so tell your players. - Check garbage collection last. Space-Node's quick-fix list starts with Generational ZGC, while its own text says ZGC only helps spikes caused by collection pauses and that other fixes matter more when machines or world generation eat the tick. Follow the second statement: if
/spark gcpauses do not match the lag, leave the collector alone. Java flags for modded servers covers the test. Space-Node credits its ZGC flag set to the ATM guides, and the guides' Java page, read on 8 Nov 2026 with no date shown, lists a Java 21 server set under "For fast CPUs with 4+ cores & lots of ram (8-12GB), try ZGC". That is a suggestion for fast CPUs, not a measured result. - Lower random tick speed only as a last resort. Space-Node calls it that, because it slows crop growth and leaf decay for everyone.
What is not worth trying on ATM10?
Skip these unless a profile gives you a specific reason.
- Raising
max-tick-time. Paper's reference defines it as how long one tick may take before the watchdog stops the server. Space-Node lists 180000 as the pack's default and warns against-1, which turns the watchdog off. It does not make any tick shorter. - Removing mods from the server alone. Space-Node says every player needs the same pack as the server.
- Paper or Purpur tuning guides. Space-Node notes that ATM10 runs on NeoForge, and those servers cannot load NeoForge mods, so
paper-world-defaults.ymladvice does not apply. - Buying RAM because the meter is high. Paper's troubleshooting page says that without out-of-memory crashes or bad collection times, "high memory usage is expected".
When is the answer a bigger plan or a different host?
More RAM helps only when the profile shows heap pressure. Check user_jvm_args.txt first: Space-Node says the official files ship -Xmx8G, so extra plan RAM sits unused until you raise it, and the ATM10 RAM guide has the figures. If the server is killed for memory, Paper's troubleshooting page says a panel limit too close to -Xmx is a common cause.
A faster CPU is the likely lever when the profile shows the tick loop full and the world is already trimmed. spark says ticks cannot run in parallel, and Space-Node says most tick work runs on one thread, so single-core speed matters more than core count. Space-Node sells CPU tiers on that argument and publishes no ATM10 MSPT comparison in the pages read.
A different host makes sense for reasons you can check before paying: no region near your players, no way to edit user_jvm_args.txt or use SFTP, or no op access for spark commands. Plan comparison without speed claims is on the ATM10 hosting hub.
How should you test a change?
Change one setting, repeat the same activity, and compare median and 95th-percentile MSPT between profiles. Space-Node recommends keeping a copy of the world to restore before each run, and logging the pack version, Java version, -Xmx, GC flags, view distance and simulation distance. The general method is in how to benchmark your game server.
GameServerBench plans A/B runs on ATM10 using a replayed automation world, not idle bots, with spark exports. They have not been run, so no numbers are given here.
Sources
- Using the viewer - spark docs
- TPS and MSPT - spark docs
- The Tick Loop - spark docs
- Finding the cause of lag spikes - spark docs
- spark command usage
- TPSCommand.java - NeoForge 1.21.1 source code
- GenerateCommand.java - NeoForge 1.21.1 source code
- server.properties - PaperMC Docs
- Basic troubleshooting - PaperMC Docs
- Profiling - PaperMC Docs
- The Quest for 20 TPS - Space-Node (hosting seller)
- How to Set Up an ATM10 Server - Space-Node (hosting seller)
- ATM10 Server Lag Fix - Space-Node (hosting seller)
- ATM10 Server Config Guide - Space-Node (hosting seller)
- Diagnosing Minecraft Server Lag - GameServerKings (hosting seller, updated 12 Sep 2026)
- Java - ATM guides (Java arguments for ATM packs)