Adictos_WebLogs incluye un módulo de ScreenRecord integrado: captura la pantalla del cliente vía NUI (WebGL/MediaRecorder), envía el vídeo al servidor y lo sube a Discord mediante el proxy del panel. Ideal para anticheat, reportes de staff o evidencias en logs.
Requisitos
- Categoría
screenrecord(o la definida enConfig.ScreenRecord.DiscordCategory) con webhook en Mis servidores → Categorías. Config.WebsiteURLcorrecta (el servidor sube el vídeo víascreenrecord-upload.php).
Export recordPlayerScreen
Graba un vídeo WebM de la pantalla del jugador y devuelve la URL de Discord en el callback:
exports['Adictos_WebLogs']:recordPlayerScreen(source, durationMs, function(success, urlOrError)
if success then
print('Video subido: ' .. urlOrError)
-- urlOrError = URL del attachment en Discord
else
print('Error: ' .. tostring(urlOrError))
end
end, 'Motivo de la grabación')
-- durationMs: por defecto Config.ScreenRecord.DefaultDuration (10000)
-- Máximo: Config.ScreenRecord.MaxDuration (30000)Export capturePlayerSnapshot
Captura una imagen JPEG instantánea (más ligera que un vídeo):
exports['Adictos_WebLogs']:capturePlayerSnapshot(source, function(success, urlOrError)
if success then
print('Snapshot: ' .. urlOrError)
end
end, 'Evidencia anticheat')Otros exports útiles
| Export | Uso |
|---|---|
stopPlayerRecording(src) | Detiene una grabación en curso |
isPlayerBeingRecorded(src) | Devuelve si el jugador está siendo grabado |
spectatePlayer(adminSrc, targetSrc) | Spectate en vivo (relay al panel web) |
stopSpectating(adminSrc) | Detiene el spectate |
Comandos de consola / staff
/record <player_id> [duracion_seg] [motivo]
/spectate <admin_id> <target_id>
/spectate <admin_id> stopUso en logs
Si al registrar un log incluyes el campo video (duración en milisegundos) junto con server_id del jugador, WebLogs graba automáticamente su pantalla antes de enviar el log al panel. No hace falta llamar a recordPlayerScreen aparte.
exports['Adictos_WebLogs']:Log('anticheat', 'detection', {
license = licenseClean,
playerName = name,
server_id = source, -- obligatorio para saber a quién grabar
video = 10000, -- duración en ms (10 segundos)
reason = 'Noclip detectado',
}, true)El flujo interno es el siguiente:
- 1WebLogs detecta
videoy lanza la grabación del jugador indicado enserver_id. - 2El cliente captura la pantalla y envía el vídeo al servidor FiveM.
- 3FiveM lo sube a Discord mediante el webhook de la categoría
screenrecord(proxy del panel:screenrecord-upload.php). - 4Discord devuelve la URL del archivo adjunto (CDN de Discord).
- 5Esa URL se guarda en
video_urly el log se envía al panel con el enlace al vídeo.
screenrecord activa con un webhook de Discord configurado en Mis servidores → Categorías. El vídeo se almacena en Discord, no en el panel: el panel solo guarda el enlace (video_url) para reproducirlo desde el log.Configuración
Ajusta resolución, FPS, duración máxima y calidad en config.lua → Config.ScreenRecord. El cliente usa client/config_client.lua solo para ajustes visuales del spectate.
[ScreenRecord]) y que el webhook de la categoría esté configurado.