📄 Data Files
carcols.meta

carcols.meta

Overview

carcols.meta is an xml file that contains lighting configurations for vehicles. It defines headlights, tail lights, and emergency lights.

We will focus on how to configure emergency lights using sirens as well as how to set up modkits. If you're looking for details about every value in the file, check out the the GTAMods Wiki. (opens in a new tab)

Siren Walkthrough

Below are the more significant values in carcols.meta that are used to configure emergency lights.

Delta/Rotation

Siren deltas determine the rotation of the emissive mesh, and the environment lighting.

carcols.meta
<delta value="2.35619449">

There are 8 commonly used delta values.

DirectionSideDummy AngleSiren Delta
FrontFront00.00000000
RightPassenger90-1.57079633
BackRear1803.14159265
LeftDriver-901.57079633
Front RightPassenger45-0.78539816
Back RightPassenger135-2.35619449
Back LeftDriver-1352.35619449
Front LeftDriver-450.78539816

Be sure to set the delta value in both the rotation section and the flashiness section as shown below.

carcols.meta
...
<Item> <!--siren1-->
  <rotation>
    <delta value="1.57079633" />
    <start value="0.00000000" />
    <speed value="3.00000000" />
    <sequencer value="572662306" />
    <multiples value="1" />
    <direction value="false" />
    <syncToBpm value="true" />
  </rotation>
  <flashiness>
    <delta value="1.57079633" />
    <start value="0.00000000" />
    <speed value="3.00000000" />
    <sequencer value="572662306" />
    <multiples value="1" />
    <direction value="false" />
    <syncToBpm value="true" />
  </flashiness>
...

Sequencers

Sequencers are decimal values that represent 32-bit binary strings. Sequencers are converted to binary at runtime and used to determine the pattern that sirens flash in.

Each digit of the 32 digit binary value represents a "tick" of the BPM value. On each tick, the siren is either turned on when the value is 1 or off when the value is 0. This is the format that we edit sequencers in, but the game reads them as decimal values.

Binary sequence example:

11110000111100001111000011110000

Decimal value for the above sequence:

4042322160

The decimal value is what we will use in carcols.meta. Be sure to set the sequencer value in both the rotation section and the flashiness section as shown below.

carcols.meta
<Item> <!--siren1-->
  <rotation>
    <delta value="1.57079633" />
    <start value="0.00000000" />
    <speed value="3.00000000" />
    <sequencer value="4042322160" />
    <multiples value="1" />
    <direction value="false" />
    <syncToBpm value="true" />
  </rotation>
  <flashiness>
    <delta value="1.57079633" />
    <start value="0.00000000" />
    <speed value="3.00000000" />
    <sequencer value="4042322160" />
    <multiples value="1" />
    <direction value="false" />
    <syncToBpm value="true" />
  </flashiness>
...

To convert binary values to decimal values you can use any online tool such as Rapid Tables (opens in a new tab).

There are multiple ways you could go about creating sequencer binary values and patterns. The first method is by just manually creating a binary value in any text editor (otherwise known as torture). The more efficient method is by using Siren Tool which will allow you to visually generate sequencer values, and converts them for you, or generates an entire carcols.meta file for you.

Check out the page below to get started with Siren Tool.

Coronas

Coronas are the orbs of light that appear on the vehicle when the siren is on. You can control the size, intensity of the coronas.

carcols.meta
...
<corona>
  <intensity value="0.00000001"/>
  <size value="0.00000000"/>
  <pull value="0.15000000"/>
  <faceCamera value="false"/>
</corona>
...

Most people choose to entirely hide the coronas by using values similar to the ones above.

Colors

<color value="0xFFFF0000">

Most Used Colors

Color NameHexARGB
Red0xFFFF0000
Blue0xFF0000FF
White0xFFFFFFFF
Amber0xFFFFD700
Yellow0xFFFFFF00
Green
Purple

Standard Colors

Color NameHexARGB
BlackGraphite0xFF0F0F0F255, 15, 15, 15
ChocolateBrown0xFF3F2D18255, 63, 45, 24
MetallicPurple0xFF320642255, 50, 6, 66
HotPink0xFFB01259255, 176, 18, 89
FormulaRed0xFF6B0000255, 107, 0, 0
MetallicBlue0xFF001B57255, 0, 27, 87
UltraBlue0xFF2070D8255, 32, 112, 216
RacingGreen0xFF00441B255, 0, 68, 27
LimeGreen0xFF418503255, 65, 133, 3
RaceYellow0xFFD9A600255, 217, 166, 0
ClassicOrange0xFFBD4800255, 189, 72, 0
MetallicGold0xFFAD7B47255, 173, 123, 71
ClassicWhite0xFFF0F0F0255, 240, 240, 240

Data gathered by Zero parsed by, HairyMineFart, and Organized by Dawnstar

