REC

LIVE SYSTEM OVERVIEW

OPS Bodycam

How it records, where the footage goes, and why it barely costs a low-end PC anything

WHAT IT IS

A body-worn camera that actually behaves like one

Every officer issued a camera can record their own view as real video, in-game — not a screenshot, not a third-party capture tool. Every finished recording lands in an evidence portal automatically.

Records what they see

The officer's own screen — including the game's HUD and minimap, not the phone or menus.

Goes to Xon Sight

The evidence portal only ever receives a link to the video, never the file itself.

Runs anywhere

ESX, QBCore, Qbox, ox_core, ND, or completely standalone — it finds what's running.

Starting a recording

Manual

Press F10 (rebindable), type /bodycam, or use the OPS Phone → Bodycam app — start, stop, add a note, see your own footage and who else is live.

Automatic

Starts itself on shots fired, a weapon drawn, or lights & siren above 68 mph. It never stops itself — only going off duty, or the officer, does that.

TriggerFires on
Weapon drawnGun or taser leaves the holster — not just aiming
Shots firedAny weapon discharged, taser included
Lights & sirenDriving at speed with them on — a parked car with lights flashing doesn't count

While recording, the visible camera on the vest shows its red LEDs — everyone nearby can see it's live. A beep marks start and stop, and a double beep every 2 minutes, like the real thing.

HOW IT WORKS

Recording is a browser trick, not a screen capture

Game view

Whatever the officer sees — HUD included

→

NUI canvas

WebGL frame + burned-in overlay: time, officer, serial, street

→

MediaRecorder

Encodes straight to webm, right in the browser

→

Xon Sight

Gets a link to the file, never the file itself

No separate screenshot resource and no second full-scene render — the same NUI browser the phone and menus already use captures and encodes the picture.

Long recordings are cut into parts (3 minutes by default). Each part uploads and becomes its own evidence item as soon as it's done.

THE CAMERA IS NEVER REALLY OFF

A tiny rolling buffer runs the whole shift

So when an auto-trigger fires — shots fired, weapon drawn — the clip catches the 3 minutes that led up to it, not just what comes after.

ALWAYS RUNNING

320×180

8 fps · ~200 kbps

On duty, every officer issued a camera

WHILE RECORDING

1280×720

30 fps · 3 Mbps

Full quality — the buffer pauses the moment this starts

THE EVIDENCE SYSTEM

Xon Sight: two pages, one portal

/live

Who's recording right now, with their position and the way they're facing. Updates within about a second of someone starting or stopping — it doesn't wait for the next sync cycle.

/evidence

Every finished part, captioned: officer · job · street · part number · time · what triggered it · any note added from the phone.

Only a link crosses over. The portal never receives the actual video file — just its https address, so the clip has to be reachable on the web, not sent through the game server.

It doesn't give up. If the portal's down or the key's wrong, the same part is retried every 2 minutes, up to 10 times, before it's given up on.

VOICE

Audio comes from OPS Voice, not the video

Recording starts

A listening bot joins the officer's voice channel

→

It keeps every frame

Mic, nearby voices, radio — one stream per speaker

→

Part finishes

ffmpeg mixes and muxes it onto that video part

→

Evidence link

Points at the version with sound

If the voice bridge is down, or the mix fails, the silent video still goes to Xon Sight — the evidence never just disappears, it's just quieter. One honest limit: FiveM gives neither the camera's NUI nor the server the game's own sound, so gunshots, sirens and engines can never be in the recording — only what people say near the officer.

PERFORMANCE

Built to be light on a weak PC

What it doesn't do

  • No separate screenshot resource grabbing frames
  • No second full-scene render of the world
  • No external ffmpeg process running on the client

What it does instead

  • Encodes inside the NUI browser already running the phone
  • Defaults to 1280×720 · 30 fps · 3 Mbps — every number is in config.lua
  • The always-on buffer is a deliberately tiny 320×180 · 8 fps

On genuinely low-end machines, turning the main recording resolution, frame rate or bitrate down costs nothing functionally — the evidence portal, captions and auto-triggers all work exactly the same at any quality setting.

HOW IT COMPARES

Four other FiveM bodycam scripts

What each one actually documents publicly, as of this writing — not every script out there, just four well-known ones spanning free and paid.

SX Development
Bodycam & Dashcam

Paid. Fivemanage / Cloudflare R2 storage, a tablet UI to browse clips, bodycam + dashcam in one.

Code Studio
Bodycam & Dashcam

Paid. Discord or Fivemanage uploads, configurable fps, dashcam with a speed readout.

spy-bodycam
Your-Spy

Free, open source. Clips post to a Discord channel; lets you watch another player's camera live, in-engine.

hype-bodycam
hypescripts-fivem

Free, MIT licensed. Live feeds only (no archive) at station terminals, dual front/rear dashcams.

HOW IT COMPARES

Feature by feature, against their own docs

FeatureOPS
Bodycam
SX DevCode
Studio
spy-
bodycam
hype-
bodycam
Evidence portal with captions & case managementYesTablet onlyNoNoNo
Pre-event rolling bufferYesNoNoNoNo
Auto-start (shots fired / weapon drawn)YesNot documentedItem onlyNot documentedYes
Voice/radio muxed into the evidence fileYesNot documentedNot documentedMic → Discord onlyNot documented
Documented low-end-PC tuningYesNofps onlyNoNo
Dashcam (vehicle-mounted)Coming soonYesYesYesYes
Watch another officer's camera live, in-engineComing soonNot documentedNot documentedYesYes
Free / open sourceTBDPaidPaidYesYes

Based on each project's own public documentation/README as of October 2026 — "not documented" means the feature isn't mentioned, not confirmed absent. Sources: docs.sxdevelopment.com, codestudio5m.gitbook.io, github.com/Your-Spy/spy-bodycam, github.com/hypescripts-fivem/hype-bodycam.

TO BE FAIR

What OPS Bodycam doesn't do yet

Two things the scripts above already have, that OPS Bodycam is still building toward:

Live in-engine viewing · coming soon

spy-bodycam and hype-bodycam let another officer watch a live feed without leaving the game. OPS Bodycam's /live page only shows position and facing today, not video — FiveM gives no cheap, documented way to stream live camera frames out of the game, so this needs solving properly before it ships.

No dashcam yet · coming soon

SX Development, Code Studio, spy-bodycam and hype-bodycam all record from a vehicle too. OPS Bodycam is bodycam-only today, but the same capture pipeline already does the hard part — a dashcam is planned on top of it.

ACCESS

Who's actually issued a camera

ModeWho gets one
jobAnyone on duty in a listed job (police, sheriff, EMS…)
itemAnyone carrying the bodycam item
job_and_item / job_or_itemBoth required, or either one
aceOnly an explicit server permission — standalone servers
everyoneEvery player on the server

Going off duty, or losing the job or item, cuts the camera off within 20 seconds — no manual cleanup needed.

IN SHORT

Real footage, a real evidence trail, barely any cost

Real recording

The officer's actual view, watermarked, as webm video

Automatic evidence

Every part, captioned, on Xon Sight — with voice muxed in

Light by design

No second render, no extra process, tunable for weak PCs

Find it: OPS Phone → Bodycam, or press F10