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:

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

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

bash
# 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:

cfg
ensure oxmysql
ensure ox_lib
ensure my_script

Dependê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:

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

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

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

lua
dependency 'ox_lib'

Você também pode exigir uma build de servidor ou OneSync na mesma lista:

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

Continue lendo