@ox_lib/init.lua não encontrado e erros ox_lib: como corrigir
Erros sobre @ox_lib/init.lua, No such export in resource ox_lib, ou ox_lib não iniciando: use a compilação de versão, inicie-a primeiro, adicione a shared_script, ative lua54.
Um script que usa ox_lib falha em carregar em seu console e a mensagem menciona @ox_lib/init.lua, ou falha com:
No such export <name> in resource ox_libou ox_lib em si nunca começa. Todos esses vêm das mesmas poucas causas: o download errado, o nome da pasta errado, a ordem de início errada ou uma linha faltando no manifesto. Aqui está a correção para cada um.
O que é ox_lib
ox_lib é uma biblioteca compartilhada que muitos scripts dependem: retornos de chamada, notificações, menus, barras de progresso, locales. Um script opta com uma linha em seu manifesto:
shared_script '@ox_lib/init.lua'O prefixo @ox_lib/ diz ao FiveM para ler o arquivo do recurso chamado ox_lib, não da própria pasta do script. Então ox_lib deve existir, ter exatamente esse nome e ser iniciado.
1. Baixe a versão, não o zip de origem
Esta é a causa que a maioria das pessoas acerta. No GitHub, o botão Code verde dá a você um zip da origem. ox_lib tem uma interface web (menus, barras de progresso) que é construída a partir de arquivos de origem. O zip de origem não contém os arquivos compilados, então ox_lib falha em carregar sua UI ou registra uma mensagem sobre a UI não ser compilada.
Em vez disso:
- Abra o repositório ox_lib no GitHub, depois Releases.
- Na versão mais recente, baixe o arquivo chamado
ox_lib.zipem Assets. - Descompacte. A pasta dentro deve ser
ox_libefxmanifest.luadeve ficar diretamente nela.
resources/[standalone]/ox_lib/fxmanifest.luaSe você tem uma pasta de origem chamada ox_lib-main, remova-a e instale a versão em vez disso. Veja também Could not find dependency para problemas de nome de pasta.
2. Inicie ox_lib antes dos scripts
Em server.cfg, ox_lib deve vir antes de qualquer recurso que a importe:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure my_scriptSe my_script for garantido acima de ox_lib, pode carregar primeiro e falhar. Mover para baixo é a solução. Veja a ordem correta de ensure em server.cfg.
Adicione a dependência no manifesto do script também, para que FiveM a verifique:
dependency 'ox_lib'3. Adicione o shared script e lua54
Scripts que usam funções lib. precisam de duas linhas em fxmanifest.lua. Sem a importação, lib é nil no script e você recebe erros como attempt to index a nil value (global 'lib'):
fx_version 'cerulean'
game 'gta5'
lua54 'yes'
shared_script '@ox_lib/init.lua'
client_scripts { 'client/*.lua' }
server_scripts { 'server/*.lua' }A ordem importa: shared_script '@ox_lib/init.lua' deve ser listado para que carregue antes dos arquivos de script que chamam lib. Coloque-o acima de client_scripts e server_scripts.
4. No such export in resource ox_lib
No such export <name> in resource ox_libIsto significa que o script chama uma exportação ox_lib que não existe em seu servidor. Há duas causas:
- Um ox_lib antigo. O script foi escrito para uma versão mais recente. Atualize para a compilação de versão mais recente.
- ox_lib falhou em iniciar, então nenhuma de suas exportações existe. Procure o console onde ox_lib começa. Se imprimiu um erro lá, corrija isto primeiro.
Verifique que ox_lib começa limpo: execute ensure ox_lib no console do servidor e leia o que imprime. Um início saudável não imprime erro e nenhuma linha de falha.
5. Verifique o artefato do servidor
ox_lib precisa de uma compilação de servidor FiveM razoavelmente atual. Se ox_lib se recusa a iniciar e a mensagem menciona a versão do servidor, atualize seus artefatos. Os passos estão em atualizando artefatos de servidor FiveM.
6. O script em si não tem culpa
Se ox_lib está instalado e começado, mas um script ainda quebra, confirme que:
- A própria pasta do script é nomeada como sua linha
ensurediz. - Você não copiou
ox_libpara a pasta do script. Deve haver um recursoox_lib, no nível superior deresources(ou em uma pasta de colchetes). - Nenhuma segunda cópia de
ox_libexiste em outra pasta de categoria. Duas pastas com o mesmo nome de recurso causam comportamento impredizível.
Dica: quando você atualiza ox_lib, delete a pasta antiga primeiro em vez de descompactar sobre ela. Arquivos antigos deixados para trás podem se misturar com novos.
Lista de verificação
| Sintoma | Solução |
|---|---|
@ox_lib/init.lua falha |
Instale ox_lib com esse nome de pasta exato |
| Partes UI de ox_lib faltando | Use ox_lib.zip de Releases, não o zip de origem |
No such export ... in resource ox_lib |
Atualize ox_lib; verifique se começou sem erros |
lib é nil em um script |
Adicione shared_script '@ox_lib/init.lua' a seu manifesto |
| Script carrega antes de ox_lib | ensure ox_lib acima do script em server.cfg |
| Erros de sintaxe Lua ao carregar | Adicione lua54 'yes' ao manifesto |
Respostas rápidas
Onde baixo ox_lib?
Na página Releases do repositório ox_lib, usando o arquivo ox_lib.zip anexado à versão mais recente. Não use o botão verde Code, Download ZIP, que não tem arquivos web compilados.
Por que o script falha com @ox_lib/init.lua?
FiveM carrega esse arquivo do recurso ox_lib. Se a pasta estiver faltando, nomeada incorretamente ou falha em iniciar, o caminho não pode ser resolvido e o script falha.
Preciso lua54 para ox_lib?
Sim. Um recurso que importa @ox_lib/init.lua deve declarar lua54 'yes' em seu manifesto, já que ox_lib em si usa Lua 5.4.
Scripts sem esse problema
Mic PhoneUm celular dobrável que abre em tablet e chega ao celular de verdade do jogador.Ver script →
Item Creator V2Crie itens usáveis com animações, props, efeitos e muito mais — sem escrever código.Ver script →
Quest CreatorUm editor visual de missões e diálogos com NPCs, montado nó por nó dentro do jogo.Ver script →