Buy — $80
FiveM resource · standalone

Every death becomes a clip. Every clip is your ad.

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.

Full edition — $80 Lite edition — $40 How it works
12 s
recorded per trigger
4 modules
bodycam, dashcam, locker, survival
NS-2026-0001
incident numbering that survives restarts
10 / min
server-wide recording ceiling
The loop

Your players generate the marketing.

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.

Step 1
A trigger fires. Someone dies, a firearm round hits a player nearby, or an officer hits the manual key.
Step 2
12 seconds record. From the trigger forward, from that player’s point of view. FiveM has no replay buffer; nobody can honestly sell you the 30 seconds before.
Step 3
The clip gets named. An incident number, the server name and a UTC timestamp are attached — and on Full, burned into the pixels.
Step 4
It lands in three places. The player’s toast, the evidence locker, and your Discord webhook.
Step 5
Your community posts it. Every share carries the server it came from.
What you get

The frame your players share.

Two editions, one overlay. Full burns your watermark into the MP4; Lite keeps the creator banner in every recorded frame and leaves the file on your server.

REC / LSPD / 1-ADAM-12
CASE NS-2026-0001 Alta St
21:47:03
Los Santos Police Department
7°C CLEAR
AXON / BODYWORN 3 / -1124, 4912
PLATE 48XK291   74 KM/H
NIGHTSHIFT
FULL · watermark burned by the relay

Full edition — the MP4 arrives already stamped, with a playable link.

NIGHTSHIFT BY HARTWELL LABS  ·  NIGHTSHIFT BY HARTWELL LABS  ·  NIGHTSHIFT BY HARTWELL LABS
REC / BCSO / 2-ADAM-07
CASE NS-2026-0002 Cassidy River
02:14:51
Blaine County Sheriff
-1°C RAIN
AXON / BODYWORN 3 / -220, 4400
NIGHTSHIFT
NIGHTSHIFT BY HARTWELL LABS  ·  NIGHTSHIFT BY HARTWELL LABS  ·  NIGHTSHIFT BY HARTWELL LABS
LITE · 854×480 · LOCAL ONLY

Lite edition — the creator banner rides the frame; the file stays on your server.

UI preview rendered in HTML/CSS from the shipped overlay values. Not gameplay footage.

Modules

What actually ships.

If a feature is not on this page, it is not in the resource. That is the whole point of this site.

Bodycam overlay

all editions

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.

Dashcam triggers

all editions

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.

Evidence locker

all editions

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.

Wilderness survival

all editions

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.

Clip relay

Full

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.

Creator banner

Lite

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.

Editions

Same source. The relay is the difference.

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.

Full

$80/ server

For servers that can run one small VPS. Every incident becomes a watermarked MP4 that posts itself.

  • Everything in the modules list
  • Watermark and incident header burned into the file
  • Automatic Discord post on every clip
  • Playable link, copy and download in the locker
  • Source included, escrow-free
Buy Full — $80

Lite

$40/ server

For shared hosting or any box without Python and ffmpeg. Clips still record — they just stay on your server.

  • Everything above except the relay
  • 854×480 local recordings, no upload
  • LOCAL ONLY locker entries with file path and size
  • Creator banner in every frame
  • Source included, escrow-free
Buy Lite — $40
What the buyer noticesFull — $80Lite — $40
Recordingscreencapture, 12 s, uploaded to your relayscreencapture, 12 s, written on the game server
Watermarkburned into the pixels by ffmpegcreator banner in the frame, no burn-in
Discordfile posted automatically, with case and metadatanothing is posted automatically
Locker entryplayable link, download buttonLOCAL ONLY, file path and size
Cleanuprelay expires files after 72 hyou keep the files; the index still purges on retention
Extra infrastructureone VPS with Python 3 + ffmpeg (~$5/mo)none

Optional installation service for the relay: $40. Updates free for 12 months on both editions.

Honest limits

What this does not do.

Read this before buying. Every one of these is a real constraint of FiveM or of the edition, not a bug we are hiding.

no
No “last 30 seconds before death”. There is no replay buffer in FiveM. We record 12 seconds from the trigger, which is what actually works.
no
No audio. FiveM’s game-view capture exposes no game audio, so clips are video only.
care
Metadata is roleplay data. Street, plate and speed come from the client at trigger time and are sanitised server-side, but a modified client can lie about its own vehicle.
no
No live feed to in-game monitors. There is no native render-to-texture path in this resource.
care
Lite banners can be cropped. The banner is drawn into the recording, not burned by a relay. Someone who re-encodes and crops can remove it — that is why Full exists.
care
Full depends on the relay. If it is down, clips are not uploaded and the player is told so. Lite has no relay to fail.
Install

Five minutes, no database.

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 screencapture
ensure nightshift
add_ace group.police nightshift.evidence allow
add_ace group.admin nightshift.admin allow

Full: 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.

FAQ

The questions that decide the purchase.

Does it work with ESX or QBCore?

It does not care. Everything is ACE permissions, so it runs with any framework or none.

Does it need a database?

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.

Why only 12 seconds?

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.

Will a Lite clip fit Discord?

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.

Can players remove the watermark?

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.

Is there a trial?

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.

Built for servers that live on content.

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.