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

# halloween

> Evento sazonal "Doces ou Travessuras": espalha abóboras pelo mapa que, ao serem abertas, entregam loot aleatório (itens de Halloween, essências e dinheiro).

O **halloween** é um evento sazonal de "Doces ou Travessuras". Ao iniciar, o servidor monta um baú (container vRP) em cada um dos \~280 pontos de `Locations`, com loot sorteado de `Loots`. No cliente, ao se aproximar de um ponto ativo, surge um prop de abóbora (`tfx-summer_abroba`) com `ox_target` "Abrir" e blip de raio. Abrir dispara o sistema de baú; quando o estoque global zera, o evento encerra.

O estado é controlado por GlobalState:

| GlobalState                        | Tipo | Função                                   |
| ---------------------------------- | ---- | ---------------------------------------- |
| `GlobalState.Halloween`            | bool | Liga/desliga o evento.                   |
| `GlobalState.Hallobox`             | int  | Caixas restantes; `0` encerra o evento.  |
| `GlobalState["Halloween:<Index>"]` | bool | Se aquela abóbora específica está ativa. |

***

## Dependências

<CardGroup cols={2} />

<Info>
  O recurso **core\_logs** é opcional.
</Info>

***

## Configuração

<AccordionGroup>
  <Accordion title="shared-side/shared.lua — Locations e Loots" icon="sliders">
    * `Locations`: lista de `vec4` com todos os pontos de spawn.
    * `Loots`: loot de cada abóbora: `Item`, `Chance` (%), `Min`, `Max`. No início cada container recebe multiplicador aleatório `random(1,2)`.

    Loot padrão: `halloween_pumpkin`/`halloween_ghost` (1%), essências `blue`(75%)/`purple`(45%)/`green`(25%)/`red`(15%)/`pink`(5%), `dollar` (100%, 725–975).
  </Accordion>
</AccordionGroup>

***

## Comandos

| Comando      | Permissão     | Descrição                                                                                       |
| ------------ | ------------- | ----------------------------------------------------------------------------------------------- |
| `/halloween` | Admin nível 2 | Alterna o evento. Liga: monta containers e notifica todos; desliga: zera caixas e remove dados. |

***

## Eventos

Este recurso não registra eventos próprios (`RegisterNetEvent`/`AddEventHandler`/`RegisterServerEvent`/NUI). Ele apenas dispara eventos de outros recursos e reage a GlobalState via `AddStateBagChangeHandler`.

| Evento                                      | Lado     | Descrição                                                                       |
| ------------------------------------------- | -------- | ------------------------------------------------------------------------------- |
| `Notify`                                    | Servidor | Dispara notificação para todos (início/fim do evento) via `TriggerClientEvent`. |
| `chest:Open("Halloween:<Index>", "Custom")` | Cliente  | Abre o baú da abóbora ao usar o target.                                         |
| `inventory:Closed`                          | Cliente  | Sinaliza o fechamento do inventário/baú.                                        |
| `Hallobox` (StateBag)                       | Servidor | Quando ≤0, limpa os dados e encerra o evento.                                   |
| `Halloween:<Index>` (StateBag)              | Cliente  | Cria/remove o blip, prop e target da abóbora.                                   |

***

## Customização

* **Pontos:** tabela `Locations`.
* **Recompensas:** tabela `Loots`.
* **Modelo:** `tfx-summer_abroba` (`client-side/core.lua`).
* **Permissão:** `vRP.HasGroup(Passport,"Admin",2)`.
* **Blip** (raio 25.0, cor 81) e tamanho do target (`0.75x0.75x2.0`): `client-side/core.lua`.
