Debug a FiveM problem by reproducing one symptom, finding the first relevant error and changing one cause on a test server. Keep the last working files and matching database available before touching production.
Choose the right evidence
A client-only crash or UI error needs the affected player’s F8 output and reproduction steps. A server process exit needs FXServer/host logs and any crash reference. A slow join needs timing by stage; low FPS needs client frame-time evidence. Several players lagging together may need server and network measurements.
Record UTC time, affected players, location, action, artifact, framework/resource versions and recent changes. Redact credentials and personal identifiers from shared logs.
Read the first error
Use your actual launch environment: txAdmin console and its configured logs, a service journal, or redirected process output. There is no universal server-data/server.log path for every installation.
Read the first error involving the resource, including its file, line and stack trace. Later missing exports may be consequences of an earlier failed dependency. For a nil value, inspect the value’s producer and return path rather than inserting a default blindly.
Reproduce safely
- Create an isolated copy with representative configuration and test data. Confirm the error still occurs there.
- Check dependencies, exact folder names and startup order before editing logic. On a case-sensitive host, file-path capitalization matters.
- Reduce the reproduction to the smallest affected resource set while preserving required dependencies. Disable one suspect at a time.
- Apply one targeted fix, repeat the original action and test the relevant failure path with an unprivileged player.
- Reconnect, restart the resource and perform a full server restart. Keep the fix only if persistence and permissions remain correct.
Use diagnostics for their actual purpose
The server-command reference documents refresh, ensure and restart. These can disrupt active resource state; use them on staging or in a coordinated maintenance window.
se_debug true enables ACL/security logging, not a general script debug mode. Turn it off with se_debug false after the permission investigation. A custom set debug_mode true has no effect unless a resource explicitly reads that convar.
Use the profiler for script execution. Resmon is client-side and does not report database query time or total GPU cost.
Escalate with a useful report
Include expected versus actual behavior, exact reproduction steps, the first complete error, relevant versions and what changed. Provide a small configuration excerpt with secrets removed. Keep unrelated resource dumps and player data private.
If the production issue worsens, restore the last accepted resource/configuration. Restore a database only when needed and after accounting for newer player progress.