Limited Offer50% OFFon every FairShieldAC package*Open a ticket on our Discord and grab your coupon codeLimited Offer50% OFFon every FairShieldAC package*Open a ticket on our Discord and grab your coupon codeLimited Offer50% OFFon every FairShieldAC package*Open a ticket on our Discord and grab your coupon code
Ticket
Back to Blog
Anti-CheatSeptember 3, 2026

FiveM Anticheat Performance: How to Measure the Real Cost

FiveM anticheat performance, measured properly: use resmon, cl_drawperf and the Cfx profiler to prove what yours costs and rule out the usual culprits.

FairShieldAC

Roby Einstein

FairShieldAC Security Team

Updated: Sep 3, 2026
Featured image for FiveM Anticheat Performance: How to Measure the Real Cost

Every resource that runs costs something, so yes, your anti-cheat has a price. The useful question is how much, and where. FiveM anticheat performance is measurable on your own server in about ten minutes, with tools that ship with FiveM, and you should not take any vendor's word for it, including ours. The trap is measuring the wrong thing: server tick and client frame time are separate budgets.

Does a FiveM anticheat cause lag?

A running resource consumes CPU on whichever machine it runs on. Server-side detection spends time on the server's threads; a client-side agent spends time inside the player's frame. Neither is automatically the cost hurting you. Nothing in the official documentation characterises anti-cheat cost, so there is no platform standard to appeal to. Cfx's fact sheet says only that hitch warnings "indicate that one of your resources is not performing as it should".

Server tick time and client frame time are two different budgets

If players report FPS drops, the server profiler tells you nothing. If your console prints hitch warnings, an overlay on one player's screen tells you nothing. Sort the symptom first.

  • Server tick time. The profiler in the server console, txAdmin's threads chart, and hitch warnings in the server log.
  • Client frame time. cl_drawperf, cl_drawfps and resmon in the player's F8 console. The only place an FPS drop can honestly be diagnosed.
  • Network cost. The Ping and PL columns of cl_drawperf, plus netgraph (developer mode). Event chatter feels like lag while costing almost no CPU.
  • A resmon reading is a client measurement. The fact sheet says the resource monitor "can be used on the client". A resmon figure offered as proof of low server cost is a client number describing a server budget. Which architecture pays less is the argument in server-side vs client-side.

Start with cl_drawperf: no developer mode required

Cfx lists cl_drawfps and cl_drawperf under User commands, which the client console commands reference says "don't require additional developer mode settings". Any player can run them. cl_drawperf true puts FPS, Ping, packet loss, CPU usage, GPU usage and GPU temperature in the screen corner. If frames are steady while Ping and PL look ugly, script profiling will not help.

Why resmon says Access denied for command resmon

resmon opens the client resource monitor, showing CPU msec and memory per resource, and it sits under Developer commands. The gate is documented: "Developer commands require the client to run in a developer mode, or they'll show an error like Access denied for command resmon." On Legacy, launch the client with +set moo 31337; on Enhanced that argument is gone and client dev tools unlock when sv_devMode true is set server-side. resmon is a client console command, not a server.cfg entry - the full command list covers the rest.

How do I measure what my anticheat costs with the Cfx profiler?

The profiler runs on both client and server, and it answers the question. The Cfx profiler guide gives its prerequisites as an up-to-date client, latest artifacts and Google Chrome, and unlike resmon it states no developer-mode requirement. That Chrome workflow is what docs.fivem.net documents today; Cfx.re said in Development Update #3 that Enhanced "replaced the legacy profiler backend with Perfetto". If you are on Enhanced, use profiler save capture.json and open the trace in Perfetto rather than the Chrome steps below.

  • profiler record 500 starts a capture in the server console. The guide suggests 500 frames because it "captures things over a substantial period of time".
  • profiler status shows whether the capture is active and how many frames it has taken.
  • profiler saveJSON capture.json is the Legacy command; it writes the file beside your run.bat. Mind the capital letters.
  • profiler view opens it, though server-side viewing "will not automatically load chrome, you will need to copy the provided link to chrome".
  • Reading a saved Legacy capture: Chrome, Ctrl+Shift+I, Performance tab, right-click, load profile. The yellow CPU time graph is what matters.
  • profiler resource [resourceName] [frames] scopes a capture to one named resource. This is the command that answers what a single anti-cheat costs.

That last one matters. On a Cfx.re thread about long server ticks, nta wrote: "Profiler lately has a few attribution issues apparently, so unless running it in 'resource' mode that's not really anything to go by." Uninstall your anti-cheat on the strength of one general capture and you may have dropped protection over a bookkeeping error. Stay current on artifacts, confirm in resource mode, and read the thread.

What does a FiveM hitch warning actually mean?

FXServer runs several named threads, each with its own interval and its own wording. In the current server source, svMain and svNetwork each warn when an interval exceeds 150 milliseconds; svSync runs tighter and prints its own line. Which warning appears tells you which budget was blown. Those are source constants rather than documented API, so read them as current behaviour.

The common claim that hitches fire at 50 milliseconds is wrong: 50ms is the svMain frame interval in that same file. A resource costing hundredths of a millisecond per tick sits thousands of times below the 150ms trigger.

FiveM lag symptoms: likely cause and how to confirm each one

