# FAQ

## General

<details>

<summary>Is the script compatible with my framework?</summary>

HZ-CarControl supports **QBCore**, **QBX**, **ESX**, and **Standalone** mode. The script automatically detects your framework via the HZ-Bridge system.

</details>

<details>

<summary>Does the script impact performance?</summary>

No. HZ-CarControl uses **0.00 ms** idle on client side. The NUI is only active when the menu is open, and uses GPU-only CSS animations (no blur, no heavy filters) to maintain 60 FPS.

</details>

<details>

<summary>Can players rebind the keys?</summary>

Yes. All keybinds use FiveM's `RegisterKeyMapping` system, which means players can rebind them in **Settings → Key Bindings → FiveM** in-game.

</details>

<details>

<summary>How many languages are supported?</summary>

14 languages are included: English, French, Spanish, German, Portuguese, Italian, Dutch, Polish, Turkish, Russian, Chinese, Japanese, Korean, and Arabic. Set `Config.Locale` to the desired language code.

</details>

<details>

<summary>How do I update the script?</summary>

1. Download the latest version from Keymaster
2. Make a **backup** of your `config.lua`
3. Replace all files except `config.lua`
4. Check the [Changelog](https://hz-script.gitbook.io/hz-script-docs/scripts/hz-carcontrol/changelog) for any new config parameters
5. Restart the server

</details>

***

## Installation

<details>

<summary>The script doesn't start</summary>

Check that:

* The folder is correctly named `HZ-CarControl` (case sensitive)
* `HZ-Bridge` is installed and started **before** HZ-CarControl
* Your FiveM license is valid on the Keymaster
* `server.cfg` contains `ensure HZ-CarControl`

</details>

<details>

<summary>Error "Framework not detected"</summary>

Framework detection is handled by **HZ-Bridge**:

* Make sure `es_extended` or `qb-core` is `ensure`d before `HZ-Bridge`
* `HZ-Bridge` must be `ensure`d before `HZ-CarControl`
* Check the HZ-Bridge console line for detection status

</details>

<details>

<summary>Menu doesn't open at all</summary>

1. You must be **in a vehicle** — the menu won't open on foot
2. Try the command `/carmenu` instead of the keybind
3. Check if another script overrides the `H` key
4. If `Config.Permissions.Enabled = true`, ensure you have the correct ace permission
5. Check the F8 console for errors

</details>

***

## Features

<details>

<summary>Cruise control doesn't activate</summary>

**Common causes:**

1. Your speed is below `Config.CruiseControl.MinSpeed` (default: 20 km/h)
2. `Config.Features.CruiseControl` is set to `false`
3. `Config.CruiseControl.Enabled` is set to `false`

**Solution:** Speed up above 20 km/h and try again.

</details>

<details>

<summary>Door lock doesn't work</summary>

**If using vehicle keys resource:**

* Check that `qbx_vehiclekeys` or `qb-vehiclekeys` is installed and started
* The player must have the vehicle keys
* Set `Config.DoorLock.KeysResource` to `'native'` to bypass key checks

**If using native mode:**

* `Config.DoorLock.KeysResource = 'native'` uses GTA native lock
* Must be the driver to lock/unlock

</details>

<details>

<summary>Neon colors don't save between sessions</summary>

1. Enable `Config.Neons.SaveColor = true`
2. Install `oxmysql` and ensure it starts before HZ-CarControl
3. The table `hz_neon_colors` is auto-created — check the server console for SQL errors
4. Colors are saved per vehicle plate — custom plates work best

</details>

<details>

<summary>Engine stays on when I exit the vehicle</summary>

This is normal GTA behavior when the engine state is forced via script. HZ-CarControl includes automatic engine-off detection when you exit the vehicle. If the issue persists:

1. Check that no other script is forcing the engine on
2. Make sure you're using the latest version of HZ-CarControl

</details>

<details>

<summary>Radio wheel still shows when pressing Q</summary>

Enable `Config.Radio.DisableWheel = true` to disable the native GTA V radio wheel. This forces players to use the CarControl radio panel instead.

</details>

<details>

<summary>Convertible roof option doesn't show</summary>

The convertible roof button only appears when the vehicle actually has a convertible roof. Non-convertible vehicles won't show this option.

</details>

***

## Configuration

<details>

<summary>How do I disable a specific feature?</summary>

Set the feature to `false` in `Config.Features`:

```lua
Config.Features = {
    Neons = false,        -- Disable neon controls
    CruiseControl = false, -- Disable cruise control
    -- ... other features
}
```

The disabled feature will be hidden from the menu.

</details>

<details>

<summary>How do I change the menu position?</summary>

Change `Config.Menu.Align`:

```lua
Config.Menu = {
    Align = 'bottom-center',  -- Default
    -- Options: 'top-left', 'top-center', 'top-right',
    --          'bottom-left', 'bottom-center', 'bottom-right'
}
```

</details>

<details>

<summary>How do I add custom neon color presets?</summary>

Add entries to `Config.Neons.Presets`:

```lua
Config.Neons = {
    Presets = {
        { r = 255, g = 0,   b = 0,   label = 'Red' },
        { r = 0,   g = 255, b = 0,   label = 'Green' },
        -- Add your own:
        { r = 255, g = 105, b = 180, label = 'Hot Pink' },
        { r = 0,   g = 191, b = 255, label = 'Deep Sky Blue' },
    },
}
```

</details>

<details>

<summary>How do I restrict the menu to admins only?</summary>

Enable the permission system:

```lua
Config.Permissions = {
    Enabled = true,
    AcePermission = 'hz.carcontrol',
}
```

Then add the ace in your `server.cfg`:

```cfg
add_ace group.admin hz.carcontrol allow
```

</details>

<details>

<summary>How do I add custom speed limiter presets?</summary>

Modify `Config.SpeedLimiter.Presets`:

```lua
Config.SpeedLimiter = {
    Presets = { 30, 50, 80, 110, 130 },
    -- Change to your own values:
    -- Presets = { 20, 40, 60, 90, 120 },
}
```

The limiter cycles through each preset, then turns off.

</details>

***

{% hint style="info" %}
Can't find your answer? Join our [Discord](https://discord.gg/D2jMNswvBM) and open a ticket in #support!
{% endhint %}
