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

text
resources/
└── mi_primer_script/
    ├── fxmanifest.lua
    ├── client.lua
    └── server.lua

Carpeta del recurso

El fxmanifest.lua

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
Test

¿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.

Rellena los huecos

Completa el manifiesto para que client.lua corra en el cliente y server.lua en el servidor.

1fx_version 'cerulean'
2game 'gta5'
3
4 {
5 'client.lua'
6}
7
8 {
9 'server.lua'
10}
Pista

Las listas se llaman client_scripts y server_scripts.

Corrige el error

Este fxmanifest no carga: le falta la línea obligatoria del principio. Reescríbelo corregido.

Este código tiene un fallo:

1game 'gta5'
2server_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:

¿Qué tal esta lección?