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

# FiveM e RedM

> Entrega automática de produtos comprados na loja.gg dentro do seu servidor FiveM ou RedM.

Quando alguém compra um item, VIP ou pacote de dinheiro na sua loja, alguma coisa precisa acontecer dentro do servidor — dar o item, aplicar o VIP, rodar um comando. A loja.gg resolve isso com um resource oficial pronto: você instala, configura um token pelo painel e a entrega roda sozinha.

<Info>
  Não há uma API externa de gerenciamento de loja para integrações próprias — quem quiser automatizar a entrega usa o resource oficial abaixo. A única API pública da loja.gg é a [storefront headless](/api-reference/storefront-headless), para quem quer montar a própria vitrine.
</Info>

## O resource oficial: `lojagg_script`

É um resource FiveM/RedM (suporta `gta5` e `rdr3`) publicado pela loja.gg. Ele se registra no servidor, manda heartbeat e fica ouvindo comandos para executar — sem você escrever nenhuma lógica de entrega.

<Steps>
  <Step title="Gere um token de servidor no painel">
    Em **Loja → Integrações → FiveM/RedM**, gere um token para o seu servidor. Ele identifica qual loja e qual servidor estão conectados.
  </Step>

  <Step title="Instale o resource">
    Baixe o resource `lojagg_script` e coloque na pasta `resources/` do seu servidor.
  </Step>

  <Step title="Configure o token">
    Defina o convar antes de iniciar o resource, no `server.cfg`:

    ```cfg theme={null}
    setr sv_lojagg_token "SEU_TOKEN_AQUI"
    ensure lojagg_script
    ```
  </Step>

  <Step title="Mapeie produtos para comandos">
    No painel, associe cada produto a um comando de console do seu servidor — por exemplo, `give {player_id} vip 30` ou um comando exportado pelo seu framework (ESX/QBCore/vRP). Use os placeholders `{player_id}` e `{player_name}` quando o seu comando aceitar.
  </Step>
</Steps>

<Info>
  O `fxmanifest.lua` do resource declara suporte a `games { 'gta5', 'rdr3' }` — o mesmo resource funciona em servidores FiveM e RedM.
</Info>

### Como funciona por baixo

O resource conversa com o backend da loja.gg em três passos, de forma automática — nada disso é uma API que você chama, é o próprio resource fazendo a integração:

| Etapa         | O que acontece                                                                                                                                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Registro**  | Ao iniciar, o resource registra o servidor (token + porta). Só um servidor pode estar ativo por token ao mesmo tempo.                                                                                                     |
| **Heartbeat** | A cada \~55 segundos, o resource avisa que segue online. Se parar de mandar heartbeat, o servidor é considerado offline no painel.                                                                                        |
| **Comandos**  | O resource fica em long polling aguardando comandos pendentes (gerados quando um pedido é pago). Cada comando recebido é executado via console (`ExecuteCommand`) e confirmado de volta para a loja.gg — sucesso ou erro. |

<Warning>
  O comando executado no servidor é exatamente o que foi configurado no painel para aquele produto. Teste o comando manualmente no console do seu servidor antes de vincular ao produto — se o comando falhar silenciosamente (ex.: sintaxe errada do framework), a entrega será marcada como erro, mas o jogador não recebe nada.
</Warning>

### Apenas um servidor por token

Se você tentar iniciar o mesmo token em dois servidores ao mesmo tempo, o segundo registro é recusado — evita que uma mesma fila de comandos seja disputada por dois processos.

### Token vazado?

Revogue e gere um novo token em **Loja → Integrações → FiveM/RedM** e atualize o `server.cfg`. Assim como qualquer credencial de servidor, o token nunca deve ir para o `client_script` nem aparecer em logs públicos.
