@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:

text
No such export <name> in resource ox_lib

ou 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:

lua
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:

  1. Abra o repositório ox_lib no GitHub, depois Releases.
  2. Na versão mais recente, baixe o arquivo chamado ox_lib.zip em Assets.
  3. Descompacte. A pasta dentro deve ser ox_lib e fxmanifest.lua deve ficar diretamente nela.
text
resources/[standalone]/ox_lib/fxmanifest.lua

Se 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:

cfg
ensure oxmysql
ensure ox_lib
ensure es_extended   # or qb-core / qbx_core

ensure my_script

Se 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:

lua
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'):

lua
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

text
No such export <name> in resource ox_lib

Isto 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 ensure diz.
  • Você não copiou ox_lib para a pasta do script. Deve haver um recurso ox_lib, no nível superior de resources (ou em uma pasta de colchetes).
  • Nenhuma segunda cópia de ox_lib existe 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 →

Continue lendo