Could not find dependency X for resource Y: como corrigir
FiveM diz Could not find dependency ox_lib for resource Y? O que dependency em fxmanifest.lua significa, como instalar o recurso faltando, nomes de pasta e ordem de início.
Você inicia um script e o console diz:
Could not find dependency ox_lib for resource my_script.
Couldn't start resource my_script.O script está recusando iniciar porque algo que ele precisa não está lá. Este artigo explica o que a linha significa e como corrigir as três causas usuais: o recurso não está instalado, a pasta tem o nome errado, ou está no lugar errado.
O que é uma dependência
Em fxmanifest.lua, um script pode declarar que precisa de outros recursos:
fx_version 'cerulean'
game 'gta5'
dependency 'ox_lib'
-- or several at once
dependencies {
'ox_lib',
'oxmysql',
}Quando my_script inicia, FiveM verifica que cada nome existe como um recurso. Se um está faltando, o início é cancelado, o que é melhor que rodar meio quebrado e lançar erros nil depois.
O nome que FiveM procura é o nome do recurso, que é o nome da pasta. Colchetes em pastas pai como [standalone] são apenas categorias e não fazem parte do nome.
Passo 1: encontre qual recurso está faltando
O texto entre dependency e for resource é o nome do recurso faltando. No exemplo é ox_lib. Procure por uma pasta com exatamente esse nome:
# from your server's resources folder
find . -maxdepth 3 -type d -name "ox_lib"No Windows, use a caixa de pesquisa no Explorador de Arquivos na pasta resources, ou Get-ChildItem -Recurse -Directory -Filter ox_lib em PowerShell. Se nada voltar, o recurso não está instalado.
Passo 2: instale-o
Baixe o recurso de sua fonte oficial, coloque a pasta em resources, e adicione a server.cfg antes do script que precisa dele:
ensure oxmysql
ensure ox_lib
ensure my_scriptDependências comuns são ox_lib e oxmysql, mais seu framework (es_extended, qb-core ou qbx_core). Para ox_lib especificamente, há um armadilha com o download: veja @ox_lib/init.lua not found.
Após adicionar uma pasta a um servidor rodando, execute refresh no console, depois ensure my_script.
Passo 3: corrija o nome da pasta
A dependência existe mas o erro ainda aparece. Verifique o nome exato. Estes são os nomes que as pessoas acabam tendo por acidente:
| Pasta no disco | Precisa ser |
|---|---|
ox_lib-main |
ox_lib |
ox_lib-master |
ox_lib |
oxmysql-main |
oxmysql |
qb-core-main |
qb-core |
ox_lib (1) |
ox_lib |
ZIPs de fonte GitHub adicionam -main ou -master ao nome da pasta, e navegadores adicionam (1) a downloads repetidos. Renomeie a pasta e atualize server.cfg para corresponder. No Linux, capitalização também importa: Ox_Lib não é ox_lib.
Também verifique o erro de pasta aninhada, onde a pasta descompactada contém mais uma pasta com o mesmo nome:
resources/ox_lib/ox_lib/fxmanifest.lua (wrong)
resources/ox_lib/fxmanifest.lua (right)Passo 4: certifique-se de que a dependência pode iniciar
Se a pasta está certa mas o erro persiste, a dependência pode existir e ainda falhar. Procure no console pelo próprio erro da dependência, que aparecerá acima da linha que você colou. Causas típicas são um erro de banco de dados para oxmysql, ou uma pasta web não construída para ox_lib. Corrija isso primeiro, depois inicie o script dependente. O diagnóstico mais amplo está em Couldn't start resource.
Ordem de início em server.cfg
Recursos iniciam na ordem das linhas ensure. Coloque as camadas base primeiro:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure my_scriptComo my_script declara suas dependências, FiveM as iniciará para você se você esquecer. Mesmo assim, escreva a ordem. Uma lista que lê de base para o topo é mais fácil de debugar, e scripts que não declaram uma dependência (muitos não) apenas funcionam quando a ordem está certa. O padrão completo está em the right ensure order in server.cfg.
Adicionar uma dependência ao seu próprio script
Se você escreve scripts, declare o que você usa. Se my_script chama exports.ox_lib ou funções lib., adicione:
dependency 'ox_lib'Você também pode exigir uma build de servidor ou OneSync na mesma lista:
dependencies {
'/onesync',
'ox_lib',
}Declarar dependências transforma um erro nil difícil de ler em uma mensagem de início clara.
Dica: uma dependência listada no manifesto que o script não usa mais bloqueará seu início em um servidor sem esse recurso. Remova entradas antigas quando você reformula um script.
Checklist
| Sintoma | Solução |
|---|---|
Could not find dependency ox_lib |
Instale ox_lib em resources |
Pasta é ox_lib-main ou ox_lib (1) |
Renomeie para o nome exato do recurso |
| Pasta aninhada duas vezes | Mova a pasta interna para cima para que fxmanifest.lua esteja diretamente dentro |
| Adicionou pasta, servidor ainda não está ciente | Execute refresh no console |
| Dependência existe mas falha | Leia seu próprio erro acima da linha e corrija primeiro |
| Ordem pouco clara | oxmysql, ox_lib, framework, depois scripts |
Respostas rápidas
O que significa Could not find dependency?
O fxmanifest.lua do recurso lista outro recurso em dependency ou dependencies, e FiveM não consegue encontrar um recurso com esse nome exato no seu servidor.
O nome da pasta da dependência é importante?
Sim. FiveM corresponde ao nome da pasta, não ao nome do projeto. Uma pasta chamada ox_lib-main não é ox_lib, então deve ser renomeada.
Preciso garantir a dependência antes do script?
É boa prática e mantém as coisas previsíveis. FiveM também inicia uma dependência listada para você quando o recurso dependente inicia, desde que a pasta exista.
Scripts sem esse problema
Mic PhoneUm celular dobrável que abre em tablet e chega ao celular de verdade do jogador.Ver script →
CCTV Security CamerasCâmeras posicionáveis, um tablet com várias telas ao vivo e fotos impressas como prova.Ver script →
Item Creator V2Crie itens usáveis com animações, props, efeitos e muito mais — sem escrever código.Ver script →