Denver Studio - Docs

Gestão de jogador

Buscar um jogador pelo passaporte e ver identidade, veículos, inventário e casas direto do servidor de jogo

Gestão de jogador

A página Jogador do painel permite buscar um jogador pelo passaporte (ID do vRP) e ver, direto do banco do servidor de jogo:

  • Identidade — nome, sobrenome, idade, telefone, registro e último login
  • Veículos — modelo, placa, combustível e status (apreendido)
  • Inventário — itens com nome de exibição e quantidade
  • Casas — nome, prédio e apartamento

Diferente do resto do FiveTrack (que recebe push de métricas a cada IntervalSec), a busca de jogador lê os dados ao vivo, sob demanda. Para isso, o painel faz uma requisição HTTP autenticada ao resource fivetrack rodando no seu servidor de jogo.

Como funciona

Painel (Configurações → Servidores)        Servidor de jogo
   └─ agentUrl + agentSecret                   └─ server/agent.lua (SetHttpHandler)
                                                   └─ Config.AgentSecret / AgentAllowedIp

   Painel/API  ──POST /fivetrack/agent──▶  agent.lua  ──oxmysql──▶  banco do jogo
       (Authorization: Bearer <segredo>)        valida segredo + IP
                                                 lê identidade/veículos/inventário/casas
   ◀────────────── JSON ──────────────────  responde

O agent.lua é somente leitura nesta versão. Toda query usa parâmetros (?) — sem concatenação de input — e é envolta em pcall, então uma tabela ausente (ex.: sem sistema de casas) nunca derruba o servidor.

Pré-requisito de rede

A API do FiveTrack precisa alcançar a porta HTTP do seu servidor de jogo (a mesma porta TCP do FiveM, normalmente 30120).

Jogadores conseguirem entrar não garante que a porta HTTP esteja acessível de fora. O jogo usa principalmente UDP; a parte HTTP é TCP e pode estar filtrada pelo firewall do host, ou os jogadores entram pelo proxy do cfx.re. Alguns hosts expõem o agente num IP/porta diferente do IP de gerência. Confirme qual endpoint TCP responde HTTP de fora.

Teste de fora (de qualquer máquina) se o endpoint responde:

curl -s -o /dev/null -w '%{http_code}\n' http://SEU_IP:30120/info.json
# 200 = alcançável · "Connection refused"/timeout = firewall ou porta fechada

Configuração

Gere o segredo

openssl rand -hex 32

No servidor de jogo (fivetrack/config.lua)

Config.AgentSecret    = 'cole_o_segredo_aqui'
Config.AgentAllowedIp = ''  -- opcional: IP de saída da API do FiveTrack

O server/agent.lua já vem registrado no fxmanifest.lua. Dê refresh e restart fivetrack (ou suba o servidor) para carregar.

No painel (Configurações → Servidores → editar servidor → Agente)

  • URL do agente: http://SEU_IP:30120/fivetrack/agent
  • Segredo: o mesmo valor do Config.AgentSecret

Salve.

Teste

Abra Jogador no menu do servidor, digite um passaporte e busque. Na página de um grupo, clicar no nome de um membro também leva direto pra busca dele.

Segurança

  • Apenas OWNER/ADMIN do workspace podem buscar jogadores.
  • O segredo é guardado criptografado (AES-256-GCM) no painel e nunca é devolvido ao navegador.
  • O agent.lua valida o Bearer com comparação de tempo constante, recusa segredo vazio e, se AgentAllowedIp estiver setado, só aceita aquele IP.
  • Toda busca é registrada na Auditoria do painel.

Solução de problemas

MensagemCausa provávelO que fazer
Não foi possível alcançar o servidor de jogoFirewall/porta fechada, IP errado, ou resource paradoTeste curl http://IP:30120/info.json de fora; confirme o IP/porta; veja se o fivetrack está started
O servidor recusou a autenticaçãoSegredo do painel ≠ Config.AgentSecret, ou AgentAllowedIp bloqueandoGaranta o mesmo segredo nos dois lados; confira o IP de saída da API
Agente não configuradoFalta a URL e/ou o segredo no painelPreencha em Configurações → Servidores
Nenhum jogador encontradoPassaporte não existe nesse servidorConfira o ID do vRP

Se a porta TCP do seu host não pode ser aberta de jeito nenhum (host gerenciado/proxy de jogo), fale com a equipe FiveTrack — existe um modo alternativo por fila de comandos (poll) que usa apenas tráfego de saída, igual ao push de métricas.