# 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)
```

#### **Use Outdated Version**

Enable this option to suppress alert messages when using an older version of the script.

```lua
Config.UseOutdatedVersion = false -- Set to true if using an outdated script version.
```

***

### 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rytrak.fr/scripts/firefighter-scba-system/general-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
