FiveM Server Performance: Reading resmon and Fixing Hitches

If your FiveM RP server is stuttering, rubber-banding, or spamming server thread hitch warning in the console, the cause is almost always a single misbehaving resource eating too much CPU time per frame. The good news: FiveM ships with two built-in tools that point you straight at the culprit. This guide walks through reading the resource monitor (resmon), interpreting CPU ms, and using the profiler to fix hitches the way the official docs intend.

What a “thread hitch warning” actually means

The server runs a main tick on a fixed schedule. When a resource takes so long inside a single tick that the server thread can’t keep up, FiveM prints a hitch warning telling you how many milliseconds the thread stalled. A hitch is not a crash — it’s a symptom. According to the Cfx.re documentation, the warning means a resource isn’t performing as it should, and you should investigate the affected resource. A few hitches on startup are normal; repeated hitches under player load are what cause the lag, desync, and rubber-banding your players feel.

Step 1: Open the resource monitor with resmon

The resmon command opens the resource monitor, which shows CPU usage and memory usage for each running resource in a single live overview. It’s a client-side developer command, so you run it in the F8 console while connected to your server. Because it’s a developer command, you need developer mode enabled — otherwise you’ll see Access denied for command resmon.

# In the F8 client console, while connected:
resmon

# toggle it off again:
resmon false

resmon shows you the client-side cost of resources. To measure what’s stalling the server thread specifically, you’ll use the profiler from the server console (covered below). Both tools matter: resmon catches client-side frame killers, the profiler catches server-tick offenders.

Step 2: Read the CPU ms column

The most important column in resmon is CPU time, measured in milliseconds per tick. A frame budget is small, so even fractions of a millisecond add up across dozens of resources. As a working rule of thumb used widely across the community, any single resource consistently sitting above roughly 0.25–0.50 ms at idle deserves a look, and anything spiking into several milliseconds during normal play is a prime hitch suspect. Sort by CPU and watch which resource climbs when players spawn vehicles, open menus, or trigger events.

resmon readingWhat it usually meansAction
Resource idle at < 0.10 msHealthy, well-optimizedLeave it alone
Steady 0.25–1.0 ms at idleHeavy loop or frequent tickReview its timers / threads
Spikes to several ms on an actionExpensive event handlerProfile that action
Memory climbing over timePossible leakRestart + check the resource

Step 3: Record a server-side profile

resmon tells you which resource is heavy; the profiler tells you what inside it is heavy. Run these commands from the server console (running them on the client F8 console only profiles client work, not server hitches). The official docs recommend starting at 500 frames.

# Server console:
profiler record 500     # capture 500 frames
profiler status         # check whether capture is still running
profiler saveJSON profile.json   # writes next to your run.bat / server start file

Trigger the laggy behavior while recording — have a player do whatever causes the hitch. Once profiler status reports the capture is done, save it. You can also use profiler view to open the trace immediately in Chrome.

Step 4: Analyze the profile in Chrome

Open Chrome DevTools (Ctrl+Shift+I), go to the Performance tab, and load the saved profile.json. The profiler renders an FPS/CPU timeline where tall yellow spikes mark the expensive frames. Click a spike to drill into the call stack and see exactly which resource and function consumed the tick. That function — a per-frame loop, a database query running on the main thread, or an event spammed every tick — is your hitch source.

Common fixes once you’ve found the culprit

  • Tighten loops: a while true do ... Wait(0) end loop runs every frame. Raise the wait time wherever the work doesn’t need per-frame precision.
  • Move DB work off the tick: make sure database calls go through oxmysql asynchronously rather than blocking the main thread. See our oxmysql database guide for query patterns.
  • Cut unused resources: every resource in your server.cfg ensure list costs something. Remove what you don’t use.
  • Update or replace offenders: an outdated script is often the whole problem — grab the current version or a lighter alternative.

Where txAdmin fits in

txAdmin won’t profile individual resources, but its dashboard graphs overall server performance over time and flags health problems, making it the easiest place to notice a degrading trend before players complain. Use txAdmin to spot the slowdown and confirm it’s load-related, then drop into resmon and the profiler to pinpoint the exact resource. If you’re still standing up your server, our FiveM artifacts explainer covers picking a stable server build, which itself prevents a class of hitches.

Hardware matters too: FiveM’s server thread is largely single-threaded, so per-core clock speed beats raw core count. If you’ve optimized your scripts and still hit a ceiling, you may simply be on underpowered hardware. Our high-clock FiveM hosting plans are built for exactly this, and you can cross-check command syntax any time in the FiveM documentation.

Frequently asked questions

Why does resmon say “Access denied”?

resmon is a developer command. If you see Access denied for command resmon or a message that a command is disabled in production mode, you need to enable developer mode on the client first, then reopen the F8 console and run resmon again.

Are a few hitch warnings on startup normal?

Yes. Resources loading at boot can briefly stall the thread, and isolated startup hitches are generally harmless. The ones to fix are repeated hitches that appear under player load during normal gameplay — those point to a resource that needs profiling.

Should I run the profiler on the client or the server?

For server thread hitch warnings, run profiler record from the server console. Profiling from the client F8 console only measures client-side work and won’t reveal what’s stalling the server tick. Use resmon on the client to catch client frame drops, and the server-side profiler for hitches.

Ready to play?

Run your own FiveM server with XGamingServer

Spin up an always-on FiveM server your friends can join in minutes — no port-forwarding, no tech headaches.

99.9%Uptime SLA
< 5 minInstant setup
24/7Human support
DDoSProtected
Instant setup Your server is live in minutes with a one-click control panel.
Mods & plugins Install mods, plugins and workshop content in a few clicks.
DDoS protected Enterprise DDoS mitigation keeps your server online 24/7.
Low-latency hardware Premium CPUs & NVMe SSDs for lag-free multiplayer.
Free backups Automatic backups so your world is never lost.
Real human support Gamers helping gamers — 24/7, no bots, no scripts.

Pick your FiveM plan & play in minutes

See all plans
Starter $8.40/mo 4 GB RAM Renews $12/mo Buy now
Rookie $17.50/mo 8 GB RAM Renews $25/mo Buy now
Pro $24.50/mo 12 GB RAM Renews $35/mo Buy now