Editor

In-game LED placement, Arges spotlights, pattern sequencing, trigger rules, and siren configuration.

In-Game EditorAdmin Only

Overview

/telsedit opens the editor while you're in a vehicle (any seat). Requires the tlib.admin ACE.

Tab workflow

Work the tabs in this order — each builds on the previous one.

  1. LEDs — place (or auto-generate) the physical lights on the vehicle using a Three.js gizmo.
  2. Patterns — arrange those LEDs into frame-by-frame flash sequences with live preview.
  3. Triggers — compound condition rules that drive patterns, stages, and sirens from vehicle state.
  4. Sirens — tone slots, airhorn, rumbler, and chirp sounds.
  5. Settings — per-vehicle siren behavior (horn interrupt, park kill, suspend flags).
  6. Arges (optional) — attach and aim spotlight props.

All tabs share a single orbit camera. Press Enter at any point to save every tab at once; Escape to cancel without saving.

LED Editor

Camera controls

InputAction
Middle MouseOrbit around the vehicle
Shift + MMBPan
Shift + Ctrl + MMBDolly (zoom)
Scroll WheelZoom

View-snap buttons and a "focus on selection" control are available in the sidebar.


LEDs tab

Start here: Create from siren bones

New to a vehicle? Click Create from siren bones in the sidebar. tELS scans the vehicle's siren1sirenN bones and drops a starter LED at each one, pre-grouped and sided. It's the fastest way to go from empty editor to a working lightbar — you can refine positions after.

Click any LED in the 3D viewport or the sidebar list to select it. The gizmo appears at the selection center. Hold Shift+click for range select or Ctrl+click to toggle individual LEDs in the selection.

LED properties

PropertyDescription
Position x, y, zLocal offset from the vehicle chassis, or from bone if one is set
Rotation yaw, pitch, rollOrientation in degrees — drives directional bloom / corona output
Size sw, shSurface width and height in metres
Side1 Right, 2 Left, 3 Center — used by traffic-advisor patterns
NameDisplay name (e.g., "Front Right 1")
GroupsTags used to bulk-select and filter in the pattern editor
BoneOptional vehicle bone name (e.g., siren1, door_dside_f)
Shaperect (default) or circle
Bloomsprite, corona, or both
ExtraOptional GTA vehicle-extra ID (1–15). LED only renders when that extra is enabled on the spawned vehicle.

Identity

Every LED carries a 16-char hex UUID. Patterns reference LEDs by this UUID, never by name or array position — renaming, reordering, or regrouping LEDs never breaks a saved pattern.

Bone attachment

When bone is set, x/y/z and yaw/pitch/roll are interpreted in the bone's local frame, so LEDs on doors, the hood, or the trunk move with those parts as they open.

Multi-select operations

With multiple LEDs selected you can:

  • Move, rotate, or scale them together
  • Duplicate (Shift+D)
  • Mirror left-to-right around the vehicle's centerline (Shift+M)
  • Swap positions (pairs)
  • Delete (Delete or Backspace)
  • Batch-edit any shared property in the properties panel

Keyboard shortcuts (LEDs tab)

ShortcutAction
W / R / SSwitch the gizmo to translate, rotate, or scale
XToggle between world-space and local-space gizmo
Q / ESelect previous / next LED
Shift+DDuplicate selected LEDs
Shift+MMirror selected LEDs
Delete / BackspaceRemove selected LEDs
Ctrl (held)Temporarily toggle grid snap

Global shortcuts (all tabs): Ctrl+Z / Ctrl+Y undo/redo · Enter save and exit · Escape cancel and exit.


Arges tab

Arges spotlights are attachable light props (base + head + arm) that track an aim direction. They're useful for roof-mounted worklights or side spotlights.

Each Arges entry has:

PropertyDescription
Position x, y, zAnchor point on the vehicle
Rotation rx, ry, rzBase orientation
Armcurve or straight — changes which arm prop is used
BoneOptional bone attachment

