> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dkscripts.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurações Client

> Configurações do lado do cliente para visual, sons, checkpoints e câmera

# ⚙️ Configurações Client

Estas configurações controlam toda a experiência visual e sonora do jogador durante as corridas. Localizadas em `config/client/config.lua`.

***

## 🎮 Recursos Gerais

Configurações básicas de gameplay do cliente.

```lua theme={null}
-- Ativa animação de câmera ao iniciar a corrida
Config.raceStartCamAnim = true

-- Ativa modo fantasma (desativa colisões entre jogadores)
Config.ghostMode = false

-- Mostra distância até o próximo checkpoint durante a corrida
Config.showDistanceText = true

-- Mostra nome dos jogadores acima dos veículos
Config.showHeadNameTags = true

-- Mostra blips dos jogadores no mapa
Config.showPlayerBlips = true
```

<AccordionGroup>
  <Accordion title="raceStartCamAnim" icon="video" defaultOpen>
    | Propriedade | Valor     |
    | ----------- | --------- |
    | **Tipo**    | `boolean` |
    | **Padrão**  | `true`    |

    Quando ativado, exibe uma sequência cinematográfica de câmera ao iniciar a corrida, mostrando o veículo de diferentes ângulos antes da largada.

    <Tip>
      Desative se os jogadores reclamarem de delay no início da corrida.
    </Tip>
  </Accordion>

  <Accordion title="ghostMode" icon="ghost">
    | Propriedade | Valor     |
    | ----------- | --------- |
    | **Tipo**    | `boolean` |
    | **Padrão**  | `false`   |

    Quando ativado, desativa as colisões entre jogadores durante a corrida. Útil para evitar trolling e acidentes propositais.

    <Tip>
      Recomendamos manter desativado, pois o item coletável **FANTASMA** já oferece essa funcionalidade temporariamente, de maneira mais competitiva.
    </Tip>
  </Accordion>

  <Accordion title="showDistanceText" icon="ruler">
    | Propriedade | Valor     |
    | ----------- | --------- |
    | **Tipo**    | `boolean` |
    | **Padrão**  | `true`    |

    Exibe a distância em metros até o próximo checkpoint na tela durante a corrida.
  </Accordion>

  <Accordion title="showHeadNameTags" icon="user-tag">
    | Propriedade | Valor     |
    | ----------- | --------- |
    | **Tipo**    | `boolean` |
    | **Padrão**  | `true`    |

    Mostra o nickname dos jogadores acima de seus veículos durante a corrida.
  </Accordion>
</AccordionGroup>

***

## 🔊 Configurações de Sons

Sistema de sons para eventos da corrida.

```lua theme={null}
Config.Sounds = {
    reach_checkpoint = {
        enabled = true,
        name = "CHECKPOINT_NORMAL",
        set = "HUD_MINI_GAME_SOUNDSET"
    },
    finish_success = {
        enabled = true,
        name = "Checkpoint_Finish",
        set = "DLC_Stunt_Race_Frontend_Sounds",
    },
    regressive_countdown = {
        enabled = true,
        name = "5s",
        set = "MP_MISSION_COUNTDOWN_SOUNDSET",
    },
}
```

### Estrutura SoundParams

| Propriedade | Tipo      | Descrição                  |
| ----------- | --------- | -------------------------- |
| `enabled`   | `boolean` | Ativa/desativa este som    |
| `name`      | `string`  | Nome do som do GTA V       |
| `set`       | `string`  | Conjunto (soundset) do som |

### Sons Disponíveis

<Tabs>
  <Tab title="reach_checkpoint" icon="circle-check">
    **Evento:** Jogador passa por um checkpoint (exceto o último)

    **Padrão:**

    * Som: `CHECKPOINT_NORMAL`
    * Set: `HUD_MINI_GAME_SOUNDSET`
  </Tab>

  <Tab title="finish_success" icon="flag-checkered">
    **Evento:** Jogador cruza a linha de chegada

    **Padrão:**

    * Som: `Checkpoint_Finish`
    * Set: `DLC_Stunt_Race_Frontend_Sounds`
  </Tab>

  <Tab title="regressive_countdown" icon="clock">
    **Evento:** Contagem regressiva antes da largada

    **Padrão:**

    * Som: `5s`
    * Set: `MP_MISSION_COUNTDOWN_SOUNDSET`
  </Tab>
