NIGHTSHIFT puts a bodycam on your police, a dashcam in their cars and an evidence locker in the station — then turns each incident into a 12-second video stamped with your server’s name.
Nobody has to export, edit or upload anything. The incident triggers the record, the record becomes a file, the file lands where people already look.
There is no mock footage on this page. This is the field list the overlay carries, and which edition keeps it in the file afterwards.
| Field | On screen | In the exported clip |
|---|---|---|
| REC indicator | blinking dot + REC while a clip is being recorded | visible in the corner |
| Agency and callsign | agency code and callsign of the officer | visible in the corner |
| Clock | in-game time, seconds ticking | visible; the relay also burns a UTC timestamp (Full) |
| Incident number | NS-2026-0001 once recording starts | visible; burned into the header by the relay (Full) |
| Street and zone | nearest street and zone name | visible; also stored in the locker entry |
| GPS | rounded world coordinates | visible; full coordinates in the locker |
| Plate and speed | only while in a vehicle | visible; also stored in the locker entry |
| Weather and temperature | current weather label and degrees | visible; also stored in the locker entry |
| Author tag | corner watermark while the bodycam is on | burned pixels (Full) · repeated banner strips (Lite) |
Screenshots and real clips will replace this table as soon as they are recorded on a live server. We are not shipping fake frames to fill the gap.
If a feature is not on this page, it is not in the resource. That is the whole point of this site.
REC, agency, callsign, live clock, incident number, street, GPS, plate, speed, weather and temperature. Film grain, scanlines and vignette drawn in CSS, so nothing touches the render path. Hides the HUD while active and puts it back on exit.
Fires on a firearm hit within a configurable radius and on nearby sirens. A hit, not a muzzle flash — the damage event is the signal that is reliable on every game build. Cooldown, per-player quota and a server-wide ceiling included.
Search by case, player, street, zone or plate; filter deaths, gunfire, manual and local-only entries. Inline playback, copy link, copy case ID, admin-only delete with two-step confirmation. JSON ring buffer — no database to migrate.
River currents drag players and vehicles. Wetness turns into chill, chill into shivering camera, blurred vision, aim loss and finally damage. Interiors, campfires and running vehicles warm you back up; altitude and rain make it worse.
Self-hosted Python + ffmpeg service included in the bundle. Transcodes the WebM, burns the watermark and the incident header, extracts a poster, serves Range requests, keeps files 72 h and reports /stats.
A repeated NIGHTSHIFT by Hartwell Labs strip across the top and bottom of every recorded frame, independent of the bodycam. Lite records at 854×480 so a normal clip stays inside Discord’s free 10 MB upload limit.
Lite exists for servers whose hosting will not run Python and ffmpeg. It is the same resource — an empty relay endpoint switches it into Lite mode.
For servers that can run one small VPS. Every incident becomes a watermarked MP4 that posts itself.
For shared hosting or any box without Python and ffmpeg. Clips still record — they just stay on your server.
LOCAL ONLY locker entries with file path and size| What the buyer notices | Full — $80 | Lite — $40 |
|---|---|---|
| Recording | screencapture, 12 s, uploaded to your relay | screencapture, 12 s, written on the game server |
| Watermark | burned into the pixels by ffmpeg | creator banner in the frame, no burn-in |
| Discord | file posted automatically, with case and metadata | nothing is posted automatically |
| Locker entry | playable link, download button | LOCAL ONLY, file path and size |
| Cleanup | relay expires files after 72 h | you keep the files; the index still purges on retention |
| Extra infrastructure | one VPS with Python 3 + ffmpeg (~$5/mo) | none |
Optional installation service for the relay: $40. Updates free for 12 months on both editions.
Read this before buying. Every one of these is a real constraint of FiveM or of the edition, not a bug we are hiding.
Drop the resource in, start the recording engine, grant the locker to your police group. Full also gets the relay running on any VPS.
ensure screencaptureensure nightshiftadd_ace group.police nightshift.evidence allowadd_ace group.admin nightshift.admin allowFull: deploy clipd/, set NIGHTSHIFT_TOKEN, then fill endpoint, token and webhook in server/config_server.lua. Lite: skip that step and leave endpoint empty.
Requirements: FXServer cerulean or newer, and the free open-source screencapture resource. No ESX, QBCore or ox_core dependency — permissions are plain ACEs.
It does not care. Everything is ACE permissions, so it runs with any framework or none.
No. The locker is a JSON ring buffer on disk: 500 clips and 7 days by default, both configurable, purged on boot and on demand.
FiveM cannot rewind. screencapture records forward from the moment it is called. Anyone selling “last 30 seconds” is buffering video on the client and hiding the cost.
Lite records at 854×480 for that reason. The locker tells you the file size and whether the clip is inside Discord’s free 10 MB upload limit before you post it.
On Full, no: the relay burns it into the pixels before the file exists. On Lite the banner is part of the picture and a re-encode can crop it.
No trial build. The clips on this page and in the thread are the demo — they are rendered from the shipped overlay, not concept art.
Source included, no escrow, no obfuscation. One licence per server. Support is a Discord ticket with a 48 hour response, and updates are free for 12 months.