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

# five-c4

> Roubo a caixas eletrônicos (ATMs) usando C4 explosivo ou pé de cabra, com chamado automático para a polícia, coleta de dinheiro sujo no chão e cooldown por caixa.

O **five-c4** permite roubar ATMs de duas formas (detectadas pelos itens do jogador). Após o roubo, props de dinheiro são espalhados ao redor e o jogador coleta manualmente (cada coleta dá `dirtydollar`). A interação é via `ox_target` nos ATMs (opções "Roubar" e "Abrir" → [five-bank](/base-five/recursos/five-bank)). Bloqueado para policiais em serviço.

## Funcionalidades

<CardGroup cols={2}>
  <Card title="C4 explosivo" icon="bomb">
    Com o item `c4`: planta o explosivo, contagem regressiva e o caixa explode.
  </Card>

  <Card title="Pé de cabra" icon="screwdriver-wrench">
    Com o item `crowbar`: arromba o caixa sem explosão.
  </Card>

  <Card title="Chamado à polícia" icon="walkie-talkie">
    Chamado automático (`CallPolice`) com nível de procurado por modo de roubo.
  </Card>

  <Card title="Coleta de dinheiro sujo" icon="money-bill-wave">
    Props de dinheiro espalhados ao redor; cada coleta entrega `dirtydollar`.
  </Card>
</CardGroup>

***

## Dependências

<CardGroup cols={2}>
  <Card title="vrp" icon="layer-group">
    Framework base (`exports["vrp"]:CallPolice`).
  </Card>

  <Card title="ox_target" icon="bullseye">
    Interação nos ATMs.
  </Card>

  <Card title="five-bank" icon="building-columns">
    Opção "Abrir" (`five-bank:open`).
  </Card>
</CardGroup>

<Info>
  Runtime (opcionais): `exports["party"]:DoesExist`, `exports["inventory"]:Buffs`, `exports["five_logs"]:AddLog`.
</Info>

***

## Configuração

Todo o ajuste fica em `shared/config.lua`.

<AccordionGroup>
  <Accordion title="shared/config.lua — Configuração completa" icon="sliders">
    ```lua theme={null}
    Config.ItemC4 = "c4"            -- ativa modo explosão
    Config.ItemLockpick = "crowbar" -- ativa modo arrombamento

    Config.AtmModels = { "prop_fleeca_atm", "prop_atm_03", "prop_atm_02", "prop_atm_01" }
    -- IMPORTANTE: só esses 4 têm offset em PROP_OFFSET (client). Novo modelo sem offset aborta o roubo.

    Config.PermittedTime = false    -- false = qualquer hora; { 22, 6 } = só das 22h às 6h

    Config.Police = {
        MinAmount = 0,              -- policiais em serviço exigidos (0 = nenhum)
        Permission = "Policia",
        CallPolice = {
            Name = "Roubo a Caixa Eletrônico", Percentage = 1000, Code = 31, Color = 22,
            C4 = { Wanted = 600 }, Lockpick = { Wanted = 300 },  -- nível de procurado por modo
        },
    }

    Config.Robbery = {
        Cooldown = 300,            -- s entre roubos do mesmo caixa
        Valuation = {
            Min = 3500, Max = 5000,
            Multipliers = {
                Party = 1.1, Dexterity = 1.1,
                Services = { Ouro = 0.1, Prata = 0.075, Bronze = 0.05 },  -- bônus VIP (+%)
            },
        },
        Pickups = { Total = 20 },   -- pacotes de dinheiro (valor por coleta = total/20)
        Lockpick = { BreakChance = 95 },  -- chance de NÃO quebrar o pé de cabra
    }

    Config.Timers = { Preparation = 5, BombCountdown = 15, PickupAnim = 1 }   -- segundos
    Config.Distances = { MarkerProximity = 30.0, Abort = 100.0, Pickup = 1.5 }
    Config.Explosion = { Type = 2, Scale = 1.0, CamShake = 2.0 }
    ```
  </Accordion>
</AccordionGroup>

***

## Comandos

Nenhum. Interação pela opção "Roubar" do `ox_target` nos ATMs.

***

## Localizações

O **five-c4** não usa coordenadas fixas. A interação é registrada por modelo de prop, não por ponto: `ox_target:addModel` é aplicado aos modelos em `Config.AtmModels` (`prop_fleeca_atm`, `prop_atm_03`, `prop_atm_02`, `prop_atm_01`), então o roubo fica disponível em qualquer caixa eletrônico desses modelos já presente no mapa do GTA. O offset de cada modelo está em `PROP_OFFSET` (client-side); os props de dinheiro são gerados dinamicamente ao redor do caixa roubado.

***

## Exports

Não publica exports próprios. Consome `CallPolice`, `party:DoesExist`, `inventory:Buffs`, `five_logs:AddLog`, `ox_target:addModel`.

***

## Banco de Dados

Nenhum. Estado em memória (`Active`, `Cooldowns`, `Exploded`, `Pickups`), perdido ao reiniciar. Itens via vRP.

***

## Customização

* **Novos ATMs:** `Config.AtmModels` **+** entrada em `PROP_OFFSET` (client). Sem o offset, não funciona.
* **Lucro:** `Config.Robbery.Valuation` e `Pickups.Total`.
* **Dificuldade:** `Lockpick.BreakChance`.
* **Ritmo:** `Config.Timers` e `Config.Distances`.
* **Pressão policial:** `Config.Police` (`MinAmount`, `Wanted`, `Code`, `Color`).
* **Horário:** `Config.PermittedTime = { inicio, fim }`.

<Note>
  Item entregue (`dirtydollar`) e prop de dinheiro estão fixos no código. Logs em `five_logs` (`ROUBO-ATM`) se ativo.
</Note>