SymptomLikely causeHow to confirmWhere to look
server thread hitch warning printing in consoleSomething is blocking the main server threadprofiler record 500, then profiler saveJSON, then confirm with profiler resourceServer console
Hitching gets worse as players joinPer-player work, population or sync load rather than fixed costCompare thread timing against player count across a full eveningtxAdmin threads performance chart
Server is fine, one player stuttersClient-side frame cost on that machinecl_drawperf true first, then resmon if dev mode is availableThat player's F8 console
FPS is normal but movement feels laggyNetwork path rather than CPU costRead the Ping and PL columnscl_drawperf overlay
Stutter entering new areas, world loads lateStreaming or asset problemstrmem, strlist and strdbg, all developer modeF8 console
Long irregular freezes, capture shows littleBlocking call: database query, or file and network I/OSlow query logging, plus tick start and end timingServer console and database layer
Constant low-level cost on every clientUnyielding or over-frequent loop in some resourcePer-resource CPU msec in the resource monitorF8 console via resmon
Heavy client to server event trafficEvent chatter, not CPU costnetEventLog true, developer modeF8 console

If the answer is not the anti-cheat, the fix belongs in general server work: the hardening checklist covers it, and the console reference has the wider command list.

Three causes commonly mistaken for anti-cheat overhead

The unyielding loop. The Citizen.Wait reference warns that "doing a while true do loop without a Wait will crash the clients game", and adds that tick timing is frame-dependent, so a player at 180 FPS receives ticks far more often than one at 60. That is why some players stutter and others do not. Vetting a script beforehand is cheaper.

The blocking call. The fact sheet attributes hitch warnings partly to poorly optimised database queries. A synchronous query, or file and network I/O on a hot path, stalls its thread and will not show as steady per-tick cost. That irregularity is why the anti-cheat gets blamed.

The streaming stall. Stutter as a player crosses into a new area, or a world that loads late, points at the GTA streamer. strdbg shows what is loading, strmem lists streaming memory by asset, strlist shows registered streamer entries.

What is a reasonable tick latency for a FiveM anticheat?

There is no official threshold for what a FiveM resource should cost. Cfx publishes no good-or-bad millisecond figure per resource. Any "under 0.05ms is fine, over 0.1ms is bad" rule you have read is vendor convention dressed as a standard.

So, plainly, ours. FairShieldAC publishes 0.01ms to 0.06ms tick latency on the main server loop. That figure is self-measured, and no independent benchmark of it exists. We have not found an independent benchmark for any competing product's figure either. Treat ours as a hypothesis you are entitled to test on your own hardware.

Watch the shape as well as the number. A fixed per-tick cost stays flat as population climbs; a per-player cost rises with it. txAdmin ships with FXServer and plots a threads performance chart against player count, which separates those shapes with no developer mode involved. txAdmin explained covers setup.

Why zero overhead claims are a red flag

A resource that executes has a non-zero cost. That is arithmetic, so a zero-overhead claim resolves into one of three things: a rounded display value read as an absolute; a cost moved somewhere you are not looking, such as an external process or the player's own machine; or checks so rare and so shallow there is little to measure, which means you are paying for the appearance of protection. Comparative claims about unnamed rivals, with no hardware or method stated, are sentences rather than measurements; the 2026 scorecard examines them.

Does deeper cheat detection always cost more performance?

Detection depth costs something. Deeper inspection, more frequent checks and screenshot verification cost more than shallow checks, and a product implying otherwise is describing something that does less. The corollary nobody writes down: an anti-cheat you stop when the server fills up makes your busiest hours your least protected hours, which is exactly when a server is worth attacking. If tick time only holds with protection stopped, the shortfall lives elsewhere in the stack.

Frequently asked questions

How do I check how much CPU my anti-cheat is using?

Use profiler resource [resourceName] [frames] in the server console for server cost, and resmon in a player's F8 console for client cost. Then isolate: capture with the resource running, stop it, capture again at a comparable player count, and compare. One measurement gives a number; two give a difference.

What is a normal ms for a FiveM resource?

Cfx publishes no per-resource threshold, so there is no official answer. The only numeric figures in the platform are hitch warnings, and in the current server source svMain and svNetwork warn above 150 milliseconds. Judge a resource against your own baseline: capture before install, capture after, read the delta.

Does an anti-cheat lower FPS for players?

A client-side component doing per-frame work can, and that is where client FPS cost comes from for any resource. Ask the player to run cl_drawperf true, which needs no developer mode, and read FPS against CPU usage. If frames are steady while Ping or PL look bad, the problem is the network path.

How do I baseline my FiveM server before installing anything?

Do the boring thing tonight. Take a baseline capture while the server is quiet, take another at peak, and keep both. Most arguments about performance end the moment somebody produces two numbers from the same machine. If you are weighing up FairShieldAC while you measure, our plans sit on the homepage and the dated changelog lets you line a capture up against a release. For groundwork, read how detection works; if you are still choosing, the ranked 2026 comparison is the page.

Related Articles

FairShieldAC

Roby Einstein

FairShieldAC Security Team

The FairShieldAC team is dedicated to keeping FiveM communities safe and fair. Our articles are written by server security professionals with years of experience in game anti-cheat development and network protection. We constantly test against the latest cheat menus to ensure our guidance stays current and actionable.

This article was researched and written by the FairShieldAC team based on our direct experience developing and operating anti-cheat protection for FiveM servers. Last reviewed: September 3, 2026.