tLS leaves beta. The editor is rebuilt around a single workspace with one undo history, a marketplace lives inside it so patterns and whole vehicle setups can be shared and imported without leaving the car, and a vehicle's configuration can now live in the vehicle's own resource instead of in tLS. There is a Stream Deck plugin, a stealth run-dark mode, and per-rule debounce on triggers. tLib v1.0 or newer is required.
tLS is not an ELS replacement and does not read ELS or non-ELS vehicle packs — every vehicle is configured once in the in-game editor, or ships a tls.json of its own. If you are new to it, start with Installation.
- A rebuilt editor — one workspace shell instead of floating panels, a single undo history across every tab, a resizable pattern grid, and the LED editor and feedback moved into the sidebar. The camera is driven by pointer drags on the page rather than game controls
- Marketplace, inside the editor — browse LED layouts, patterns and full vehicle setups published by other servers, preview them animating on the card, and import one as a draft edit you can keep or throw away. Read the docs
- Publish from in game — share an LED layout from the Light placement header, a single pattern in one click from the Patterns tab, or the whole vehicle setup from the Marketplace toolbar. Each becomes Update and Un-share once published, so a listing is replaced in place and keeps its id and import count rather than being duplicated
- A vehicle can carry its own configuration — drop a
tls.jsoninside the vehicle resource and that becomes the vehicle's home, so the lighting travels with the car instead of living in tLS. Export moves an existing configuration out to a vehicle resource - Wildcard model keys — one configuration covers a family of models, and a vehicle can be marked read-only so a shared pack is not edited by accident
- Stream Deck plugin — built and published from the production build, and it connects on its own with nothing to configure. Keys mirror live state
- Stealth run-dark mode — everything off, including the brake and reverse lights the game drives itself
- Per-rule engage and release debounce — a trigger can be made to settle before it fires and before it lets go, which is what stops a rule chattering on a noisy condition
- Junction preemption, turn signals and a key lock among the trigger conditions, plus a reminder when a vehicle is left lit
- Quick settings in
/tls— the handful of per-player options that were buried, on one tab tls_diag— one paste-safe line describing the install, for when something needs reporting- HUD layout packs carry their own manifest, and a layout installed from the marketplace renders without waiting for a restart
- tLib v1.0 or newer is required. The editor is built on tLib's design tokens, and configuration, marketplace, telemetry and keybinds all route through it
- The two shipped HUD layouts are renamed to CRX-600 (was
WCC) and SPX-1800 (wasWCC2), matching the naming used across tRadio, tDetector and tRadar. There is no alias — a server pinned to the old name must pick the new one data.jsonis no longer shipped. It is seeded on first boot, which stops an update overwriting a server's vehicles, and demo mode is honoured so a demo install cannot write- Runs on both FiveM Enhanced and Legacy
- Black is a real colour in the pattern grid. An empty cell and a cell painted black are different things to an overlay — one lets the base pattern through, the other holds the LED dark — and they used to draw identically
- Deleting a pattern is one click. It was a two-click confirm whose armed state was invisible in game, in front of an action that Ctrl+Z already reverses and that nothing writes until you save
- A published listing records who published it — the Discord, Cfx and Steam identifiers behind a listing, for attribution and moderation. IP addresses are no longer sent or stored
- The NUI bundle is obfuscated in release builds, and every shipped webfont carries its licence
- Transitioning cells never completed their cross-fade in the editor. A long fade rendered at a fraction of itself, which looked like a hard flicker, while the same pattern played correctly in normal gameplay
- The pattern preview strip could not show a fade at all — it had no opacity channel, so a dimming LED stepped on and off
- The transition gradient in the pattern grid did not reach the cell's edges, so a fade read as a band with an unfinished wash under it
- Saving now waits for an answer before closing. A refused save used to clear the undo history and close the editor anyway, discarding the work it had just refused
- An unreadable
data.jsonsilently erased the server's defaults instead of refusing to load - One bad vehicle model reprinted the same error every five seconds
TIMMYG Studios