Seguridad en FiveM: cómo proteger tus scripts y la skill de IA que lo aplica

415 instalaciones en skills.sh

Actualizado

¿No quieres gestionar las skills tú mismo? Consigue la app completa.

Los scripts seguros de FiveM tratan al cliente como no confiable: el servidor decide, valida cada parámetro, comprueba la distancia y aplica cooldowns. Esta guía lista los errores que explotan los cheaters y la skill de IA que aplica estas reglas al escribir código.

La seguridad en FiveM a nivel de script se resume en una regla: nunca confíes en el cliente. El cliente corre en la máquina del jugador y puede estar completamente comprometido. Un executor puede llamar a cualquier evento de red que registren tus recursos, con cualquier argumento y desde cualquier punto del mapa. Si escribes Lua de servidor para una economía, un inventario, una tienda o un trabajo, esto te aplica. La skill de seguridad en FiveM le da a tu asistente de IA las reglas para escribir handlers que asumen que el cliente miente.

Qué te da la skill de seguridad en FiveM

El SKILL.md es corto a propósito. Enuncia la filosofía central y cuatro reglas de oro, y luego remite a rules/events.md para el detalle de cómo estructurar y validar RegisterNetEvent y TriggerServerEvent.

  • Autoridad del servidor. El servidor dicta la verdad. El cliente solo pide acciones.
  • Nunca confíes en los parámetros. Si un cliente dice "dame $50", el servidor comprueba que el jugador se lo ganó. La cantidad sale del estado del servidor, no del argumento del evento.
  • Comprobación de distancia. Antes de lootear, vender o interactuar con una zona, el servidor compara la posición del jugador con el objetivo.
  • Rate limiting. Las acciones críticas llevan cooldown o debounce en el servidor para que un evento spameado no se ejecute mil veces por segundo.

La skill se centra en la defensa a nivel de script. No es un producto anti-cheat completo ni lo reemplaza. Hace que tus propios eventos sean más difíciles de abusar, que es lo que ninguna herramienta externa puede hacer por ti.

Errores comunes de seguridad en FiveM

  • Dar dinero o items desde una cantidad enviada por el cliente. El handler lee amount del evento y lo paga. Síntoma: un jugador aparece con millones después de una noche con un executor. Solución: calcula la recompensa en el servidor a partir de lo que el jugador hizo e ignora cualquier valor que mande el cliente.
  • Sin validación de source ni comprobación de permisos. El evento corre para quien lo dispare, sin comprobar que el jugador puede hacer esa acción o tiene el trabajo correcto. Síntoma: cualquiera abre la armería de la policía. Solución: resuelve source primero, carga al jugador y verifica que la acción está permitida para él.
  • Sin comprobación de distancia. Los eventos de tienda, loot y NPC se disparan desde la otra punta del mapa. Síntoma: un jugador vende en todas las tiendas a la vez sin moverse. Solución: obtén la posición del ped en el servidor y rechaza el evento si está a más de unos pocos metros del objetivo.
  • Sin cooldown. El evento se puede disparar en bucle. Síntoma: recompensas duplicadas y lag para todos. Solución: guarda un timestamp por jugador para los eventos críticos y descarta lo que llegue antes de que termine el cooldown.
  • "Anti-cheat" solo en el cliente. Comprobaciones como "¿está el jugador cerca de la tienda?" viven en el script de cliente. Corren en la máquina comprometida, así que el cheater las quita. Solución: deja las comprobaciones de cliente para la UX y repite en el servidor cada una que importe.

Por qué los asistentes de IA fallan con la seguridad en FiveM

Un asistente genérico aprendió de miles de scripts públicos de FiveM, y la mayoría confía en el cliente. Pídele un evento de "vender items" y te da un handler que toma item y price del cliente y lo paga. Funciona en pruebas y es una puerta abierta. Los asistentes también ponen las comprobaciones de distancia y permisos en el cliente, porque ahí las ponen los ejemplos.

La skill de seguridad invierte el punto de partida. El asistente lee las reglas de oro y rules/events.md antes de escribir un handler, así que valida source, deriva las cantidades del estado del servidor, comprueba la distancia en el servidor y añade cooldowns a las acciones críticas. El resultado es un handler que asume que el cliente es hostil.

