FREE TOOL

Profiler Analyzer

Drop a FiveM profiler recording — client or server. Zoom through every frame like profiler view, and see which script, event or thread eats your frame time, the exact file and lines behind it, and what to fix first.

Your file never leaves your browser. It is read on your computer, and only the summary is kept in memory.

1 · Profiler recording

client or server — it is detected automatically ·

2 · Resources folder

scans every script for loops, waits and heavy calls ·

Pick resources or the whole server folder (with server.cfg it also knows what is started). Only .lua and .cfg files are read; maps, clothing and streamed assets are skipped. Nothing is uploaded — check it yourself: F12 → Network while it scans.

a made-up recording: an event storm, a slow loop, a locked resource and one 1.3-second frame

How to record a profile

The profiler is built into FiveM and FXServer. You record a few seconds while the problem happens, save it to a file, and drop that file above.

Client

  1. Open the game and press F8 to open the console.
  2. Start recording 1000 frames. At 60 FPS that is about 17 seconds; use a higher number to cover a longer action.
    profiler record 1000
  3. Do the action you want to measure — open a menu, restart a resource, drive into the area that lags.
  4. You will see Started recording, then Stopped the recording when the frames are done. To stop early:
    profiler stop
  5. Save it. You will see Saving the recording to: client.json and Save complete.
    profiler save client.json
  6. The file is in this folder (paste it into the Explorer address bar):
    %LOCALAPPDATA%\FiveM\FiveM.app\citizen
    That is C:\Users\<YourName>\AppData\Local\FiveM\FiveM.app\citizen.

Server

  1. Open the txAdmin Live Console (or the server console window).
  2. Start recording, trigger the action, and wait for Stopped the recording.
    profiler record 1000
  3. Save it.
    profiler save server.json
  4. The file is in the server root, next to server.cfg. With txAdmin that is inside txData/<profile>.base, for example D:\SERVERS\myserver\txData\QBCore_C90A5B.base.
The action takes seconds →
profiler record 1100

Frames ≈ seconds × 60, plus a margin. The server ticks slower than the game renders, so the same number of frames covers more time there.

Tips. Record client and server separately, or both at the same time when you test one specific mechanic. Keep the recording as short as the action allows: the file is smaller and the result is clearer. Use profiler status to check whether a recording is running. Use profiler save, not profiler saveJSON — this tool reads the file save writes.

CommandWhat it does
profiler helpLists the profiler commands.
profiler record start | <frames> | stopStarts an open recording, records a fixed number of frames, or stops.
profiler resource <resource> <frames> | stopRecords one resource only.
profiler save <filename>Saves the last recording. This is the file to drop here.
profiler saveJSON <filename>Saves as text JSON. Not supported by this tool yet.
profiler statusShows whether a recording is running.
profiler view [filename]Opens a recording in the built-in Chrome DevTools viewer.

Before / after comparison of two recordings is next on the list — follow #releases to hear when it ships. The profiler file format is not documented by Cfx; this reader was built from real recordings. If a file is rejected, tell us on Discord.