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 ────────────────── respondeO 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 fechadaConfiguração
Gere o segredo
openssl rand -hex 32No servidor de jogo (fivetrack/config.lua)
Config.AgentSecret = 'cole_o_segredo_aqui'
Config.AgentAllowedIp = '' -- opcional: IP de saída da API do FiveTrackO 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.luavalida oBearercom comparação de tempo constante, recusa segredo vazio e, seAgentAllowedIpestiver setado, só aceita aquele IP. - Toda busca é registrada na Auditoria do painel.
Solução de problemas
| Mensagem | Causa provável | O que fazer |
|---|---|---|
| Não foi possível alcançar o servidor de jogo | Firewall/porta fechada, IP errado, ou resource parado | Teste curl http://IP:30120/info.json de fora; confirme o IP/porta; veja se o fivetrack está started |
| O servidor recusou a autenticação | Segredo do painel ≠ Config.AgentSecret, ou AgentAllowedIp bloqueando | Garanta o mesmo segredo nos dois lados; confira o IP de saída da API |
| Agente não configurado | Falta a URL e/ou o segredo no painel | Preencha em Configurações → Servidores |
| Nenhum jogador encontrado | Passaporte não existe nesse servidor | Confira 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.