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

# Eventos

> Eventos do Five Pets disponíveis para integração com outros scripts.

O Five Pets registra dois comandos de console — `Pets.Command` (default `pets`) e `Pets.AdminCommand` (default `petsadm`) — para abrir os painéis. Para integrações com outros recursos, use os comandos via `ExecuteCommand` ou os eventos abaixo.

***

## Abrir o painel do jogador

A forma recomendada é executar o comando registrado pelo Five Pets.

<CodeGroup>
  ```lua Server theme={null}
  ExecuteCommand(("%s %d"):format(Pets.Command, source))
  ```

  ```lua Client theme={null}
  ExecuteCommand(Pets.Command)
  ```
</CodeGroup>

Como atalho server-side você também pode disparar a mesma mensagem usada internamente para tornar a UI visível:

```lua theme={null}
TriggerClientEvent("core-pets:nuiMessage", source, "setVisible", true)
```

<Note>
  O painel só abre depois que o evento `core-pets:authReady` foi entregue ao client (autenticação concluída e banco pronto). Antes disso, qualquer tentativa de abertura é silenciosamente ignorada.
</Note>

***

## Abrir o painel de admin

Disparado server-side após validar `Functions.hasPermission(userId, Pets.AdminPermission)`.

```lua Server theme={null}
TriggerClientEvent("core-pets:openAdmin", source)
```

Esse evento abre o painel já na aba **Admin**. Use o comando `petsadm` para o fluxo completo (com checagem de permissão).

***

## Usar uma pelúcia a partir do inventário

Use este evento client quando o jogador "usar" um item de pelúcia no inventário do seu framework. Ele alterna entre equipar e remover a pelúcia automaticamente, escolhendo a primeira posição livre quando a pelúcia tem múltiplas posições.

```lua theme={null}
TriggerEvent("core-pets:useFromInventory", "pikachu")
```

| Parâmetro | Tipo     | Descrição                                |
| --------- | -------- | ---------------------------------------- |
| `itemKey` | `string` | Chave da pelúcia no `config/catalog.lua` |

***

## Sinal de autenticação pronta

Disparado pelo server para todos os clients (e individualmente para quem entra) assim que o token de licença é validado **e** o banco está pronto. Use-o se outro recurso depender de saber que o Five Pets já está operacional.

```lua Client theme={null}
RegisterNetEvent("core-pets:authReady", function()
    -- Five Pets pronto para receber comandos / exports
end)
```

***

## Exemplo de integração

Aplica bônus de valor e concede XP ao jogador ao concluir uma rota de coleta.

```lua theme={null}
-- server-side, em outro script
local corePets = exports["core-pets"]

RegisterNetEvent("minhaRota:concluir", function(rotaId)
    local src       = source
    local passport  = Functions.getUserId(src)
    local baseValue = 5000

    -- Aplica bônus de CollectRoute (detecta automaticamente o tipo do benefício)
    local finalValue = corePets:Apply(passport, "CollectRoute", baseValue)

    -- Concede XP nos pets equipados que possuem o benefício CollectRoute
    corePets:GrantXP(passport, "CollectRoute")

    giveMoney(passport, finalValue)
end)
```
