Esta página lista tudo o que o recurso fivedash oferece para os scripts da cidade e para o console do servidor. A lista é curta de propósito: um export para logs, um evento equivalente e um comando de console. O resto (whitelist, loja) acontece sozinho, pelo painel. É para quem desenvolve scripts.
A Chave do log no FiveDash (Logs → o log → Como mandar). É convertida para minúsculas. Precisa ter de 2 a 32 caracteres: letras minúsculas, números, - e _, começando por letra ou número
dados
table ou string
O conteúdo do log. Uma string vira a message
Retorno:true quando o log entrou na fila de envio; false quando foi ignorado.
O export só confere a tabela e põe na fila: não faz rede nem consulta o banco. Pode chamar em cidade cheia sem medo, mas nunca dentro de loops por frame.
Cada jogador (em player ou dentro de players) pode ser:
Forma
Exemplo
Quando usar
Número (source)
player = source
O jogador está na cidade
Tabela com source
{ source = alvo, label = "Vítima" }
Na cidade, com um rótulo
Tabela com id
{ id = "1234", name = "João Silva", label = "Vítima" }
Fora da cidade (o id é o passaporte; passport e passaporte também valem)
Para um jogador na cidade, o recurso preenche: o passaporte (o ID do personagem da framework), o nome do personagem, o source e os identificadores listados em Identifiers no logs.lua (padrão license e discord). Sem personagem escolhido ainda, vai o nome do FiveM. O label tem até 40 caracteres.
-- Lista de pares, na ordem (recomendado)fields = { { "Arma", "WEAPON_PISTOL" }, { "Distância", 12.5 } }-- Com nome e valor, e inlinefields = { { name = "Arma", value = "WEAPON_PISTOL", inline = true } }-- Par com inline como terceiro valorfields = { { "Arma", "WEAPON_PISTOL", true } }-- Tabela chave = valor (a ordem não é garantida)fields = { Arma = "WEAPON_PISTOL", Distancia = 12.5 }
Valores podem ser texto, número ou booleano (booleano vira Sim / Não, no idioma da cidade). Tabelas viram JSON.
exports.fivedash:log("admin", "Restart programado em 5 minutos")
Com um print:
lua
exports.fivedash:log("denuncias", { title = "Denúncia com print", player = source, message = "Jogador reportou um bug no mapa", image = "https://cdn.fivex.sh/cidade-exemplo/prints/print-0001.webp",})
Crie uma função no topo do arquivo e use ela em todos os pontos. Assim o script não quebra se o fivedash estiver parado:
lua
local function fivedashLog(data) if GetResourceState("fivedash") ~= "started" then return end exports.fivedash:log("mortes", data)endfivedashLog({ title = "Morte registrada", player = source })
O export não existe no cliente, e os jogadores não conseguem mandar logs. Se a ação acontece no cliente, mande para um evento de servidor do seu script e chame o export lá. Use o source do evento para saber quem é o jogador: nunca confie num ID ou nome vindo do cliente.
O mesmo que o export, para scripts que preferem eventos. É um evento local do servidor: dispare com TriggerEvent num script de servidor. TriggerServerEvent do cliente não chega nele.
lua
TriggerEvent("fivedash:log", "mortes", { title = "Morte registrada", player = source, fields = { { "Arma", arma } },})
Os parâmetros e regras são os mesmos do export. O evento não devolve nada.
Na QBCore, no Qbox, no ESX, no ox_core e no vRP, o recurso acompanha qual personagem cada jogador está usando e emite um evento local de servidor quando o personagem carrega:
Framework
Evento
Argumentos
QBCore
fivedash:qbcore:loaded
characterId (Citizen ID), source
Qbox
fivedash:qbox:loaded
characterId (Citizen ID), source
ESX
fivedash:esx:loaded
characterId (users.id), source
ox_core
fivedash:ox-core:loaded
characterId (State ID), source
vRP
fivedash:vrp:loaded
characterId (ID da conta), source
Na Creative, a loja usa o próprio CharacterChosen da base, e esse evento não existe.
Quando uma compra chega (Notify = true no loja.lua) ou é anunciada (Announce = true), o recurso dispara o evento de cliente de aviso da framework. Se a sua cidade troca o sistema de notificação, garanta que esse evento continue funcionando:
Framework
Evento de cliente
Creative Network Enchanted
Notify (título, mensagem, "verde" ou "default", 10000)
O export retornou true, mas o log não apareceu.
Confira se existe um log com essa Chave no painel. Logs com chave desconhecida esperam na fila até o log ser criado. Rode fivedash logs para ver a fila e o último erro.
Posso chamar o export num loop?
Evite. Um log por acontecimento. O recurso já junta os logs e manda em lotes, mas loops por frame enchem a fila (até 20.000 logs, depois os mais antigos saem).
Funciona com scripts em JavaScript ou C#?
Sim. Exports do FiveM funcionam entre linguagens: em JS, exports.fivedash.log("mortes", { title: "…" }).