Non-standard colors were excluded, but could give different results than the one above. If you want to try other values you can find the full list of colors here (opens in a new tab)

Scale Factor

Scale factor determines by what factor/multiple the emissive meshes parented to the Siren will scale up.

If the mesh was scaled down to 0.01 in ZModeler, it needs to be scaled up by 100 in carcols to work properly in-game. You can technically use any value if you want to do the math, but below are some of the most commonly used values.

Mesh ScaleScale Factor
0.110
0.01100
0.0011000

It is recommended to use a value smaller than 0.1 to hide the emissive mesh more effectively while scaled down.

Speed Value

This section needs contributors! Edit this page (opens in a new tab) or learn other ways to contribute!

Light Groups

This section needs contributors! Edit this page (opens in a new tab) or learn other ways to contribute!

Environment Lighting

Whenever the Siren is on it shines light in the world. You can control the intensity, angle, and color of the light.

The four main values are lightFalloffMax, lightFalloffExponent, lightInnerConeAngle and lightOuterConeAngle. View this diagram below to get an idea of how they each effect the light source.

lightFalloffMax

Controls the maximum distance that the light can reach. Works like a "power" value if everything else is setup properly. A good range for this value is between 40 and 100.

<lightFalloffMax value="80.00000000" />

lightFalloffExponent

Controls how quickly the light fades out as it reaches the lightFalloffMax distance. This value should be around 65% of the lightFalloffMax value for the best results.

<lightFalloffExponent value="52.00000000" />
💡

This value must always be lower than lightFalloffMax!!!!!

lightInnerConeAngle

Controls where the light starts to fade out horizontally. Inside this angle, the light will remain at 100% strength (horizontally/inside to outside). This value should be between 2 and 10 for best results.

<lightInnerConeAngle value="2.30000000" />

lightOuterConeAngle

Controls the width of the light cone. This value should be between 30 and 90 for best results depending on your use case. A lower value will create a more focused light like a spotlight, and a higher value will create a wider light like a floodlight.

<lightOuterConeAngle value="70.00000000" />

Rotator Lights

For information on rotators click through to the content originally hosted here (opens in a new tab) by Smanbg (opens in a new tab), Cj24 (opens in a new tab) and PNWParksFan (opens in a new tab). A small snippet is shown below.

In comparison to your traditional strobe or LED lightbar with flashing lights, rotating lights require quite a different approach when using them, in particular, the sirens have to be covered, rather than scaled down. This guide is going to walk through the two common methods for rotator lightbars.

First and foremost, the rotating modules have to be attached to the emissives, as that is what forms the siren - a rotating module and the emissive itself, and lastly - reset the local axis. After that is done, set your lightbar up as you would any lightbar, this also applies to any modules that are not rotatable.

The next step on the list is covering the emissives. The rotator lightbar is a constant-spinning bar that relies on the rotation section of your siren in the carcols, which is also why it cannot be scaled and why the emissives should be covered when the lights are not on.

Rotator Speed

It is possible to decrease the speed of rotators without decreasing the BPM and instead using the speed value and adjusted sequencers. In the rotation settings, syncToBpm must be turned off to be able to use the speed value. The exact speed value required depends on your BPM and the sequencer.

To slow down the lights, slower sequencers must be used, the more 1s are in the sequencer, the higher the speed. 1s must always be separated by an equal number of 0s. This results in the following sequencers and speed values:

The speed value must be set proportionally to the BPM and the sequencer. To calculate the required speed value, use the following formula:

Good Rotary BPM is 120 BPM with Flash set to False

Other Values

id

Value must match siren ID value in Carvariations.meta (opens in a new tab) for the same vehicle.

Should be between 1000-40000 for most consistent results. Some numbers don't work inexplicably.

<id value="2121"/>

timeMultiplier

Multiplies the BPM by the value specified.

<timeMultiplier value="1.00000000"/> Time x BPM (Ex. 1.0 x 600 = 600 BPM)

textureName

Don't Change this! Specifies corona texture.

<textureName>VehicleLight\_sirenlight</textureName>

sequencerBpm

<sequencerBpm value="600"/>

Headlights and Taillights

When working with headlight and taillight sequencers you have to account for a delay for the fade in and out of the lights.

The default/standard sequencers that will give you the typical back and forth wig-wag effect are:

10000000100000001000000010000000 and 00001000000010000000100000001000

If you have other good sequencers please contribute them!

Headlights Example

      <leftHeadLight>
        <sequencer value="0"/>
      </leftHeadLight>
      <rightHeadLight>
        <sequencer value="0"/>
      </rightHeadLight> --This section controls headlight and Tailight Flashes, 
      <leftTailLight> -- In Binary make sure itflashes NO MORE than 4 times in a row!
        <sequencer value="0"/>      
      </leftTailLight> --Ex. 10101010000000001010101000000000 
      <rightTailLight> --00000000101010100000000010101010
        <sequencer value="0"/>
      </rightTailLight>
      <leftHeadLightMultiples value="1"/> --How many times the Corona to flash within the BPM
      <rightHeadLightMultiples value="1"/> --For example BPM is 600 if you change the Multiple to 5
      <leftTailLightMultiples value="1"/> --It would be 600*5 = 3000 Corona Flashes
      <rightTailLightMultiples value="1"/>   --(TOO EXCESSIVE!!)
      <useRealLights value="true"/>     --If you want the Flashes to actually use the Headlights