</Tabs>

<Info>
  Consulte a lista completa de sons do GTA V em: [Pastebin - GTA V Sounds](https://pastebin.com/A8Ny8AHZ)
</Info>

***

## 👁️ Configurações de Preview

Configurações do modo de pré-visualização de rotas.

```lua theme={null}
Config.Preview = {
    stopControl = 194,
    stopControlDisplay = "BACKSPACE",
}
```

| Propriedade          | Tipo     | Descrição                            |
| -------------------- | -------- | ------------------------------------ |
| `stopControl`        | `number` | ID do controle para fechar o preview |
| `stopControlDisplay` | `string` | Texto exibido na interface           |

<Info>
  Consulte os IDs de controles em: [FiveM Controls](https://docs.fivem.net/docs/game-references/controls/)
</Info>

***

## ✨ Partículas e Blips

Configurações padrão para efeitos visuais nos checkpoints.

### Partículas

```lua theme={null}
local particlesConfig = {
    enabled = true,
    dict = 'core',
    name = 'ent_amb_steam',
    scale = 1.5,
}
```

| Propriedade | Tipo      | Descrição                 |
| ----------- | --------- | ------------------------- |
| `enabled`   | `boolean` | Ativa/desativa partículas |
| `dict`      | `string`  | Dicionário de partículas  |
| `name`      | `string`  | Nome da partícula         |
| `scale`     | `number`  | Tamanho da partícula      |

### Blips no Mapa

```lua theme={null}
local mapBlips = {
    enabled = true,
    sprite = 271,
    colour = 4,
    scale = 0.6,
}
```

| Propriedade | Tipo      | Descrição            |
| ----------- | --------- | -------------------- |
| `enabled`   | `boolean` | Ativa/desativa blips |
| `sprite`    | `number`  | Ícone do blip        |
| `colour`    | `number`  | Cor do blip          |
| `scale`     | `number`  | Tamanho do blip      |

<CardGroup cols={2}>
  <Card title="Sprites de Blip" icon="map-pin" href="https://docs.fivem.net/docs/game-references/blips/#blips">
    Lista completa de sprites disponíveis
  </Card>

  <Card title="Cores de Blip" icon="palette" href="https://docs.fivem.net/docs/game-references/blips/#blip-colors">
    Lista completa de cores disponíveis
  </Card>
</CardGroup>

***

## 🏗️ Configuração de Props

Props são objetos decorativos posicionados nos checkpoints.

```lua theme={null}
local propConfig = {
    enabled = true,
    model = "prop_offroad_tyres02",
    offsetDistance = 4.0,
    alpha = 255,
    solo = false,
    collision = false,
}
```

| Propriedade      | Tipo      | Descrição                                 |
| ---------------- | --------- | ----------------------------------------- |
| `enabled`        | `boolean` | Ativa/desativa props                      |
| `model`          | `string`  | Modelo do prop                            |
| `offsetDistance` | `number`  | Distância do centro para esquerda/direita |
| `alpha`          | `number`  | Transparência (0-255)                     |
| `solo`           | `boolean` | Se `true`, spawna apenas o prop esquerdo  |
| `collision`      | `boolean` | Ativa colisão do prop                     |

<Tip>
  Props populares para checkpoints:

  * `prop_offroad_tyres02` - Pilha de pneus
  * `prop_roadcone02a` - Cone de trânsito
  * `prop_barrier_work05` - Barreira de obra
</Tip>

***

## 🎯 Configuração de Checkpoints

A parte mais importante da configuração visual. Define como os checkpoints aparecem em diferentes estados.

```lua theme={null}
Config.checkpointsParams = {
    preview = { ... },
    racing = { ... },
    racing_next = { ... },
    racing_last = { ... },
}
```

### Estados de Checkpoint

<Tabs>
  <Tab title="preview" icon="eye">
    **Quando:** Modo de pré-visualização de rotas

    ```lua theme={null}
    preview = {
        checkpoint = {
            model = 45,
            scale = 8.0,
        },
        color = {255, 255, 255, 100},
        blips = mapBlips,
        prop = propConfig,
        particles = nil
    },
    ```
  </Tab>

  <Tab title="racing" icon="circle-dot">
    **Quando:** Checkpoint atual durante a corrida

    ```lua theme={null}
    racing = {
        checkpoint = {
            model = 18,
            offset = vector3(0.0, 0.0, 6.0),
        },
        color = {255, 255, 255, 100},
        blips = mapBlips,
        prop = propConfig,
    },
    ```
  </Tab>

  <Tab title="racing_next" icon="forward">
    **Quando:** Próximo checkpoint (preview do seguinte)

    ```lua theme={null}
    racing_next = {
        checkpoint = {
            model = 20,
            offset = vector3(0.0, 0.0, 6.0),
        },
        color = {255, 255, 255, 20},
        blips = {
            enabled = true,
            sprite = 270,
            scale = 0.5,
            colour = 4,
        },
        prop = {
            enabled = true,
            model = "prop_offroad_tyres02",
            offsetDistance = 4.0,
            alpha = 180,
            solo = false,
            collision = false,
        },
    },
    ```
  </Tab>

  <Tab title="racing_last" icon="flag-checkered">
    **Quando:** Linha de chegada

    ```lua theme={null}
    racing_last = {
        checkpoint = {
            model = 21,
            offset = vector3(0.0, 0.0, 6.0),
        },
        color = {0, 250, 0, 100},
        blips = {
            enabled = true,
            sprite = 315,
            -- ...
        },
    },
    ```
  </Tab>
</Tabs>

### Estrutura do Checkpoint

```lua theme={null}
checkpoint = {
    model = 18,                            -- Modelo do checkpoint
    scale = 3.0,                           -- Escala (opcional)
    offset = vector3(0.0, 0.0, 6.0),       -- Offset de posição (opcional)
}
```

<Info>
  Consulte os modelos de checkpoint em: [FiveM Checkpoints](https://docs.fivem.net/docs/game-references/checkpoints/)
</Info>

### Estrutura de Cor

```lua theme={null}
color = {R, G, B, A}
-- R = Red (0-255)
-- G = Green (0-255)
-- B = Blue (0-255)
-- A = Alpha/Transparência (0-255)
```

<Note>
  **Cores populares:**

  * Branco: `{255, 255, 255, 100}`
  * Verde: `{0, 250, 0, 100}`
  * Vermelho: `{255, 0, 0, 100}`
  * Azul: `{0, 100, 255, 100}`
  * Amarelo: `{255, 255, 0, 100}`
</Note>

***

## 📝 Exemplo Completo

```lua theme={null}
Config.checkpointsParams = {
    -- Checkpoints no modo preview
    preview = {
        checkpoint = {
            model = 45,
            scale = 8.0,
        },
        color = {255, 255, 255, 100},
        blips = {
            enabled = true,
            sprite = 271,
            colour = 4,
            scale = 0.6,
        },
        prop = {
            enabled = true,
            model = "prop_offroad_tyres02",
            offsetDistance = 4.0,
            alpha = 255,
            solo = false,
            collision = false,
        },
        particles = nil
    },

    -- Checkpoint atual durante corrida
    racing = {
        checkpoint = {
            model = 18,
            offset = vector3(0.0, 0.0, 6.0),
        },
        color = {255, 255, 255, 100},
        blips = {
            enabled = true,
            sprite = 271,
            colour = 4,
            scale = 0.6,
        },
        prop = {
            enabled = true,
            model = "prop_offroad_tyres02",
            offsetDistance = 4.0,
            alpha = 255,
            solo = false,
            collision = false,
        },
    },

    -- Próximo checkpoint (semi-transparente)
    racing_next = {
        checkpoint = {
            model = 20,
            offset = vector3(0.0, 0.0, 6.0),
        },
        color = {255, 255, 255, 20},
        blips = {
            enabled = true,
            sprite = 270,
            scale = 0.5,
            colour = 4,
        },
        prop = {
            enabled = true,
            model = "prop_offroad_tyres02",
            offsetDistance = 4.0,
            alpha = 180,
            solo = false,
            collision = false,
        },
    },

    -- Linha de chegada (verde)
    racing_last = {
        checkpoint = {
            model = 21,
            offset = vector3(0.0, 0.0, 6.0),
        },
        color = {0, 250, 0, 100},
        blips = {
            enabled = true,
            sprite = 315,
            colour = 2,
            scale = 0.8,
        },
        prop = {
            enabled = true,
            model = "prop_offroad_tyres02",
            offsetDistance = 4.0,
            alpha = 255,
            solo = false,
            collision = false,
        },
    },
}
```
