__resource.lua para fxmanifest.lua: como converter um script antigo
Script FiveM antigo ainda usa __resource.lua e mostra um aviso de deprecated? Como convertê-lo para fxmanifest.lua com fx_version, game, lua54, ui_page e files.
Você inicia um script antigo e o console avisa que ainda usa __resource.lua, que é deprecated. O script pode ainda ser executado, mas está preso no formato de manifest antigo e não pode usar opções mais novas como Lua 5.4. Este guia o converte para fxmanifest.lua em alguns minutos.
O que mudou
Todo recurso precisa de um manifest que diga ao FiveM quais arquivos carregar. O formato antigo era __resource.lua. O formato atual é fxmanifest.lua. As diretivas que você conhece (client_script, server_script, ui_page, files) são as mesmas. O que muda é o cabeçalho.
Um manifest antigo se parece com isto:
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',
}O novo cabeçalho
Substitua a linha resource_manifest_version por duas linhas:
fx_version 'cerulean'
game 'gta5'fx_version é obrigatório. Ele seleciona o comportamento do manifest, e cerulean é a versão que os scripts atuais usam. game 'gta5' diz que o recurso é para GTA V. O UUID antigo em resource_manifest_version é substituído por fx_version: você não precisa traduzi-lo para um nome de versão antiga específico, apenas delete-o.
O arquivo convertido completo
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_scriptseserver_scriptsrecebem uma lista. O singularclient_script 'file.lua'ainda funciona para um arquivo.shared_scriptscarrega em ambos os lados. Um import de framework como'@ox_lib/init.lua'vai lá.ui_pageaponta para o arquivo HTML da NUI. Cada arquivo que a página carrega (JS, CSS, imagens, fontes) deve estar emfiles, ou não é enviado para o jogador. Wildcards funcionam:'html/**/*'.filestambém é onde você lista dados que um cliente precisa mas não executa, como arquivos meta.author,descriptioneversionsão opcionais e apenas informativos.
Lua 5.4
lua54 'yes' faz o recurso ser executado no Lua 5.4. Muitos recursos atuais o exigem. Ligá-lo para um script antigo é geralmente seguro, mas verifique duas coisas: um script que depende de comportamento antigo de Lua 5.3 pode precisar de uma pequena correção, e scripts que usam ox_lib precisam que Lua 5.4 seja ativado. Deixe de fora se o script antigo se comportar diferentemente com ele, e teste-o.
Mapas, arquivos de dados e ativos de stream
Se o manifest antigo tiver linhas data_file para meta de veículo ou arma, mantenha-as. Elas têm a mesma sintaxe em fxmanifest.lua:
files {
'data/vehicles.meta',
'data/handling.meta',
}
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'Modelos em stream e texturas em uma pasta stream não precisam de nenhuma entrada. Para um recurso somente de mapa, adicione também this_is_a_map 'yes'.
Remova o arquivo antigo
Após a conversão, delete __resource.lua da pasta. Deixar ambos os arquivos no lugar é confuso para quem mantiver o servidor mais tarde, e apenas um deles deve descrever o recurso.
Então reinicie o recurso:
refresh
ensure my_scriptrefresh é necessário porque o manifest mudou. Se o manifest tiver um erro, o recurso não iniciará: veja Não foi possível iniciar o recurso para ler o erro acima dessa linha.
Erros comuns após a conversão
- Um
fx_versionougameausente. O manifest é rejeitado. - Uma vírgula ausente dentro de
{ }. Cada entrada em uma lista é separada por uma vírgula. - Arquivos faltando de
files. O NUI carrega mas imagens ou scripts estão em branco, porque a página pediu algo que não foi enviado. Verifique o console F8 e o NUI devtools para solicitações falhadas. - Uma dependência que não é declarada. Adicione
dependency 'ox_lib'se o script a usa, para que a ordem de inicialização seja verificada. Veja Não foi possível encontrar dependência.
Atenção: não defina
fx_versionpara um nome muito antigo copiado de um tutorial de 2019 apenas para corresponder à idade do script. Useceruleane corrija qualquer coisa que quebrar.
Checklist
| Sintoma | Correção |
|---|---|
Console avisa sobre __resource.lua |
Crie fxmanifest.lua, delete o arquivo antigo |
Linha resource_manifest_version |
Substitua por fx_version 'cerulean' e game 'gta5' |
| NUI em branco após a conversão | Liste cada arquivo NUI em files e mantenha ui_page |
Funções ox_lib ausentes |
Adicione lua54 'yes' e o script compartilhado @ox_lib/init.lua |
| Recurso não encontrado após a mudança | Execute refresh, então ensure |
| Recurso não inicia | Leia as linhas acima de Couldn't start resource |
Respostas rápidas
__resource.lua ainda é suportado?
FiveM ainda o lê para recursos antigos, mas é deprecated e imprime um aviso. Novos recursos como lua54 existem apenas em fxmanifest.lua, portanto converta-o.
Qual fx_version devo usar?
cerulean é a escolha comum hoje. É a versão que a maioria dos scripts atuais declara, e funciona em um artefato de servidor atual.
Tenho que manter resource_manifest_version?
Não. fx_version a substitui. Delete a linha resource_manifest_version quando você converter.
Scripts sem esse problema
Clothing DesignerCrie roupas dentro do FiveM — pincel, camadas, importação de imagens e IA — e vista na hora.Ver script →
Drag RopeArraste jogadores com uma corda e amarre-os a veículos, com o comprimento da corda ao vivo.Ver script →
Item Creator V2Crie itens usáveis com animações, props, efeitos e muito mais — sem escrever código.Ver script →