Modkits

Overview

carcols.meta controls the modkits items that are on the vehicle. This includes aftermarket parts such as exhausts, trims, steering wheels etc. There are many different options avaliable to control what the modkits do.

How to Setup Modkits

To keep the file formatted in a way that aligns with GTA, the modkit items should be put at the very beginning of the carcols file. Add a modkit item to the carcols file by using the following code:

carcols.meta
<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVarGlobal>
  <Kits>
    <Item>
 
    </Item>
  </Kits>
...

Now give your modkit a name, id, and kitType. The name will be how you reference the modkit later. Your modkit name should be followed by _modkit

The ID value is a unique number to identify the modkit similar to the siren ID value. This makes sure the modkits are unique to the vehicle.

There is limited information available about the kitType, leaving it as MKT_SPECIAL will work.

<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVarGlobal>
  <Kits>
    <Item>
      <kitName>myVehicle_modkit</kitName>
      <id value="47543" />
      <kitType>MKT_SPECIAL</kitType>
    </Item>
  </Kits>
...

Adding Modkit Items

Modkit parts need to be exported from ZModeler and placed in the stream folder. Visible mods will go in the visibleMods tag like below.

carcols.meta
<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVarGlobal>
  <Kits>
    <Item>
      <kitName>myVehicle_modkit</kitName>
      <id value="47543" />
      <kitType>MKT_SPECIAL</kitType>
      <visibleMods>
        <!-- items -->
      </visibleMods>
    </Item>
  </Kits>
...

Each of our items will go inside those tags.

Here's an example item:

<Item>
  <modelName>ITEM_NAME</modelName>
  <modShopLabel>ITEM_SHOP_LABEL</modShopLabel>
  <linkedModels />
  <turnOffBones>
    <Item>misc_*</Item>
  </turnOffBones>
  <type>VMT_*</type>
  <bone>chassis</bone>
  <collisionBone>chassis</collisionBone>
  <cameraPos>VMCP_DEFAULT</cameraPos>
  <audioApply value="1.000000" />
  <weight value="20" />
  <turnOffExtra value="false" />
  <disableBonnetCamera value="false" />
  <allowBonnetSlide value="true" />
</Item>

Below are the different options you can use for the modkit items.

Tag NameWhat is is?Accepted value typeOptions
modelNameThis is the name of the file in the stream folder.NameN/a
modShopLabelThis is the name that will show up in the customization screens. This is not really used in FiveM / GTA unless its being customized within a Los Santos CustomsNameN/a
linkedModelsThis links two modkits together allowing you to turn two or more things on when you turn on option on.ItemsItems
turnOffBonesThis allows you to turn off bones within the car. For example, turning off a mirror when replacing the option. This has to be a misc item.ItemItems
typeThis defines the type of the modkit.NameFind a list of types here (opens in a new tab)
boneThis defines what bone the modkit is linked to. Chassis is standard if you are just adding something on.StringFind a list of bones here (opens in a new tab)
collisionBoneThis defines what collision the modkit item will use. Once again, the chassis is normally standard but you can add different collisions.NameFin a lit of collisions here (opens in a new tab)
cameraPosThis allows you to change how the camera works with the modkit enables. This isn't normally changed from VMCP_DEFAULT though.NameN/a
audioApplyThis options isn't used very often alongside that there isn't a lot of information about it. It's best to leave the value at 1.NameN/a
weightThe weight is what is applied to the vehicle once the modkit item is on. For example, if you add a massive wing onto your car you can add a bit more weight to slow the vehicle down. This option directly affects the handling.StringN/a
turnOffExtraThere isn't a lot of information on this but I'd assume it links with the vehicles.meta turnOffExtra.Booleantrue / false
disableBonnetCameraThis option turns off the bonnet camera off when the modkit item in enabled in game.Booleantrue / false
allowBonnetSlideThis will stop players from sliding over the bonnet when the modkit item is enabled.Booleantrue / false

Debugging modkits

If in the event your modkits do not work, here are some tips on how to fix it:

  • Ensure your modkit ID is unique to the individual vehicle. The values can be from 0-1023 but some may overlap with other vehicles. Just keep changing the ID until your options show up for you. You do not need to restart the server to update this.
  • Ensure that the kiteName is in carvariations.meta
  • Ensure that the .yft modkit items are in the stream folder.
  • Ensure that the modelName is the same as the name of the .yft modkit in the stream folder.