Happy Halloween from GXDHalloween in2d04h50m14sBrowse the store →
FiveM Tools / ELS Config

ELS Config free ELS VCF editor & converter

Edit ELS lighting configurations — extras, sounds and flash patterns — import XML or JSON keeping script-specific sections, and convert between the real ELS scripts' file formats.

All free tools Free · runs in your browser
Beta

This tool is in beta, so you may hit bugs or rough edges. If something breaks or looks wrong, please report it in the GXD Discord with what you did and a screenshot. Every report helps us fix it faster.

ELS Config

VCF XML

Import XML or JSON while keeping script-specific sections intact.

Recent history
Saved/imported creations will appear here so you can reopen or duplicate them.
Extras 1–12
Edit EOVERRIDE, STATIC and environment-light offsets. Written to the file: ticked extras, named statics and every extra a flash pattern uses (MISS-ELS controls every extra listed in EOVERRIDE and leaves the rest alone).
Extra 01
Extra 02
Extra 03
Extra 04
Extra 05
Extra 06
Extra 07
Extra 08
Extra 09
Extra 10
Extra 11
Extra 12
Sounds
MainHorn
NineMode
SrnTone1
SrnTone2
SrnTone3
SrnTone4
Adapter notes
VCF XML uses EOVERRIDE, STATIC, SOUNDS and PATTERN. Extra root sections are kept on import/export. Stage-based JSON stays in raw JSON mode.
PRIMARY
#1
#2
SECONDARY
#1
#2
REARREDS
#1
#2
XML preview
<?xml version="1.0" encoding="utf-8"?>
<!-- GXD ELS Config. Sections from the imported file that the editor doesn't handle are kept as they were. -->
<vcfroot Description="GXD Vehicle Configuration" Author="Ghost X Development" Version="1.1.0">
    <EOVERRIDE>
        <Extra01 IsElsControlled="true" />
        <Extra02 IsElsControlled="true" />
        <Extra03 IsElsControlled="true" />
        <Extra04 IsElsControlled="true" />
        <Extra05 IsElsControlled="true" />
    </EOVERRIDE>

    <STATIC>

    </STATIC>

    <SOUNDS>
        <MainHorn AllowUse="true" AudioString="SIRENS_AIRHORN" />
        <NineMode AllowUse="false" />
        <SrnTone1 AllowUse="true" AudioString="VEHICLES_HORNS_SIREN_1" />
        <SrnTone2 AllowUse="true" AudioString="VEHICLES_HORNS_SIREN_2" />
        <SrnTone3 AllowUse="true" AudioString="VEHICLES_HORNS_POLICE_WARNING" />
        <SrnTone4 AllowUse="true" AudioString="VEHICLES_HORNS_AMBULANCE_WARNING" />
    </SOUNDS>

    <PATTERN>
        <PRIMARY>
            <Flash Duration="100" Extras="1,2" />
            <Flash Duration="100" />
        </PRIMARY>

        <SECONDARY>
            <Flash Duration="100" Extras="3,4" />
            <Flash Duration="100" />
        </SECONDARY>

        <REARREDS IsEmergency="false">
            <Flash Duration="500" Extras="5" />
            <Flash Duration="250" />
        </REARREDS>
    </PATTERN>
</vcfroot>
GXD JSON interchange preview
{
  "schema": "gxd-els-profile/v1",
  "format": "GXD ELS interchange",
  "description": "GXD Vehicle Configuration",
  "author": "Ghost X Development",
  "extras": [
    {
      "id": 1,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 2,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 3,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 4,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 5,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 6,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 7,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 8,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 9,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 10,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 11,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "id": 12,
      "controlled": false,
      "environmentLight": false,
      "color": "red",
      "staticName": "",
      "offset": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    }
  ],
  "sounds": {
    "MainHorn": {
      "allow": true,
      "audio": "SIRENS_AIRHORN",
      "soundSet": ""
    },
    "NineMode": {
      "allow": false,
      "audio": "",
      "soundSet": ""
    },
    "SrnTone1": {
      "allow": true,
      "audio": "VEHICLES_HORNS_SIREN_1",
      "soundSet": ""
    },
    "SrnTone2": {
      "allow": true,
      "audio": "VEHICLES_HORNS_SIREN_2",
      "soundSet": ""
    },
    "SrnTone3": {
      "allow": true,
      "audio": "VEHICLES_HORNS_POLICE_WARNING",
      "soundSet": ""
    },
    "SrnTone4": {
      "allow": true,
      "audio": "VEHICLES_HORNS_AMBULANCE_WARNING",
      "soundSet": ""
    }
  },
  "patterns": {
    "PRIMARY": [
      {
        "duration": 100,
        "extras": "1,2"
      },
      {
        "duration": 100,
        "extras": ""
      }
    ],
    "SECONDARY": [
      {
        "duration": 100,
        "extras": "3,4"
      },
      {
        "duration": 100,
        "extras": ""
      }
    ],
    "REARREDS": [
      {
        "duration": 500,
        "extras": "5"
      },
      {
        "duration": 250,
        "extras": ""
      }
    ]
  },
  "rearEmergency": false,
  "preservedXmlSections": [],
  "preservedRootAttributes": {
    "Version": "1.1.0"
  },
  "sourceAdapter": "VCF XML"
}
No resource openELS Config
Questions

Questions about ELS Config

What this free tool does, what it makes and how the files go into FiveM.

A VCF (vehicle configuration file) is the XML an ELS script reads for one vehicle: which extras are lights, the sounds and siren tones, and the flash patterns. It sits in the script's vcf folder, named after the spawn code. ELS Config lets you edit extras, sounds and patterns in a form instead of raw XML.

Yes. Import a VCF as XML or JSON and convert it between the file formats of the common ELS scripts. A report lists what carried over exactly, what was approximated and what the target format cannot hold, so nothing is lost without you knowing. Check the result on a dev server.

ELS lights a car by switching its extras on and off, so the model needs a separate extra for each light and the VCF must map the right extra numbers. If a light never turns on, check that extra exists on the .yft and that its number in the VCF matches. For Non-ELS carcols patterns, use Signal Bench.

Everything runs in your browser. Files you open stay on your computer; exports are downloads. Workspace, Conflict Check and GTA Library need direct disk access and aren't available on the web.