> For the complete documentation index, see [llms.txt](https://docs.tehsteel.dev/tehsteels-development/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tehsteel.dev/tehsteels-development/ts-10system/configuration.md).

# Configuration

Here you can find anything about the configuration files.

## Selecting your framework

Selecting your framework would be an easy one.

The script by default doesn't support ESX at the moment. You will need to create your own "custom" framework implementation for anything that is not qb-core.

{% hint style="danger" %}
***WE DON'T GUARANTEE THAT ESX WILL WORK PROPERLY***
{% endhint %}

{% code title="config.lua" %}

```lua
Config.Framework = {
    Core = 'qb', -- For the default and latest QBCore framework write qb, If you want to use a custom fraemwork use custom
    CoreFolder = 'qb-core', -- For qbcore users only, The name of the qb-core folder.
}
```

{% endcode %}

## Settings

We currently support pma-voice only. In case of high packet loss or timeouts, you might want to disable it if your server cannot handle the bandwidth and packets.

```lua
Config.Settings = {
    enableTalkingColor = true -- Enable or disable a color while talking. In case of high packet loss or timeouts, you might want to disable it if your server cannot handle the bandwidth and packets.
}
```

## Channels & Jobs

This is the default configuration file, Lets start understanding it.

### **Understanding the Structure**

Each job definition has the following properties:

**`Channels`**: A list of settings for each channel within the job. \
**`Default Tag Color`**: The standard color for tags related to the job, shown as a hex value. \
**`Special Tags`**: A list specifying particular tag ranges and their matching colors.

### Channel Configuration

Each channel within a job is defined by these properties:

* **`header`**: The name displayed for the channel.
* **`main`**: A boolean value indicating if this is the primary channel for the job (One per job).
* **`radios`**: A list of radio frequencies associated with the channel.
* **`icon:`** You can choose an icon of your preference. I recommend checking Font Awesome for options. If you prefer not to use an icon, feel free to remove the line or comment it out.

```lua
Config.Jobs = {
    ['police'] = { -- Job name
        channels = {
            {
                header = 'Main', -- Header of the main channel
                main = true, -- Set it as the main channel.
                icon = 'speaker.svg', -- You can choose an icon of your preference. I recommend checking Font Awesome for options. If you prefer not to use an icon, feel free to remove the line or comment it out.
            },
            {
                header = 'Store Robbery', -- Header of a sub channel called store robbery
                radios = {3}, -- The frequencies that are associated  
                -- icon = 'cart.svg', -- You can choose an icon of your preference. I recommend checking Font Awesome for options. If you prefer not to use an icon, feel free to remove the line or comment it out.
            },
        },
        defaultTagColor = '#00000', -- The standard color for tags related to the job 
        specialTags = { -- A list of special tags colors
            {
                tags = {min = '200', max = '205'},
                tagColor = '#C40707',
            },
        },
        data = {}, -- DO NOT TOUCH
    },
}
```

{% hint style="warning" %}
**For the icons to work you must go to the web/dist/imgs folder and insert the images.**
{% endhint %}
