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

# vehcontrol

> Controle de sirenes para veículos de emergência (classe 18): sirenes eletrônicas (lightbar), buzina manual/air horn e sincronização entre jogadores via statebags.

O **vehcontrol** é um recurso **client-side** que gerencia sirenes de veículos de emergência. Funciona só para o motorista (assento -1) de veículos de classe 18, com duas camadas de som e sincronização entre jogadores via statebags.

## Funcionalidades

<CardGroup cols={2}>
  <Card title="Sirene eletrônica (Lx)" icon="tower-broadcast">
    4 estados: off, SIREN\_1, SIREN\_2 e POLICE\_WARNING.
  </Card>

  <Card title="Buzina / air horn" icon="bullhorn">
    4 estados, acionada segurando os controles.
  </Card>

  <Card title="Apenas o motorista" icon="user-tie">
    Funciona só para o assento -1 de veículos de classe 18.
  </Card>

  <Card title="Sincronização por statebag" icon="arrows-rotate">
    Estado `Sirens` da entidade replicado nos clientes próximos.
  </Card>
</CardGroup>

<Info>
  Dentro do veículo de emergência, desabilita controles nativos para reassociá-los à sirene e desliga o rádio do veículo.
</Info>

***

## Dependências

<CardGroup cols={2}>
  <Card title="vrp" icon="server">
    `@vrp/lib/Utils.lua`
  </Card>

  <Card title="PolyZone" icon="draw-polygon">
    Zonas de detecção
  </Card>
</CardGroup>

***

## Comandos

Ações por tecla (controles nativos), não comandos de chat:

| Controle             | Ação                                  |
| -------------------- | ------------------------------------- |
| 85 (ou 246)          | Liga/desliga a sirene nativa          |
| 19 (ou 82)           | Liga/desliga a sirene eletrônica (Lx) |
| 80 (ou 81): curto    | Avança o estado da sirene Lx          |
| 80 (ou 81): segurado | Air horn manual                       |
| 86: segurado         | Buzina                                |

<Note>Bloqueado com o menu de pausa aberto.</Note>

***

## Eventos

Este recurso não registra eventos próprios (`RegisterNetEvent`, `AddEventHandler`, callbacks NUI ou Tunnel). A sincronização entre jogadores é feita por **statebag** `Sirens` da entidade (`{ LxSirenState, AirSirenState }`, throttle de 1000ms), lido por `AddStateBagChangeHandler` para reaplicar os sons nos clientes próximos.

<Note>Recurso 100% client-side (2 arquivos): sem config, sem server, sem exports, sem banco. Implementa apenas sirenes (apesar do nome sugerir mais).</Note>
