> For the complete documentation index, see [llms.txt](https://docs.rytrak.fr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rytrak.fr/scripts/firefighter-scba-system/general-configuration.md).

# General Configuration

This guide will help you customize the SCBA system to fit your server's needs, by explaining all available options in the `config.lua` file.

***

### 1. General Configuration

#### **Language**

Set the language used by the script for in-game texts.

```lua
Config.Language = 'en' -- Available: 'en' (English), 'fr' (French)
```

***

### 2. Framework Compatibility

{% hint style="danger" %}
**Note:** Only one framework should be active at a time.
{% endhint %}

**ESX Compatibility**

Enable SCBA access for specific ESX jobs.

```lua
Config.ESX = {
    enabled = false,
    jobs = {'firefighter', 'ems'}
}
```

**QB Compatibility**

Enable SCBA access for specific QB jobs.

```lua
Config.QB = {
    enabled = false,
    jobs = {'firefighter', 'ems'}
}
```

***

### 3. Command Usage

Enable or disable the `/scba` command as an alternative to EUP access.

```lua
Config.CommandEnabled = false
Config.Command = 'scba' -- Customizable command name
```

***

### 4. EUP Configuration

Defines the SCBA outfits for different scenarios, allowing customization of player appearance when wearing or not wearing the SCBA.​

```lua
Config.EUP = {
    [1] = {
        Untie = {
            [`mp_m_freemode_01`] = {[8] = {drawable = 56, texture = 0}},
            [`mp_f_freemode_01`] = {[8] = {drawable = 24, texture = 0}}
        },
        Link = {
            [`mp_m_freemode_01`] = {[8] = {drawable = 58, texture = 0}},
            [`mp_f_freemode_01`] = {[8] = {drawable = 25, texture = 0}}
        },
        UntieDrawable = 15 -- Set default component used when removing SCBA.
    }
}
```

* **Untie**: Defines the outfit components when the SCBA is untie.​
* **Link**: Defines the outfit components when the SCBA is link.​

Each entry specifies the drawable and texture IDs for the undershirt component (index 8) for male (`mp_m_freemode_01`) and female (`mp_f_freemode_01`) character models.​

0: Face\ 1: Mask\ 2: Hair\ 3: Torso\ 4: Leg\ 5: Parachute / bag\ 6: Shoes\ 7: Accessory\ 8: Undershirt\ 9: Kevlar\ 10: Badge\ 11: Torso 2

To add more EUP configurations, create additional entries in the `Config.EUP` table with different indices (\[2], \[3], etc.) and define their respective `Untie` and `Link` settings (Don't forget to declare the id you defined in category 5. SCBA Retrieval)

***

### 5. SCBA Retrieval

**From Vehicles**

Allow SCBA to be retrieved from specific vehicle models.

(Number 1 corresponds to the eup number defined above in Config.EUP)

```lua
Config.VehicleAccess = {
    [1] = {'firetruk', 'blista'}
}
Config.DriverCanTake = false -- Can drivers retrieve SCBA?
```

**From World Points**

If commands are disabled, define world points for retrieving SCBA.

(Number 1 corresponds to the eup number defined above in Config.EUP)

<pre class="language-lua"><code class="lang-lua">Config.AccessPoints = {
    [1] = {
        vector3(1200.25, -1487.31, 35.14),
        vector3(1199.22, -1473.9, 34.69)
    }
}
<strong>Config.AccessRadius = 3.0, -- Adjusts radius to recover SCBA
</strong></code></pre>

***

### 6. Mask Control

Disable key to manually attach/detach mask (useful when using custom exports).

```lua
Config.DisablePutMask = false
```

***

### 7. Recharge System

Recharge SCBA from vehicles or locations.

(Number 1 corresponds to the eup number defined above in Config.EUP)

```lua
Config.RechargeVehicles = {
    [1] = {'firetruk', 'blista'}
}
Config.RechargeLocations = {
    [1] = {
        vector3(1194.29, -1487.11, 34.69),
        vector3(1188.5, -1472.38, 34.69)
    }
}
Config.RechargeRadius = 3.0, -- Adjusts radius to recharge the SCBA
Config.RechargeSpeed = 0.25 -- Recharge speed multiplier
```

***

### 8. Pressure System

Define initial SCBA pressure and how fast it depletes based on player activity.

```lua
Config.Pressure = 300 -- Max 400

Config.PressureDepletionIntervals = {
    Sprinting = 100,
    Walking = 200,
    Still = 300
}
Config.PressureDepletionAmounts = {
    Sprinting = 0.2,
    Walking = 0.17,
    Still = 0.12
}
```

Pressure alert sound thresholds:

```lua
Config.AlarmSound = {50, 290}
```

***

### 9. Visual & Audio Effects

Enable visual screen filter and voice muffling with PMA-Voice.

```lua
Config.VisualEffect = 'DefaultColorCode' -- Refer to: https://wiki.rage.mp/index.php?title=Timecycle_Modifiers
Config.VoiceEffect = true -- Requires PMA-Voice compatibility
```

***

### 10. Cough Block Zones

Cough Block Zones allow you to define specific areas where players will not cough even if near fire without wearing an SCBA. *(Used mainly to block campfires)*

#### Enable Cough Block Zones Activate or deactivate the system that blocks coughing in certain predefined zones.

```lua
Config.FireDamage.CoughBlockZones.enabled = false -- Set to true to enable cough-free zones.
```

#### Define Block Zones List the coordinates and radius of each area where coughing should be disabled.

```lua
Config.FireDamage.CoughBlockZones.list = {
    {
        coords = vector3(-440.57, 1594.07, 358.47), -- Example location (e.g., MRPD)
        radius = 30.0 -- Radius (in meters) around the coordinates where coughing is blocked
    },
    {
        coords = vector3(1850.0, 3680.0, 34.0), -- Another example (e.g., Sandy Shores Station)
        radius = 25.0 -- Radius (in meters)
    }
}
```

You can add as many locations as needed by following the structure shown above.

#### Define Block Props Blocks coughing when a player approaches a prop from the list in the setup

```lua
Config.FireDamage.CoughDisablePropsList = {'prop_beach_fire'}
```

***

### 11. Fire Damage System

Control how players are affected by fire when not wearing SCBA.

```lua
Config.FireDamage = {
    SmartFires = {
        enabled = false,
        resourceName = 'SmartFires'
    },
    zFire = {
        enabled = false,
        resourceName = 'z_fire'
    },
    
    CoughInInterior = true,
    CoughInExterior = true,
    DamageNearFire = 4,
    RadiusGetFire = 9.0,
    CoughSound = true,
    CoughDelay = 5000,
    EvacuationEnable = true,
    EvacuationMask = {
        [`mp_m_freemode_01`] = { [1] = { component = 12 } },
        [`mp_f_freemode_01`] = { [1] = { component = 12 } }
    }
}
```

***

### 12. HUD Display

Customize the SCBA display HUD.

```lua
Config.NUI = {
    Design = {
        NUI = true, -- HUD display (bottom right)
        Text = true -- Help text (bottom center)
    },
    SizeNUI = {
        screenX = 0.905,
        screenY = 0.83
    }
}
```

***

### 13. Key Bindings

Define keys for SCBA interactions.

```lua
Config.Keys = {
    PutMaskKey = 38,
    PutMaskKeyString = '~INPUT_PICKUP~',
    VerifyKey = 104,
    VerifyKeyString = '~INPUT_VEH_SHUFFLE~',
    ReloadKey = 47,
    ReloadKeyString = '~INPUT_DETONATE~'
}
```

*Refer to the* [*FiveM Control Reference*](https://docs.fivem.net/docs/game-references/controls/) *for a list of control codes.*

***

### 14. Language Library

Edit the text displayed for different actions in multiple languages.
