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

# safezone

> Zonas seguras (safe zones) onde dano, PvP e armas são desativados. Totalmente client-side.

O **safezone** cria áreas poligonais onde o jogador fica invencível e em modo "fantasma" (ghost), com PvP bloqueado. A detecção é feita no cliente comparando a posição com os polígonos. Ao entrar, o estado `LocalPlayer.state.Safezone` é definido (replicado) e os efeitos aplicados; ao sair, são revertidos.

## Funcionalidades

Dentro de uma safezone, os seguintes efeitos são aplicados:

<CardGroup cols={2}>
  <Card title="Invencibilidade" icon="shield">
    `SetEntityInvincible(Ped, true)` torna o jogador imune a dano enquanto estiver na zona.
  </Card>

  <Card title="Modo Fantasma" icon="ghost">
    `SetLocalPlayerAsGhost(true)` remove a colisão com outros players.
  </Card>

  <Card title="Fogo Amigo Desligado" icon="ban">
    `NetworkSetFriendlyFireOption(false)` desativa o fogo amigo.
  </Card>

  <Card title="Disparo Bloqueado" icon="gun">
    `DisablePlayerFiring` + controles de ataque/mira desativados.
  </Card>

  <Card title="Remoção de Armas" icon="hand-fist">
    Se armado ao entrar, dispara `inventory:CleanWeapons`.
  </Card>

  <Card title="Veículos em Ghost" icon="car">
    `SetNetworkVehicleAsGhost(Vehicle, true)`, revertido ao sair.
  </Card>
</CardGroup>

***

## Dependências

<CardGroup cols={3}>
  <Card title="PolyZone" icon="draw-polygon">Zonas poligonais.</Card>
  <Card title="vrp" icon="cubes">Framework base.</Card>
  <Card title="inventory" icon="boxes-stacked">`inventory:CleanWeapons`.</Card>
</CardGroup>

***

## Configuração

Este recurso não possui pasta `config/`. As zonas ficam na tabela `SafeZones` em `client-side/core.lua`, cada uma criada via `PolyZone:Create(pontos, opções)`:

| Parâmetro       | Descrição                                    |
| --------------- | -------------------------------------------- |
| pontos          | `{ vec2(x,y), ... }` (vértices do polígono). |
| `name`          | Nome/identificador da zona.                  |
| `minZ` / `maxZ` | Altura mínima/máxima (opcional).             |

<Info>
  Zonas atuais: `"1"` (urbana, sem limite de Z) e `"Banned"` (`minZ = 8.99`, `maxZ = 33.99`).
</Info>

***

## Eventos

Este recurso não registra eventos próprios. Apenas dispara `inventory:CleanWeapons` (do `inventory`) para limpar as armas ao entrar armado na zona.

***

## Customização

* **Statebag `Safezone`:** índice da zona quando dentro, `false` quando fora (replicado). Outros recursos podem lê-lo.
* **Adicionar zonas:** novas chamadas `PolyZone:Create` na tabela `SafeZones`.
* **Loop de detecção:** a cada `1000ms`.
