Guides

screenshot-basic in FiveM: what it captures and its limits

Published 20 August 2026 - Pedro García, FiveMonitor

The free way to capture a player's screen in FiveM, documented honestly by someone who sells a paid alternative. Including the two things most guides get wrong about installing it.

Short answer: screenshot-basic is the free, official Cfx.re resource that captures a player's game render and uploads it over HTTP. It produces still images only — jpg, png or webp — never video. It has to be compiled by the yarn and webpack builders on boot, and it has had no commit since 6 January 2022. It works; it is also unmaintained.

Two things most install guides get wrong

First, it does not come with FXServer. A page currently ranking for this term opens by telling you every server already has it. It does not: cfx-server-data ships a handful of base resources and screenshot-basic is not among them. You download it yourself.

Second, a clean clone will not start. The repository's .gitignore excludes dist/, and the manifest points at dist/client.js, dist/server.js and dist/ui.html. It declares yarn and webpack as dependencies precisely because those builders compile it at boot. Another guide claims no build step is needed because the compiled output is committed. It is not, and you can verify that in thirty seconds by looking at the repository.

The three exports

  • requestScreenshot(options, cb) — client side, returns the image as a data URI. The README carries an explicit warning: "Please don't send this through _any_ server events." A full-resolution data URI through a net event is how you stall a server.
  • requestScreenshotUpload(url, field, options, cb) — client side, uploads directly to a URL.
  • requestClientScreenshot(source, options, cb) — server side, and the one you want for moderation, because the request originates on the server rather than in client code a player can inspect.

One security note worth repeating: a widely-copied snippet puts an Authorization header with an API key inside requestScreenshotUpload, which is a client export. That key ends up in the player's process. Use the server-side export instead.

Image options, and the one you cannot set

You can choose encodingjpg by default, or png or webp — and quality from 0.0 to 1.0, defaulting to 0.92, which only applies to lossy encoders. What you cannot choose is resolution. The capture is always taken at the NUI's full window size, meaning the player's actual game resolution. A player on a 4K monitor produces a 4K JPEG, every time, and you pay for that in upload time and storage.

What it costs, and why resmon shows nothing

The NUI page runs a render loop tied to requestAnimationFrame that renders every frame whether or not a capture was requested. That work happens inside the NUI browser, not in the resource's Lua tick, which is why the server resource monitor shows essentially nothing for it. The cost is real but it is on the player's machine and invisible to the tools you would normally check.

The limits

  • Stills only. There is no video path. If you need to see what happened over ten seconds rather than at one instant, this resource cannot do it.
  • No timeout. If the client never answers, your callback never fires. Wrap it yourself.
  • Unmaintained. 16 commits total, last one January 2022. That is not automatically a problem — it is small and it works — but nothing will be fixed for you.
  • Not proof. The capture comes from the player's own machine, over a path a determined cheater can interfere with. Treat it as evidence, not as certainty.

Does it work on GTA V Enhanced?

This is the open question of 2026 for anything that captures a screen. FiveGuard's own FAQ states that its Enhanced support is on hold because cfx-game-view in NUI is broken, which is what breaks game screenshots and screen recording. That mechanism is the one screenshot-basic depends on, so the honest answer is that the limitation is platform-level and not specific to any one product, ours included.

Where we stand, honestly

FiveMonitor captures through the same path: a raw WebGL game view over the game's render target inside a NUI page. We do not see anything screenshot-basic cannot see, and we will say that plainly rather than imply some privileged access. The differences are what happens around the capture: continuous video instead of one frame, a browser panel your moderators open with their own Discord sub-accounts instead of a Discord channel full of images, and no API keys living in client code.

If stills to a webhook cover your needs, screenshot-basic is genuinely enough and it is free. If you are watching a suspected cheater and one frame is not going to settle it, that is when watching the screen live starts to matter. Plans from 9.99 EUR/month, 7-day trial, no card — see the plans or start the trial.

The monitoring your server deserves

Set up FiveMonitor in 5 minutes and see for yourself why we are the lightest option on the market.

Start for free