At runtime the player aims the head with Numpad 8/5/4/6. Aim angles sync to other clients via state bags, so everyone sees the same beam direction.


Patterns tab

Pattern Editor

A grid sequencer — columns are frames, rows are LEDs. The pattern previews live on the vehicle as you edit.

Creating a pattern

Add the pattern

Click Add Pattern in the sidebar.

Set the FPS

All frame durations are measured in ticks at this rate.

Define the color palette

Add RGB colors with optional alpha and a name. Each pattern owns its own palette.

Paint cells

Click cells in the grid to assign colors. A cell value of 0 is off.

Color palette

Each pattern owns its palette. Palette entries have r, g, b, optional a, and a name. Cell values are 1-based indices into the palette.

Frame timing

Each frame has a duration in ticks. At 10 FPS, duration: 1 = 100 ms, 2 = 200 ms, etc.

Smooth dimming

Any cell can be marked dimmable — its color interpolates smoothly into the next frame instead of snapping. Click the ~ button next to a frame row to toggle dim on every cell in that frame at once.

Pattern options

OptionEffect
Trigger OnlyHidden from 9/0 cycling. Only activatable via trigger actions.
Sync NearAll clients sync the frame index to a server-derived clock — everyone sees the same frame at the same time. Use for synchronized fleet patterns.
Use Emergency LightsWhile this pattern is active, GTA's native emergency-lights flag is enabled (drives the red-blue environment tint the game applies to emergency vehicles).
Use High BeamsHigh beams are held on while this pattern is active.
LiveryRestricts this pattern to a specific livery index. Omit for any livery.

Keyboard shortcuts (Patterns tab)

ShortcutAction
SpacePlay / pause the live preview
Ctrl+Z / Ctrl+YUndo / Redo (global)

Triggers tab

Trigger Rule Builder

Each trigger is a rule: IF a compound of conditions is true, THEN run one or more actions.

Building a trigger

Add the trigger

Click Add Trigger in the sidebar.

Pick conditions

Add one or more conditions from the reference below, and choose AND (all must be true) or OR (any suffices).

Negate where needed

Toggle the NOT modifier on individual conditions for "only when X is not true".

Attach actions

Actions run in list order. Most triggers just overlay or switch a pattern; see the action reference below for the rest.

Order by priority

Drag triggers in the list to reorder. Pattern overlays stack in list order, so later triggers paint on top of earlier ones.

Condition reference

Lights & stages

ConditionFires when
lights_onEmergency lights active
stage_1 / stage_2 / stage_3Vehicle is at that stage
park_killDriver exited with sirens running; park kill fired
chirpingChirp tone is playing

Audio

ConditionFires when
sirenAny siren active (main, aux, or burst)
main_siren_onMain siren active
aux_siren_onAux siren active
rumblerRumbler variant playing
airhornAirhorn playing
horn_tapHorn tapped (< 400 ms press)
horn_double_tapHorn double-tapped (< 600 ms between taps)
horn_holdHorn held (> 500 ms)
siren_tone_1siren_tone_8Main siren is playing this specific tone

Modes

ConditionFires when
cruiseCruise mode on
takedownTakedown mode on
ta_left / ta_right / ta_centerTraffic advisor in that direction

Vehicle state

ConditionFires when
engine_on / engine_offEngine running / stopped
stationarySpeed below 2 mph
speed_15 / speed_30 / speed_60 / speed_90Speed above that mph threshold
headlightsHeadlights on
highbeamHigh beams on
day / nightIn-game clock (night = 20:00–05:00)

Controls

ConditionFires when
brakeBrake pedal engaged
handbrakeHandbrake engaged
reverseReverse gear + actually moving backward
turn_left / turn_rightTurn signal on
hazardsHazards on

Doors

ConditionFires when
door_fl / door_fr / door_rl / door_rrThat door is open
hoodHood open
trunkTrunk open
any_door_openAny of the above
lockedVehicle locked

