feat: add controlled FiveM test telemetry

This commit is contained in:
2026-07-27 01:21:45 +03:00
parent 396d9f8b44
commit cab673238a
6 changed files with 101 additions and 0 deletions
@@ -0,0 +1,44 @@
local lastReportAt = {}
local function emitTelemetry(eventName, payload)
local event = {
protocol_version = Config.ProtocolVersion,
source = "rv-ai-test-tools",
event = eventName,
timestamp_ms = os.time() * 1000,
payload = payload or {},
}
print(("[AI_TEST_TELEMETRY] %s"):format(json.encode(event)))
end
AddEventHandler("onResourceStart", function(resourceName)
if resourceName == GetCurrentResourceName() then
emitTelemetry("resource_started", {
resource_state = GetResourceState(resourceName),
})
end
end)
RegisterNetEvent("rv-ai-test-tools:server:clientState", function(payload)
local sourceId = source
local now = GetGameTimer()
local previous = lastReportAt[sourceId] or 0
if now - previous < Config.MinimumReportIntervalMs then
return
end
lastReportAt[sourceId] = now
payload = type(payload) == "table" and payload or {}
emitTelemetry("client_state", {
client_id = sourceId,
reason = tostring(payload.reason or "unknown"):sub(1, 80),
resource_state = tostring(payload.resource_state or "unknown"):sub(1, 40),
})
end)
AddEventHandler("playerDropped", function()
lastReportAt[source] = nil
end)