__resource.lua a fxmanifest.lua: cómo convertir un script antiguo
¿Script antiguo de FiveM aún usa __resource.lua y muestra una advertencia deprecada? Cómo convertirlo a fxmanifest.lua con fx_version, game, lua54, ui_page y files.
Inicias un script antiguo y la consola advierte que aún usa __resource.lua, que está deprecado. El script puede seguir funcionando, pero está atascado en el formato de manifiesto antiguo y no puede usar opciones más nuevas como Lua 5.4. Esta guía lo convierte a fxmanifest.lua en unos minutos.
Qué cambió
Cada recurso necesita un manifiesto que le diga a FiveM qué archivos cargar. El formato antiguo era __resource.lua. El formato actual es fxmanifest.lua. Las directivas que conoces (client_script, server_script, ui_page, files) son las mismas. Lo que cambia es el encabezado.
Un manifiesto antiguo se ve así:
resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
client_script 'client.lua'
server_script 'server.lua'
ui_page 'html/index.html'
files {
'html/index.html',
'html/script.js',
'html/style.css',
}El nuevo encabezado
Reemplaza la línea resource_manifest_version con dos líneas:
fx_version 'cerulean'
game 'gta5'fx_version es requerido. Selecciona el comportamiento del manifiesto, y cerulean es la versión que usan los scripts actuales. game 'gta5' dice que el recurso es para GTA V. El UUID antiguo en resource_manifest_version se reemplaza por fx_version: no necesitas traducirlo a un nombre de versión antiguo específico, simplemente elimínalo.
El archivo completo convertido
fx_version 'cerulean'
game 'gta5'
lua54 'yes'
author 'Your name'
description 'What the resource does'
version '1.0.0'
client_scripts {
'client.lua',
}
server_scripts {
'server.lua',
}
ui_page 'html/index.html'
files {
'html/index.html',
'html/script.js',
'html/style.css',
}Notas sobre cada parte:
client_scriptsyserver_scriptstoman una lista. El singularclient_script 'file.lua'aún funciona para un archivo.shared_scriptscarga en ambos lados. Una importación de framework como'@ox_lib/init.lua'va allí.ui_pageapunta al archivo HTML de la NUI. Cada archivo que la página carga (JS, CSS, imágenes, fuentes) debe estar enfiles, o no se envía al jugador. Los comodines funcionan:'html/**/*'.fileses también donde enumeras datos que un cliente necesita pero no ejecuta, como archivos meta.author,descriptionyversionson opcionales e informativos.
Lua 5.4
lua54 'yes' hace que el recurso se ejecute en Lua 5.4. Muchos recursos actuales lo requieren. Activarlo para un script antiguo es generalmente seguro, pero verifica dos cosas: un script que depende del comportamiento antiguo de Lua 5.3 puede necesitar una pequeña corrección, y los scripts que usan ox_lib necesitan Lua 5.4 habilitado. Omítelo si el script antiguo se comporta diferente con él, y pruébalo.
Mapas, archivos de datos y activos transmitidos
Si el manifiesto antiguo tiene líneas data_file para vehículos o meta de armas, mantenlas. Tienen la misma sintaxis en fxmanifest.lua:
files {
'data/vehicles.meta',
'data/handling.meta',
}
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'Los modelos y texturas transmitidos en una carpeta stream no necesitan entrada alguna. Para un recurso solo de mapas, agrega this_is_a_map 'yes' también.
Elimina el archivo antiguo
Después de convertir, elimina __resource.lua de la carpeta. Dejar ambos archivos en su lugar es confuso para quien mantenga el servidor más tarde, y solo uno de ellos debe describir el recurso.
Luego reinicia el recurso:
refresh
ensure my_scriptrefresh es necesario porque el manifiesto cambió. Si el manifiesto tiene un error, el recurso no se iniciará: ver Couldn't start resource para leer el error sobre esa línea.
Errores comunes después de convertir
- Un
fx_versionogamefaltante. El manifiesto se rechaza. - Una coma faltante dentro de
{ }. Cada entrada en una lista se separa por una coma. - Archivos faltantes de
files. La NUI carga pero las imágenes o secuencias de comandos están en blanco, porque la página pidió algo que no se envió. Verifica la consola F8 y las herramientas de desarrollo de NUI para solicitudes fallidas. - Una dependencia que no está declarada. Agrega
dependency 'ox_lib'si el script la usa, para que se verifique el orden de inicio. Ver Could not find dependency.
Cuidado: no establezcas
fx_versioncon un nombre muy antiguo copiado de un tutorial de 2019 solo para que coincida con la edad del script. Usaceruleany arregla todo lo que se rompa.
Lista de verificación
| Síntoma | Solución |
|---|---|
La consola advierte sobre __resource.lua |
Crea fxmanifest.lua, elimina el archivo antiguo |
Línea resource_manifest_version |
Reemplaza con fx_version 'cerulean' y game 'gta5' |
| NUI en blanco después de convertir | Enumera cada archivo de NUI bajo files y mantén ui_page |
Funciones ox_lib faltantes |
Agrega lua54 'yes' y el script compartido @ox_lib/init.lua |
| Recurso no encontrado después del cambio | Ejecuta refresh, luego ensure |
| El recurso no se inicia | Lee las líneas sobre Couldn't start resource |
Respuestas rápidas
¿Aún se admite __resource.lua?
FiveM aún lo lee para recursos antiguos, pero está deprecado e imprime una advertencia. Las nuevas características como lua54 solo existen en fxmanifest.lua, así que conviértelo.
¿Qué fx_version debo usar?
cerulean es la opción común hoy. Es la versión que declaran la mayoría de los scripts actuales, y funciona en un artefacto del servidor actual.
¿Tengo que mantener resource_manifest_version?
No. fx_version lo reemplaza. Elimina la línea resource_manifest_version cuando conviertas.
Scripts que evitan este problema
Clothing DesignerDiseña ropa dentro de FiveM — pincel, capas, imágenes e IA — y póntela.Ver script →
Drag RopeArrastra jugadores con una cuerda y átalos a vehículos, con longitud en vivo.Ver script →
Item Creator V2Crea items usables con animaciones, props, efectos y más — sin escribir código.Ver script →