Health

ConditionFires when
vehicle_damagedBody health under 900
flippedVehicle upside-down

Occupancy

ConditionFires when
driver_in_vehDriver seat occupied
passenger_front / passenger_rearSpecific seats occupied
any_passengerAny passenger seat occupied
presencePresence mode armed + on-foot player (not another tELS owner) in range
presence_modePresence mode armed + owner away + vehicle locked

Action types

ActionEffect
pattern_overlayLayer a pattern on top of the base while the rule is true. Overlays stack in list order.
pattern_setSwitch the base pattern on rising edge (once when the rule becomes true).
stage_setActivate a specific stage (1–3). Rising edge only.
main_siren_setStart the main siren on a specific tone.
aux_siren_setStart the aux siren on a specific tone.
siren_overlayPlay a tone while the rule is true; stops automatically on false.
siren_next_tone / siren_prev_toneCycle the main siren's tone.
park_chirpFire a single park chirp (rising edge).
chirp_stopStop an in-progress chirp.
horn_play_airhornPlay the airhorn while the rule is true (respects horn interrupt).
horn_play_vehicle_hornPlay the native vehicle horn while the rule is true.
arges_on / arges_offEnable or disable the Arges spotlight.
arges_sweepRun a sweep animation while the rule is true.

Rising edge vs held: actions like pattern_set, stage_set, and park_chirp only fire the moment a rule becomes true. pattern_overlay, siren_overlay, and horn_play_airhorn run continuously while the rule is true and stop automatically on false.


Sirens tab

Siren Configuration

Tone slots

Up to 8 tone slots. Each slot:

PropertyDescription
NameDisplay name ("Wail", "Yelp", "Priority")
SoundVanilla GTA sound string (e.g., VEHICLES_HORNS_SIREN_1)
Server Sound / Server Sound RefCustom server-bundled audio. Used when Server-sided Sirens is on in /tels.
Rumbler Sound / Rumbler Server SoundAlternate sounds when the rumbler mode is on. Only applies to the main siren.
EnabledOff slots are skipped by every lookup
Trigger OnlySkipped by R, 1-8, and tone cycling, but usable by trigger actions

Airhorn

Separate vanilla / server / rumbler-server fields for the airhorn. Falls back to the default SIRENS_AIRHORN soundset if nothing is configured.

Chirp

FieldDescription
Chirp ToneWhich tone slot plays on the park chirp
Play Full Siren (chirpByCode)Hold the tone for the entire chirp duration instead of short 75–125 ms blips. Use this when your audio file already contains the chirp envelope.

Settings tab

Per-vehicle siren behavior. These apply only to the vehicle you're editing.

SettingDefaultDescription
Horn InterruptOnMain siren pauses while the airhorn plays, resumes on release
Park KillOnSirens stop when the driver exits; fires the park_kill trigger condition
Use Normal HornOnE plays the native vehicle horn when lights are off. Turn off to make the airhorn play regardless.
Programmable HornOffSkip the default horn/airhorn audio and interrupt. Triggers drive the horn with horn_tap / horn_hold / horn_double_tap.
Lights Suspend TAOnTraffic advisor suspends when lights activate
Lights Suspend TakedownOnTakedown suspends when lights activate

Cross-vehicle references

Open the reference menu on any pattern, trigger, siren, or settings block to import it from another vehicle model instead of duplicating.

  • Imported items display a link icon; items referenced by other vehicles display a share icon.
  • Editing a referenced pattern or trigger edits the source. Changes propagate to every vehicle that references it.
  • Bulk references ($all) import every non-referenced pattern or trigger from the source in one go.

See Configuration › Cross-Vehicle References for the underlying data format.


Saving

Save persists all tabs at once to data.json and broadcasts the updated config to every client. If you edited a referenced pattern or trigger, a separate ref-edit event is sent to update the source.

Undo history clears on save.

On this page

Need help?

Ask on Discord