Original research
FiveM resource CPU cost, measured across 739 real servers
What this is
210,171 individual resource timings collected from 739 distinct FiveM servers between 2026-03-06 and 2026-11-09, covering 45,732 distinct resource names. The most widely deployed resource is tick (monitor) on 719 of 739 servers. The single most expensive tick ever recorded is 1268.1 ms from event:QBCore:Server:TriggerCallback (qb-core). Free to use under CC BY 4.0, with a CSV download below.
Read this before using the numbers
- The sample is self-selected. These profiles came from people who chose to run a profiler, and most people do that because something is already wrong. Absolute costs here almost certainly skew worse than a random sample of FiveM servers would. Use the data to compare resources against each other, not to judge whether your own server is normal.
- A resource is not a verdict. A high figure next to a resource name usually means a server is using it heavily or misconfiguring it, not that the resource is badly written. The most widespread resources naturally accumulate the most extreme outliers.
- Framework counts are name matches. We count servers having a resource whose name contains, say,
es_extended. That is a proxy for framework use, not a declared dependency. - Only resources seen on 10 or more servers are listed. Of 45,732 distinct names, the large majority appear on a single server — bespoke scripts and renamed copies. Publishing those would be noise.
Highest single ticks ever recorded
The worst one-off spike observed for each resource, among those appearing on 10 or more servers. A spike above roughly 50 ms is a visible hitch for players, since the server tick budget is about 50 ms.
| Resource | Worst tick | Avg per tick | Servers |
|---|---|---|---|
event:QBCore:Server:TriggerCallback (qb-core) | 1268.1 ms | 2.270 ms | 76 |
tick (oxmysql) | 1023.9 ms | 0.092 ms | 667 |
tick (ox_doorlock) | 932.9 ms | 0.569 ms | 99 |
tick (dnc_police) | 759.1 ms | 16.610 ms | 14 |
event:__ox_cb_jg-advancedgarages:server:nearby-players (jg-advancedgarages) | 659.0 ms | 13.019 ms | 93 |
event:cocottMonsters:getPlayerData (cocott-monsters) | 634.8 ms | 58.947 ms | 18 |
event:esx:triggerServerCallback (es_extended) | 571.5 ms | 1.711 ms | 143 |
event:wasabi_ambulance:setDeathStatus (wasabi_ambulance) | 529.1 ms | 6.252 ms | 77 |
event wasabi_ambulance:setDeathStatus [@blueberry/shared_fg-obfuscated.lua[1..1]] | 525.1 ms | 11.180 ms | 34 |
tick (ns_sync) | 500.2 ms | 2.823 ms | 16 |
event QBCore:Server:TriggerCallback [@blueberry/shared_fg-obfuscated.lua[1..1]] | 484.0 ms | 2.525 ms | 42 |
tick (blips_creator) | 392.4 ms | 0.115 ms | 46 |
Highest sustained cost per tick
Mean per-tick cost, among resources on 25 or more servers. Unlike the table above, this is the cost a resource imposes continuously rather than in occasional spikes — it is what quietly lowers your baseline frame time.
| Resource | Avg per tick | Worst tick | Servers |
|---|---|---|---|
tick (ox_stashdurability) | 31.124 ms | 212.3 ms | 43 |
event __ox_cb_jg-advancedgarages:server:nearby-players [@blueberry/shared_fg-obfuscated.lua[1..1]] | 15.773 ms | 232.9 ms | 33 |
event:__ox_cb_jg-advancedgarages:server:nearby-players (jg-advancedgarages) | 13.019 ms | 659.0 ms | 93 |
event wasabi_ambulance:setDeathStatus [@blueberry/shared_fg-obfuscated.lua[1..1]] | 11.180 ms | 525.1 ms | 34 |
event chat:init [@chat/sv_chat.lua[264..281]] | 11.007 ms | 29.2 ms | 30 |
event:chat:init (chat) | 10.320 ms | 38.7 ms | 61 |
event hospital:server:resetHungerThirst [@blueberry/shared_fg-obfuscated.lua[1..1]] | 9.428 ms | 169.6 ms | 25 |
event:hospital:server:resetHungerThirst (wasabi_ambulance) | 8.572 ms | 207.0 ms | 31 |
tick (okokReports) | 7.949 ms | 137.5 ms | 39 |
event __ox_cb_jg-advancedgarages:server:nearby-players [?[474..710]] | 7.483 ms | 70.4 ms | 26 |
event esx:setJob [?[474..710]] | 7.290 ms | 40.9 ms | 25 |
event __ox_cb_qbx_core [@ox_lib/imports/callback/server.lua[13..21]] | 6.429 ms | 22.1 ms | 27 |
Framework and library footprint
How many of the 739 profiled servers carry a resource matching each name.
667
of 739 servers
oxmysql
632
of 739 servers
pma-voice
557
of 739 servers
ox_lib
510
of 739 servers
ox_target
423
of 739 servers
ox_inventory
228
of 739 servers
ESX (es_extended)
129
of 739 servers
Qbox (qbx_core)
103
of 739 servers
QBCore (qb-core)
Most widely deployed resources
Top 100 resources by number of distinct servers running them. The full filtered table is in the CSV export.
| # | Resource | Servers | Avg per tick | Worst tick |
|---|---|---|---|---|
| 1 | tick (monitor) | 719 | 0.075 ms | 224.0 ms |
| 2 | thread @monitor/resource/sv_logger.lua[31..54] | 705 | 0.041 ms | 75.4 ms |
| 3 | thread @monitor/resource/sv_playerlist.lua[112..134] | 694 | 0.184 ms | 43.4 ms |
| 4 | tick (oxmysql) | 667 | 0.092 ms | 1023.9 ms |
| 5 | tick (pma-voice) | 632 | 0.024 ms | 67.7 ms |
| 6 | tick (ox_target) | 509 | 0.052 ms | 14.2 ms |
| 7 | tick (yarn) | 493 | 0.028 ms | 59.2 ms |
| 8 | event:ox_lib:validateCallback (ox_lib) | 460 | 0.120 ms | 187.6 ms |
| 9 | tick (screenshot-basic) | 456 | 0.023 ms | 131.5 ms |
| 10 | thread @ox_target/server/main.lua[25..48] | 389 | 0.031 ms | 7.3 ms |
| 11 | thread @monitor/resource/sv_main.lua[484..489] | 381 | 0.208 ms | 23.1 ms |
| 12 | thread @monitor/resource/sv_main.lua[490..495] | 381 | 0.096 ms | 18.9 ms |
| 13 | tick (webpack) | 377 | 0.022 ms | 26.3 ms |
| 14 | tick (ox_inventory) | 376 | 0.562 ms | 156.6 ms |
| 15 | event ox_lib:validateCallback [@ox_lib/resource/callbacks/shared.lua[55..65]] | 313 | 0.017 ms | 8.1 ms |
| 16 | event:ox_inventory:closeInventory (ox_inventory) | 268 | 0.267 ms | 46.6 ms |
| 17 | thread @monitor/resource/sv_main.lua[482..487] | 264 | 0.172 ms | 78.8 ms |
| 18 | thread @monitor/resource/sv_main.lua[488..493] | 264 | 0.079 ms | 58.0 ms |
| 19 | thread @ox_lib/imports/callback/server.lua[63..63] | 261 | 0.024 ms | 20.9 ms |
| 20 | event:__ox_cb_ox_inventory:openInventory (ox_inventory) | 255 | 0.475 ms | 51.0 ms |
| 21 | event:__ox_cb_ox_inventory:useItem (ox_inventory) | 239 | 0.565 ms | 79.8 ms |
| 22 | event:ox_inventory:usedItemInternal (ox_inventory) | 234 | 0.572 ms | 23.1 ms |
| 23 | tick (cd_easytime) | 232 | 0.067 ms | 3.1 ms |
| 24 | event:pma-voice:setTalkingOnRadio (pma-voice) | 229 | 0.217 ms | 5.6 ms |
| 25 | event:__ox_cb_ox_inventory (ox_inventory) | 223 | 0.516 ms | 45.9 ms |
| 26 | event:playerConnecting (monitor) | 196 | 0.162 ms | 1.8 ms |
| 27 | tick (screencapture) | 194 | 0.030 ms | 35.6 ms |
| 28 | event:__ox_cb_ox_inventory:swapItems (ox_inventory) | 193 | 1.627 ms | 103.3 ms |
| 29 | tick (rcore_pool) | 191 | 0.031 ms | 1.3 ms |
| 30 | tick (rcore_casino) | 188 | 0.100 ms | 43.0 ms |
| 31 | thread @monitor/resource/sv_initialData.lua[28..39] | 188 | 0.045 ms | 0.7 ms |
| 32 | event:playerJoining (monitor) | 187 | 0.300 ms | 8.9 ms |
| 33 | event:ox_inventory:updateWeapon (ox_inventory) | 186 | 0.578 ms | 57.3 ms |
| 34 | event playerJoining [@monitor/resource/sv_playerlist.lua[138..168]] | 186 | 0.213 ms | 8.6 ms |
| 35 | event:esx_status:update (esx_status) | 176 | 0.806 ms | 63.3 ms |
| 36 | tick (cd_dispatch) | 175 | 0.167 ms | 14.7 ms |
| 37 | event:entityRemoved (drugs_creator) | 174 | 0.089 ms | 19.9 ms |
| 38 | event:chatMessage (monitor) | 173 | 0.157 ms | 7.2 ms |
| 39 | event:ox_inventory:usedItem (lb-phone) | 171 | 0.067 ms | 4.9 ms |
| 40 | thread @cd_easytime/server/server.lua[338..349] | 171 | 0.050 ms | 2.3 ms |
| 41 | event entityRemoved [?[41..46]] | 167 | 0.015 ms | 6.0 ms |
| 42 | thread @cd_easytime/server/server.lua[321..336] | 166 | 0.014 ms | 2.9 ms |
| 43 | event:txsv:startedWalking (monitor) | 161 | 0.156 ms | 1.6 ms |
| 44 | tick (lb-phone) | 160 | 0.439 ms | 15.8 ms |
| 45 | event:phone:togglePhone (lb-phone) | 159 | 0.208 ms | 9.5 ms |
| 46 | thread @cd_easytime/server/server.lua[261..271] | 157 | 0.015 ms | 0.9 ms |
| 47 | event:jg-vehiclemileage:server:update-mileage (jg-vehiclemileage) | 156 | 2.189 ms | 268.5 ms |
| 48 | tick (drugs_creator) | 155 | 0.764 ms | 96.3 ms |
| 49 | event:playerJoining (pma-voice) | 152 | 0.372 ms | 8.8 ms |
| 50 | thread @monitor/resource/sv_main.lua[426..465] | 151 | 0.101 ms | 3.1 ms |
| 51 | event:playerDropped (monitor) | 149 | 0.218 ms | 2.3 ms |
| 52 | event playerDropped [@monitor/resource/sv_admins.lua[98..100]] | 149 | 0.006 ms | 0.2 ms |
| 53 | event:ox_inventory:usedItem (drugs_creator) | 146 | 0.258 ms | 6.7 ms |
| 54 | event playerDropped [@monitor/resource/sv_playerlist.lua[170..194]] | 146 | 0.095 ms | 2.2 ms |
| 55 | tick (rahe-speakers) | 145 | 0.060 ms | 27.5 ms |
| 56 | event:__ox_cb_illenium-appearance:server:GetPlayerAces (illenium-appearance) | 144 | 0.139 ms | 33.2 ms |
| 57 | event:esx:triggerServerCallback (es_extended) | 143 | 1.711 ms | 571.5 ms |
| 58 | event __ox_cb_ox_inventory:openInventory [@ox_lib/imports/callback/server.lua[121..123]] | 140 | 0.655 ms | 51.0 ms |
| 59 | event:txsv:checkIfAdmin (monitor) | 138 | 0.351 ms | 8.7 ms |
| 60 | thread @cd_easytime/server/server.lua[273..283] | 138 | 0.016 ms | 2.9 ms |
| 61 | event playerJoining [@ox_lib/imports/addCommand/server.lua[29..31]] | 133 | 0.740 ms | 19.8 ms |
| 62 | thread @monitor/resource/sv_initialData.lua[24..35] | 131 | 0.045 ms | 4.9 ms |
| 63 | tick (rcore_radiocar) | 131 | 0.052 ms | 4.1 ms |
| 64 | event:playerJoining (ox_inventory) | 129 | 0.112 ms | 1.4 ms |
| 65 | tick (es_extended) | 125 | 1.152 ms | 131.8 ms |
| 66 | event:__ox_cb_jg-mechanic:server:retrieve-and-apply-veh-statebag-data (jg-mechanic) | 124 | 0.381 ms | 14.8 ms |
| 67 | tick (jg-advancedgarages) | 124 | 0.124 ms | 6.3 ms |
| 68 | tick (rcore_golf) | 124 | 0.042 ms | 1.6 ms |
| 69 | event __ox_cb_ox_inventory:useItem [@ox_lib/imports/callback/server.lua[121..123]] | 123 | 0.453 ms | 43.2 ms |
| 70 | event:txsv:logger:deathEvent (monitor) | 120 | 0.147 ms | 3.6 ms |
| 71 | event:playerDropped (pma-voice) | 120 | 0.158 ms | 1.5 ms |
| 72 | event:__ox_cb_jg-mechanic:server:save-veh-statebag-data-to-db (jg-mechanic) | 119 | 0.409 ms | 20.4 ms |
| 73 | tick (connectqueue) | 119 | 0.110 ms | 4.2 ms |
| 74 | event:txsv:logger:menuEvent (monitor) | 118 | 0.063 ms | 0.4 ms |
| 75 | event:pma-voice:setPlayerRadio (pma-voice) | 116 | 0.288 ms | 7.8 ms |
| 76 | tick (rtx_tv) | 115 | 2.470 ms | 140.4 ms |
| 77 | event __ox_cb_ox_inventory [@ox_lib/imports/callback/server.lua[13..21]] | 115 | 0.380 ms | 45.8 ms |
| 78 | event txsv:checkIfAdmin [@monitor/resource/sv_admins.lua[38..94]] | 115 | 0.223 ms | 8.5 ms |
| 79 | tick (jobs_creator) | 113 | 0.315 ms | 208.4 ms |
| 80 | event:explosionEvent (monitor) | 113 | 0.138 ms | 1.2 ms |
| 81 | event explosionEvent [@monitor/resource/sv_logger.lua[89..102]] | 113 | 0.014 ms | 1.1 ms |
| 82 | tick (EasyAdmin) | 111 | 0.101 ms | 106.3 ms |
| 83 | event:playerJoining (ox_doorlock) | 111 | 0.089 ms | 1.0 ms |
| 84 | tick (rcore_prison) | 109 | 0.236 ms | 49.2 ms |
| 85 | tick (cdev_pets) | 109 | 0.209 ms | 5.9 ms |
| 86 | event __ox_cb_ox_inventory:swapItems [@ox_lib/imports/callback/server.lua[121..123]] | 107 | 1.658 ms | 44.5 ms |
| 87 | tick (qbx_smallresources) | 107 | 0.101 ms | 10.1 ms |
| 88 | tick (rtx_dj) | 106 | 0.115 ms | 26.9 ms |
| 89 | tick (qb-weathersync) | 105 | 0.050 ms | 9.4 ms |
| 90 | event:playerDropped (ox_inventory) | 104 | 0.488 ms | 30.7 ms |
| 91 | tick (Renewed-Weathersync) | 103 | 0.185 ms | 3.7 ms |
| 92 | thread @ox_lib/init.lua[136..147] | 101 | 1.419 ms | 97.0 ms |
| 93 | event txsv:logger:deathEvent [@monitor/resource/sv_logger.lua[222..228]] | 101 | 0.013 ms | 0.2 ms |
| 94 | tick (qbx_core) | 100 | 0.408 ms | 98.6 ms |
| 95 | tick (ox_doorlock) | 99 | 0.569 ms | 932.9 ms |
| 96 | tick (vertex-hub) | 99 | 0.024 ms | 4.1 ms |
| 97 | event playerConnecting [@monitor/resource/sv_main.lua[398..468]] | 99 | 0.085 ms | 2.4 ms |
| 98 | tick (cron) | 97 | 0.098 ms | 13.2 ms |
| 99 | event:__ox_cb_ox_doorlock:getDoors (ox_doorlock) | 96 | 0.496 ms | 4.2 ms |
| 100 | event:entityRemoved (cdev_pets) | 96 | 0.059 ms | 2.5 ms |
Client crash modules
From 65 deduplicated crash dumps uploaded to our crash analyzer. This sample is small and mostly inconclusive — the large majority resolve to fivem.exe itself with no specific faulting module, which tells you little. It is published for completeness, not as a finding.
| Faulting module | Reports |
|---|---|
fivem.exe | 51 |
citizen-devtools.dll | 2 |
gta-streaming-five.dll | 2 |
rage-graphics-five.dll | 2 |
adhesive.dll | 1 |
amdxx64.dll | 1 |
citizen-scripting-core.dll | 1 |
d3d11.dll | 1 |
glue.dll | 1 |
kernelbase.dll | 1 |
legitimacy.dll | 1 |
repscripts.exe | 1 |
Methodology
- Collection. Profiler dumps voluntarily uploaded to our free FiveM profiler analyzer. No server identity, IP, or player data is stored or published — only resource names and their timings.
- Deduplication. Each upload is hashed by the content of its resource list, so the same server re-uploading does not inflate server counts.
- Exclusions. Engine-internal entries are filtered at ingest — the resource manager tick, anonymous threads, reference calls, task iterations, and CFX-internal events.
- Definitions. Avg per tick is the mean CPU milliseconds the resource consumed per server tick. Worst tick is the single highest value observed. Servers is the count of distinct deduplicated profiles containing that resource.
- Coverage. 2026-03-06 to 2026-11-09, 210,171 measurements, 739 servers. This page regenerates daily.
- Licence. CC BY 4.0 — reuse it with attribution. Corrections and data requests to [email protected].
Questions
- Which FiveM resource uses the most CPU?
- Measured across 739 profiled servers, the resource with the highest mean per-tick cost among those running on 25 or more servers is tick (ox_stashdurability) at 31.124 ms average. The highest single tick ever recorded in this dataset is 1268.1 ms from event:QBCore:Server:TriggerCallback (qb-core). Mean cost and worst-case spike are different problems: a resource that is persistently expensive drags every frame, while a spike causes a visible hitch.
- Is oxmysql slow?
- oxmysql is the most widely deployed database resource in this dataset, appearing on 667 of 739 profiled servers. Its average per-tick cost is low at 0.092 ms, but its worst recorded tick is 1023.9 ms — roughly a full second. That pattern is characteristic of a resource that is cheap in normal operation and occasionally blocks on a slow query. The usual cause is an unindexed query or a synchronous call in a hot path, not oxmysql itself.
- How many FiveM servers run ESX versus QBCore?
- In this sample of 739 servers, 228 carry an es_extended (ESX) resource, 103 carry qb-core, and 129 carry qbx_core (Qbox). Note this counts servers where a resource name matches, which is a proxy for framework use rather than a declared dependency, and the sample is self-selected — see the limitations below.
- Where does this FiveM performance data come from?
- From profiler dumps voluntarily uploaded to GoodLeaf's free FiveM profiler analyzer at /analyze. Each upload is deduplicated by a content hash of its resource list so the same server re-uploading does not inflate the counts. The dataset currently holds 210,171 individual resource timings from 739 distinct servers, covering 2026-03-06 to 2026-11-09.
- Can I use this data?
- Yes. The full table is available as a CSV download and the data is published under CC BY 4.0, so you may reuse it with attribution to GoodLeaf Hosting. If you are writing about FiveM performance and want a figure checked or a cut of the data we have not published, email [email protected].
Profile your own server
This data is useful for comparing resources, but it cannot tell you what is wrong with your server. Upload a txAdmin profiler dump to get a graded report and your own worst offenders ranked. Free, no account, and you do not need to host with us.
Our Products
© 2017-2026 GoodLeaf Hosting & Development LLC. All rights reserved.
GoodLeaf Hosting & Development LLC is an independent provider of server infrastructure. We are not affiliated with GoodLeap financing or GoodLeaf vertical farming. We focus exclusively on High-Performance Game Hosting and Enterprise VPS solutions.