Debugging FiveM NUI with Chromium devtools

9 min read5 sections · 4 questions answered
Short answer

With the game running, open http://localhost:13172/ in a Chromium-based browser and pick your resource’s page, or run nui_devTools in the F8 console (developer mode required). Use Console for errors, Elements for layout, Network for NUI callbacks and missing files. Develop most of the UI in a normal browser with mocked messages, and test in game at the end.

When a NUI page shows nothing, JavaScript errors are invisible in game and in the F8 console. The fix is the same devtools you use for websites: FiveM exposes Chromium’s remote debugging while the game runs, so you can see the console, inspect elements and watch every callback.

Opening the devtools

  1. 1Start FiveM and join your development server.
  2. 2In Chrome or Edge, open http://localhost:13172/.
  3. 3Click the page for your resource (its URL contains cfx-nui-<resource>).
  4. 4Alternatively, type nui_devTools in F8 with developer mode enabled.

What each tab tells you

TabUse it for
ConsoleJavaScript errors, console.log output, running code against the live page
ElementsWhy something is hidden, mispositioned or unstyled
NetworkMissing files (404), NUI callback requests and their responses
PerformanceAnimations and scripts that cost frames

Sending test messages from the console

You do not need Lua to test a UI state. In the devtools console, dispatch the same message Lua would send:

devtools console
window.dispatchEvent(new MessageEvent('message', { data: { action: 'open', balance: 12500 } }));

Developing in a normal browser

Most UI work is faster outside the game: run your dev server (Vite, Next.js) in Chrome, mock NUI messages with a small debug panel, and mock callback responses with a helper like the one in NUI callbacks with fetch. Only focus, input and in-game rendering need the real client.

Common NUI problems and where to look

ProblemLook at
Blank pageConsole for a JS error; Network for a 404 on the script
Images missingNetwork 404 → add the file to files
Fonts look wrongNetwork → font file loaded? correct @font-face URL?
Click does nothingNetwork → did the callback request go out? did it get a response?
UI works in browser but not in gameFeatures the embedded browser handles differently, like backdrop-filter

Lua-side errors still appear in F8 and the server console — see the F8 console guide.

Common questions

How do I open NUI devtools in FiveM?

Open http://localhost:13172/ in a Chromium browser while the game runs, or type nui_devTools in F8 with developer mode on.

Why do I not see my JavaScript errors in F8?

Page errors go to the Chromium devtools console, not F8.

Can I debug the loading screen?

Yes — while the game is loading, the loading screen page can be inspected through the same devtools.

How do I test UI states without Lua?

Dispatch a message event from the devtools console with the same data Lua would send.

Want a loading screen you never have to debug?

Build it in the browser, export once, and edit it whenever — no HTML, no re-uploads.

Start free

More guides