Instala la skill de seguridad en FiveM en 30 segundos

  1. Haz clic en "Download SKILL.md" en la parte superior de esta página.
  2. Descomprímelo en la carpeta de skills o rules de tu herramienta de IA. La sección de instalación de abajo muestra la ruta exacta para Claude Code, Cursor y VS Code.
  3. Pídele al asistente algo concreto, como "escribe el evento de servidor para vender pescado en el muelle", y comprueba que valida source, revisa la distancia en el servidor y calcula el pago sin confiar en un precio enviado por el cliente.

Cómo instalar esta skill

Descarga el zip, descomprímelo y coloca la carpeta donde tu herramienta carga skills o reglas. La ruta exacta depende de la herramienta:

Claude Code

Descomprime en .claude/skills/fivem-security/ dentro del proyecto (la carpeta debe contener SKILL.md). Para todos los proyectos, usa ~/.claude/skills/fivem-security/.

Documentación de skills de Claude Code

Cursor

Cursor carga las reglas del proyecto desde .cursor/rules/. Añade ahí un archivo de regla que apunte a la skill descomprimida, o pega el contenido de SKILL.md y los archivos de reglas en una regla. El formato es .mdc con frontmatter y cambia entre versiones, así que revisa la documentación de tu versión.

Documentación de reglas de Cursor

VS Code / Copilot

Copilot lee archivos de instrucciones desde .github/instructions/*.instructions.md. Copia SKILL.md ahí con un glob applyTo para tus archivos Lua y deja los archivos de reglas al lado.

Documentación de instrucciones de VS Code

El archivo SKILL.md

Este es el archivo que lee tu asistente de IA. Enlaza a los archivos de reglas incluidos en la descarga.

Contenido de la skill (incluye SKILL.md y cualquier otro archivo)

El contenido de la skill está en inglés: es documentación técnica pensada para agentes de IA.

🛡️ FiveM Security & Anti-Exploit Principles

This skill provides architectural guidance for securing FiveM resources against common cheats, unauthorized event triggers, and malicious data manipulation.

Core Philosophy: NEVER TRUST THE CLIENT.

The client is in the hands of the user, which means it can be fully compromised. Every action that affects the game state, economy, or other players MUST be validated on the server.

📂 Core Concepts & Rules

Detailed rules are broken down into specific topics within the rules/ directory:

  • events.md: How to properly structure and validate RegisterNetEvent / TriggerServerEvent to prevent unauthorized execution.

⚠️ The Golden Rules of FiveM Security

  1. Server Authority: The server dictates the truth. The client only requests actions.
  2. Never Trust Parameters: Always validate arguments sent from the client (e.g., if a client says "give me $50", the server must check if the client earned it, not just blindly accept the amount).
  3. Distance Checks: Always check the distance on the server side before allowing an interaction (e.g., looting, selling, entering a zone).
  4. Rate Limiting: Prevent event spamming by implementing server-side cooldowns or debouncing for critical actions.

Preguntas frecuentes

¿Es suficiente el anti-cheat integrado de FiveM?
No. Las protecciones de la plataforma apuntan al cliente y a herramientas de cheat conocidas. No validan los eventos que registran tus propios scripts. Si tu handler confía en una cantidad enviada por el cliente, un executor puede llamarlo y nada lo impide. Tu código de servidor tiene que validar.
¿Necesito asegurar scripts cosméticos que solo corren en el cliente?
Es menos crítico, pero no cero. Un script puramente de cliente que cambia visuales locales solo afecta a ese jugador. Cualquier evento que llegue al servidor, aunque venga de un script cosmético, debe validarse en el servidor, porque un cheater puede dispararlo con cualquier argumento.
¿Puedo usar esta skill con ChatGPT?
Sí, con un paso manual. El SKILL.md y su carpeta rules son markdown plano, así que puedes pegarlos en la conversación como contexto. El soporte nativo de skills es para Claude Code, Cursor y VS Code.

Lecturas más largas del blog de FiveAI sobre el mismo tema.

Más skills