Denver Studio - Docs

Configuração

Detalhamento completo do config.lua

Configuração

Todas as opções ficam em fivetrack/config.lua. Este arquivo é editado pela equipe FiveTrack antes da entrega, mas você pode ajustar os mapeamentos de organizações depois.

Visão geral

Config = {}

Config.ApiKey               = 'fvt_xxxxxxxxxxxxxxxxxxxxxxxxxx'
Config.CfxId                = 'abc123'
Config.Adapter              = 'creative-enchanted'
Config.IntervalSec          = 60

Config.LegalOrganizations   = { ['Police'] = 'Polícia' }
Config.IllegalOrganizations = { ['Cartel'] = 'Cartel' }
Config.StaffRoles           = { ['Admin']  = 'Admin' }

Config.ApiKey

Config.ApiKey = 'fvt_QhnGhib-0wpBvR3bnsiHCuTuq8424yEb'

Obrigatório. Chave de autenticação do tenant, gerada no painel FiveTrack.

Formato: fvt_ + 32 caracteres base64url.

A API key é equivalente a uma senha. Nunca compartilhe em prints, repositórios públicos ou Discord. Se vazar, peça uma rotação imediata à equipe FiveTrack.

Se o valor for vazio ou 'SUA_CHAVE_AQUI', o script não envia nada ao backend (modo seguro pra desenvolvimento).


Config.CfxId

Config.CfxId = 'z6m6p5'

Obrigatório. Identificador do seu servidor no FiveM, visível na URL pública:

https://servers.fivem.net/servers/detail/z6m6p5
                                       ^^^^^^^

É usado pelo backend para casar os dados deste script com o servidor cadastrado no painel.


Config.Adapter

Config.Adapter = 'creative-enchanted'

Obrigatório. Define como o FiveTrack lê dados do seu framework vRP. Cada adapter está em server/adapters/<nome>.lua.

Built-in:

AdapterQuando usar
vrpexvRP base padrão (Lotus, vRP-EX)
nexus-basevRP do Nexus
creative-enchantedvRP creative-enchanted (Horizonte) com BaseMode = "steam"
creative-enchanted-licensevRP creative-enchanted com BaseMode = "license" (ex: Neon)
standaloneSem framework (não conta jobs/grupos)

Veja Adapters para diferenças e como criar o seu.

Adapter errado = contagens zeradas. Se o seu Global.lua define BaseMode = "license", você precisa do adapter creative-enchanted-license, não do creative-enchanted. O sintoma típico é tudo zerado em Legal/Ilegal/Staff mesmo com jogadores online com permissão.


Config.IntervalSec

Config.IntervalSec = 60

Intervalo (em segundos) entre cada push do push_metrics.lua para o backend. Padrão 60s.

Valores recomendados:

  • 30s — servidor pequeno (até 100 players), gráficos mais finos
  • 60s — padrão, balance entre granularidade e load
  • 120s — servidor muito grande, reduz network/DB

Outros coletores têm intervalos próprios e não usam este valor (veja Coletores).


Config.LegalOrganizations

Config.LegalOrganizations = {
    ['Police']    = 'Polícia',
    ['Paramedic'] = 'Paramédico',
    ['Mechanic']  = 'Mecânica',
}

Mapa de permissão → nome de exibição das organizações consideradas "legais". A chave é o nome exato da permissão como armazenada no vRP (em entitydata table como Permissions:<chave>).

A página Legal & Ilegal do painel mostra:

  • Total de jogadores online em qualquer permissão legal
  • Distribuição percentual por organização (snapshot a cada IntervalSec)
  • Histórico ao longo do tempo

Config.IllegalOrganizations

Config.IllegalOrganizations = {
    ['Drogas']      = 'Drogas',
    ['Contrabando'] = 'Contrabando',
}

Mesmo formato do anterior, mas para grupos ilegais (drogas, lavagem, contrabando, facções).

Carregamento dinâmico: se você usa revoada_newfacs para criar facções, o config.lua já vem com um thread que lê exports['revoada_newfacs']:GetListOrgs() e adiciona automaticamente cada facção ao mapa. Veja o final do config.lua.


Config.StaffRoles

Config.StaffRoles = {
    ['Admin']     = 'Admin',
    ['Moderador'] = 'Moderador',
    ['Suporte']   = 'Suporte',
}

Permissões consideradas staff. A página Staff do painel usa isto para:

  • Listar atendentes online em tempo real
  • Atribuir tickets atendidos ao staff member correto
  • Calcular SLA por atendente
  • Detectar burnout

A chave continua sendo o nome da permissão no vRP.


Config.AgentSecret

Config.AgentSecret = '0a1b2c3d...'  -- 64 caracteres aleatórios

Segredo compartilhado do agente de gestão de jogador (página Jogador do painel). O painel envia este valor no header Authorization: Bearer <segredo> ao chamar o servidor de jogo; o resource só responde se bater.

  • Gere um valor longo e aleatório (ex.: openssl rand -hex 32).
  • Cole o mesmo valor no painel em Configurações → Servidores → editar servidor → Agente.
  • Deixe vazio para manter o agente desativado (o endpoint recusa todas as requisições).

O agente lê dados sensíveis do banco do jogo (identidade, veículos, inventário, casas). Trate o AgentSecret como senha. Se vazar, troque o valor nos dois lados.

Veja Gestão de jogador para o passo a passo completo.


Config.AgentAllowedIp

Config.AgentAllowedIp = '23.92.210.203'

Opcional. Se preenchido, o agente só aceita requisições deste IP (o IP de saída da API do FiveTrack). Defesa em profundidade além do segredo.

Deixe vazio para não restringir por IP (a autenticação por segredo continua valendo).