Los tramposos abusan de los eventos de red para darse dinero, spawnear vehículos y conseguir objetos. Así funcionan los exploits de trigger en FiveM, por qué son tan difíciles de auditar a mano y cómo el Trigger Finder de ZeroTrust mapea y marca toda tu superficie de ataque de eventos.
Si llevas tiempo administrando un servidor FiveM, conoces este problema: un jugador con un menú de trampas se da dinero, spawnea vehículos o llena su inventario de objetos, sin tocar nunca la interfaz prevista. No está rompiendo el motor del juego; está llamando directamente a los eventos de red de tu servidor.
Es la forma más común en que se explotan los servidores FiveM, y "asegura tus eventos" es el consejo habitual. El problema es que ese consejo asume que ya sabes qué eventos están expuestos. En un servidor con decenas de recursos, casi nadie lo sabe. Este artículo explica cómo funcionan los exploits de trigger, por qué cuesta tanto corregirlos a mano y cómo convertimos todo el problema en una herramienta: Trigger Finder.
En FiveM, los scripts se comunican a través de la frontera cliente-servidor mediante eventos de red. Un cliente llama a TriggerServerEvent y el servidor ejecuta el handler registrado para ese nombre de evento. Así funciona el juego legítimo, y exactamente de eso abusa una trampa.
Un menú de trampas puede disparar cualquier evento de red que registre tu servidor, con los argumentos que quiera. Si un recurso tiene un evento de servidor que añade dinero, da un objeto o spawnea un vehículo y confía en los valores que envía el cliente, el tramposo simplemente lo llama directamente:
-- Vulnerable: el servidor confía en todo lo que envía el cliente
RegisterNetEvent("shop:buyItem", function(item, amount)
local ply = FX.GetPlayerFromSource(source)
-- Sin comprobación de precio, sin validación — el cliente lo controla todo
ply.addItem(item, amount)
end)
-- Una trampa simplemente llama:
-- TriggerServerEvent("shop:buyItem", "gold_bar", 9999)Corregir un único evento se entiende bien: validar en el servidor, nunca confiar en la entrada del cliente. Cubrimos los patrones exactos en nuestra Guía de Seguridad de Eventos Lua de FiveM. Lo difícil no es corregir un evento; es saber dónde están todos.
Un servidor de rol típico ejecuta de 50 a más de 300 recursos, muchos de ellos scripts de terceros que tú no escribiste. Cada uno puede registrar decenas de eventos de red, es decir, potencialmente miles de eventos repartidos en archivos que nunca abriste. No puedes proteger lo que no ves, y nadie va a leer manualmente cada recurso buscando un handler addMoney olvidado.
En lugar de publicar más documentación, integramos la auditoría directamente en el panel de ZeroTrust. La idea era simple: si la parte peligrosa de un servidor es su superficie de eventos, todo dueño debería poder ver esa superficie completa de un vistazo, ordenada por riesgo y con una ruta directa a cada una.
Trigger Finder es un escáner integrado en el panel de ZeroTrust. Lanzas un escaneo iniciado desde el servidor y recorre tus recursos para extraer cada evento y trigger que encuentra, etiquetando cada uno con su recurso, archivo, número de línea, lado (cliente o servidor) y nombre de evento.
En vez de adivinar, obtienes un inventario completo y consultable de cada evento de red que expone tu servidor. Cada trigger se registra con dónde vive y en qué dirección fluye — Cliente → Servidor, Servidor → Cliente, Cliente → Cliente o Servidor → Servidor — para que veas de inmediato cuáles son alcanzables por un cliente malicioso.
El resultado es un desglose de riesgo de todo tu servidor: cuántos triggers son seguros o críticos, qué recursos contienen más eventos peligrosos y cómo se reparte todo entre cliente y servidor.
Cada hallazgo enlaza con su recurso → archivo → línea, con una vista de contexto de código para leer el trigger en su sitio. Cuando Trigger Finder marca un handler addItem peligroso, sabes exactamente qué script y qué línea reforzar, sin búsquedas.
Cada servidor es distinto, sobre todo con frameworks personalizados. Puedes configurar tus propias palabras clave y tu lista de eventos peligrosos, para que Trigger Finder marque los nombres de función que importan para tus scripts, no solo los predeterminados.
Trigger Finder te dice qué asegurar. Cerrar la brecha es el siguiente paso: valida cada evento marcado en el servidor, obtén valores con métodos del servidor en vez de confiar en el cliente, y comprueba el estado, la posición y los permisos del jugador antes de actuar. Todos los patrones —además de las convars de seguridad de FXServer que conviene activar— están en nuestra Guía de Seguridad de Eventos Lua de FiveM.
No puedes defender una superficie de ataque que nunca has visto. Trigger Finder convierte el vago consejo de "asegura tus eventos" en una lista concreta generada a partir de tu servidor real, para que sepas con precisión qué está expuesto y dónde corregirlo.