Fundamentos: tu primer recurso · Lección 1/6 · 7 min
Qué es un recurso y cómo se estructura
Un recurso es una carpeta con un fxmanifest.lua que le dice a FiveM qué archivos cargar y dónde.
En FiveM todo lo que añades a tu servidor es un «recurso»: una carpeta dentro de resources/ con un archivo especial llamado fxmanifest.lua. Ese manifiesto es el índice que le dice al servidor qué scripts cargar y en qué contexto (cliente, servidor o compartido).
La estructura mínima
resources/
└── mi_primer_script/
├── fxmanifest.lua
├── client.lua
└── server.luaCarpeta del recurso
El fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
author 'TuNombre'
description 'Mi primer recurso'
version '1.0.0'
-- Se ejecuta en el cliente (PC de cada jugador)
client_scripts {
'client.lua'
}
-- Se ejecuta en el servidor (tu máquina, de confianza)
server_scripts {
'server.lua'
}
-- Compartido por ambos (configuración, datos)
shared_scripts {
'config.lua'
}fxmanifest.lua
- client_scripts: corren en el PC de cada jugador. NO son de confianza.
- server_scripts: corren en tu servidor. Son la autoridad.
- shared_scripts: se cargan en ambos lados (ideal para config.lua).
Para activar tu recurso, ponlo en resources/ y añade ensure mi_primer_script en tu server.cfg. Luego reinícialo con refresh + ensure mi_primer_script en la consola.
Practica lo aprendido
0/3¿Qué archivo le dice a FiveM qué scripts cargar y en qué contexto (cliente/servidor)?
Pista
Es el archivo especial que va en la raíz de cada recurso.
Completa el manifiesto para que client.lua corra en el cliente y server.lua en el servidor.
fx_version 'cerulean'game 'gta5' { 'client.lua'} { 'server.lua'}Pista
Las listas se llaman client_scripts y server_scripts.
Este fxmanifest no carga: le falta la línea obligatoria del principio. Reescríbelo corregido.
Este código tiene un fallo:
game 'gta5'server_scripts { 'server.lua' }Reescríbelo corregido:
Pista
Todo manifiesto empieza declarando la fx_version (por ejemplo 'cerulean').
Reto: prográmalo tú
Sube de nivel: crea el fxmanifest.lua de un PACK DE VEHÍCULOS llamado «crx_cars». Un pack de coches NO lleva client/server.lua: lleva los .meta del vehículo en files{} y los declara con data_file. Completa el esqueleto para cargar vehicles, handling, carcols y carvariations.
Escríbelo tú en tu editor (VS Code) y pruébalo en tu servidor. Aquí se aprende haciéndolo, no copiando.
Ver pista
files { 'vehicles.meta', 'handling.meta', 'carcols.meta', 'carvariations.meta' } y luego una línea data_file por cada uno, p. ej. data_file 'HANDLING_FILE' 'handling.meta'.
Escribe aquí tu solución:
