Tutorial 2026-01-20

Bases de Lua scripting para el desarrollo en FiveM

TDYSKY

TDYSKY

Fundador y desarrollador principal de Agency Scripts

Bases de Lua para desarrollo en FiveM

Lua es el lenguaje principal para desarrollar scripts en FiveM. Aunque es un lenguaje relativamente sencillo, dominar sus patrones específicos en el contexto de FiveM requiere comprensión de los eventos, threads, natives y la división cliente-servidor. Esta guía introduce los conceptos básicos que todo desarrollador de FiveM debería conocer para escribir su primer recurso funcional.

Sintaxis básica

Lua es simple de aprender. Variables sin tipado explícito, funciones como ciudadanas de primera clase, tablas como estructura de datos principal (que sirven tanto de array como de diccionario). Los comentarios van con -- para una línea o --[[...]] para bloques. Las palabras clave principales son local, function, if/then/else/end, for/do/end, while/do/end, return.

Natives de FiveM

FiveM expone cientos de natives de GTA V como funciones Lua llamables. GetPlayerPed, GetEntityCoords, CreateVehicle, SendNUIMessage son natives. La documentación oficial en docs.fivem.net lista todas. Al empezar, familiarízate con las natives más comunes para manipulación de jugadores, vehículos, peds y UI. Los ejemplos de scripts populares son excelente material de aprendizaje.

Cliente vs servidor

FiveM separa scripts de cliente (corren en cada jugador) y servidor (corren en el servidor central). Lo que decidas dónde vive depende del contexto: renderizado en cliente, autoridad de datos y validación en servidor. Los dos se comunican mediante eventos (TriggerServerEvent, TriggerClientEvent) y callbacks. Entender esta división es clave: código sensible nunca debe estar en cliente.

Eventos y threads

Los eventos son el mecanismo principal de comunicación. Regístralos con RegisterNetEvent y escucha con AddEventHandler. Para tareas que corren periódicamente usa CreateThread con bucles que incluyen Wait para liberar CPU. Los threads son corrutinas, no threads reales del OS, así que son ligeros. Evita bucles infinitos sin Wait, bloquearán tu script.

Primeros pasos prácticos

Crea una carpeta nueva en resources, añade un fxmanifest.lua básico y archivos client.lua y server.lua. Escribe un simple handler de evento que al dispararlo desde cliente imprima un mensaje en consola del servidor. Ensure el recurso en server.cfg, conéctate al servidor y disparalo con TriggerServerEvent('my-event') desde consola F8. Este hello world es el pilar sobre el que construir scripts más complejos.

Compartir este artículo

¿Listo para mejorar tu servidor?

Echa un vistazo a nuestros scripts premium de FiveM en la tienda de Agency Scripts o únete a nuestra comunidad de Discord para soporte y novedades.