Emergency lighting in FiveM has always meant patterns compiled into a vehicle resource. Every flash-rate change, every LED nudge, every siren swap means editing a file, reuploading, and restarting.
tELS throws that pipeline out. Sit in the vehicle, run /telsedit, place LEDs on the 3D model with a gizmo, paint patterns on a grid, and wire up the rules that fire them. Save, and every connected client has it — no restart, no reupload, no per-vehicle files.
- 73
- vehicle-state conditions you can combine
- 8
- siren tone slots, on two channels
- 0
- files to edit — it's all built in game
- 1
- dependency — tLib, and it's free
Will it run on your server?
- OneSync, Infinity or Legacy.
- tLib v0.6 or newer — free, and the only dependency.
- No framework needed. There is no framework code in it — nothing to detect, nothing to wire up.
- pma-voice is optional, and only for the PA microphone. Everything else works without it.
- It is not a drop-in replacement for ELS or non-ELS vehicle packs. Their pattern files do not migrate. You build each vehicle in the editor — or import its
carcols.meta, which gets you most of the way in one paste.
What you get
Build the lightbar from the driver's seat
/telsedit opens a 3D editor over the vehicle you are sitting in. Drag LEDs into place with a gizmo, rotate and scale them, attach them to bones so they follow a door or the hood, and group them by location.
Starting from nothing? Create from siren bones reads the model's own siren1…sirenN bones and drops a grouped, sided starter bar in one click. Multi-select, duplicate, mirror across the centreline, or batch-edit a whole group.
Already have a lightbar? Paste its carcols
Copy a vehicle's carcols.meta, paste it into the importer, pick a siren set, and tELS converts its sequences, flash rate, phase offsets, and per-head colours into a real tELS pattern you can then edit like any other.
It is the difference between rebuilding a fleet and importing one.
Patterns painted on a grid
LEDs run across the top, frames down the side. Click a cell to colour it. Each pattern carries its own palette, its own frame rate, and per-frame durations — and cells marked dimmable fade into the next frame instead of snapping.
It previews on the real vehicle while you edit, so what you see in the editor is what the street sees.
73 conditions, combined how you like
Not a preset dropdown. Speed bands, individual gears, steering angle, brake, handbrake, each door, lock state, body damage, seat occupancy, the in-game clock, someone approaching the car — joined with AND/OR and negated per condition, driving 16 kinds of action.
Speed > 30ANDLights ActiveAND NOTCustom Pattern→ Set Stage 2
Audio that matches the lights
Eight tone slots per vehicle across a main and an auxiliary channel, plus a separate airhorn chain and a rumbler variant per tone. Every slot holds a vanilla game sound and, optionally, a server-side one — players pick which they hear.
Twelve custom tones ship. Horn gestures — tap, hold, double-tap — are conditions in their own right, so the horn can drive the lights.
Configure one car, deploy it to twenty
{ "$ref": "police4", "$all": true }Point one vehicle at another instead of copying it. Edit the source and every vehicle referencing it updates. Orphans clean themselves up, and a vehicle resource can ship its own tels.json as a starting point — your edits always win over the pack's.
Built for a scene, not a screenshot
Ten units on one traffic stop is the case that matters. Vehicles beyond 500 m are skipped entirely, ones behind the camera are culled, lighting quality steps down with distance, and the expensive door/lock/occupancy checks only run for vehicles whose own rules ask for them.
Set environmental lighting to Smart and it watches frame time, easing quality up at 90 fps and back down at 75 so it settles instead of flickering between the two.
Also included
- A community config library, in game. Browse and download vehicle configs other people have published, or upload your own, without leaving the editor.
- Auto-calibration. One button samples your screen and suggests bloom and vibrance settings that suit whatever graphics mod you run, so the lights read correctly under an ENB or a dark timecycle.
- HUD skins and sound packs from the marketplace — installed from the panel, no restart.
- A PA microphone. Hold to talk through the vehicle, with a range slider and three voice presets.
- Presence detection. A locked, armed vehicle wakes up when someone walks near it.
- A HUD layout SDK. Layouts are HTML and CSS with declarative bindings — around fifty state keys, per-layout icons and button sounds.
- State bags, not exports. Twenty-one entity keys mirror every lighting and siren field, readable from any script with no round trip.
Specifications
Compatibility
What stays open
data.json — every vehicle and every server default, plain JSONlayouts/ — HTML, CSS, JavaScript, icons, and sounds, all yourstels_config and tels_led_png manifest keysWhat is included
Buying it
Questions people actually ask
I already have ELS vehicle packs. Do they just work?
Not automatically — their pattern files don't migrate, and the data model is different. But the
editor can import a vehicle's carcols.meta and turn its siren sets into tELS patterns, so a
working lightbar is usually a paste and a few edits rather than a rebuild.
Will it slow my server down when ten units are on scene?
That is the case it was built for — distance cut-off, frustum culling, quality that steps down with distance, pre-allocated buffers, and condition checks that only run for vehicles whose rules need them. There is no published benchmark, so those are mechanisms rather than a number.
Is there a limit on how many LEDs I can put on a car?
Yes — 64 are rendered at once per vehicle. That is plenty for a patrol car or a full lightbar build, but a heavily-lit fire apparatus can reach it.
Where do my configurations live, and do they survive an update?
In one data.json at the resource root — every vehicle and every server default. Back that one
file up. Your own edits also take priority over anything a vehicle resource ships, so
customisation survives a vehicle-pack update.
Will it fight with my other keybinds?
It uses a wide set — Q, R, E, 1-8, 9/0 and more — so a collision with an inventory or radio script is likely. Every one is registered through FiveM's keybind system, so you and your players can rebind any of them.
It says beta. What does that mean for me?
It means the feature set is still moving and you should expect changes between releases. It is in use and it works; it is not yet listed publicly. Ask in the Discord before you buy if that matters to you.
Read it first
The full documentation is public — installation, the editor, the data.json schema,
the HUD layout SDK, and the API. Nothing is behind the purchase.
