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.
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 XMLImport XML or JSON while keeping script-specific sections intact.
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"
}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.
