No se encuentra la dependencia X del recurso Y: cómo arreglarlo
¿FiveM dice Could not find dependency ox_lib for resource Y? Qué significa dependency en fxmanifest.lua, cómo instalar el recurso faltante, nombrar carpetas y orden de inicio.
Inicias un script y la consola dice:
Could not find dependency ox_lib for resource my_script.
Couldn't start resource my_script.El script se niega a iniciar porque algo que necesita no está allí. Este artículo explica qué significa la línea y cómo arreglar las tres causas usuales: el recurso no está instalado, la carpeta tiene el nombre incorrecto, o está en el lugar incorrecto.
Qué es una dependencia
En fxmanifest.lua, un script puede declarar que necesita otros recursos:
fx_version 'cerulean'
game 'gta5'
dependency 'ox_lib'
-- or several at once
dependencies {
'ox_lib',
'oxmysql',
}Cuando my_script inicia, FiveM comprueba que cada nombre exista como un recurso. Si uno falta, el inicio se cancela, lo cual es mejor que ejecutar medio roto y lanzar errores nil después.
El nombre que FiveM busca es el nombre del recurso, que es el nombre de la carpeta. Los brackets en carpetas padre como [standalone] son solo categorías y no son parte del nombre.
Paso 1: encuentra qué recurso falta
El texto entre dependency y for resource es el nombre del recurso faltante. En el ejemplo es ox_lib. Busca una carpeta con exactamente ese nombre:
# from your server's resources folder
find . -maxdepth 3 -type d -name "ox_lib"En Windows, usa la caja de búsqueda en el Explorador de archivos en la carpeta resources, o Get-ChildItem -Recurse -Directory -Filter ox_lib en PowerShell. Si nada vuelve, el recurso no está instalado.
Paso 2: instálalo
Descarga el recurso de su fuente oficial, pon la carpeta bajo resources, y añádelo a server.cfg antes que el script que lo necesita:
ensure oxmysql
ensure ox_lib
ensure my_scriptLas dependencias comunes son ox_lib y oxmysql, más tu framework (es_extended, qb-core o qbx_core). Para ox_lib específicamente, hay una trampa con la descarga: ver @ox_lib/init.lua not found.
Después de añadir una carpeta a un servidor en ejecución, ejecuta refresh en la consola, luego ensure my_script.
Paso 3: arregla el nombre de la carpeta
La dependencia existe pero el error aún se muestra. Comprueba el nombre exacto. Estos son los nombres que la gente termina con accidentalmente:
| Carpeta en disco | Necesita ser |
|---|---|
ox_lib-main |
ox_lib |
ox_lib-master |
ox_lib |
oxmysql-main |
oxmysql |
qb-core-main |
qb-core |
ox_lib (1) |
ox_lib |
Los zips de fuente de GitHub añaden -main o -master al nombre de la carpeta, y los navegadores añaden (1) a descargas repetidas. Renombra la carpeta y actualiza server.cfg para que coincida. En Linux, la capitalización también importa: Ox_Lib no es ox_lib.
También comprueba el error de carpeta anidada, donde la carpeta descomprimida contiene una carpeta más con el mismo nombre:
resources/ox_lib/ox_lib/fxmanifest.lua (wrong)
resources/ox_lib/fxmanifest.lua (right)Paso 4: asegúrate de que la dependencia puede iniciarse
Si la carpeta es correcta pero el error persiste, la dependencia puede existir y aún fallar ella misma. Busca en la consola el propio error de la dependencia, que aparecerá arriba de la línea que pegaste. Las causas típicas son un error de base de datos para oxmysql, o una carpeta web sin construir para ox_lib. Arregla eso primero, luego inicia el script dependiente. El diagnóstico más amplio está en Couldn't start resource.
Orden de inicio en server.cfg
Los recursos inician en el orden de las líneas de ensure. Pon las capas base primero:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure my_scriptPorque my_script declara sus dependencias, FiveM las iniciará por ti si olvidas. Aun así, escribe el orden. Una lista que lee de base a arriba es más fácil de depurar, y los scripts que no declaran una dependencia (muchos no lo hacen) solo funcionan cuando el orden es correcto. El patrón completo está en the right ensure order in server.cfg.
Añadiendo una dependencia a tu propio script
Si escribes scripts, declara lo que usas. Si my_script llama a exports.ox_lib o funciones lib., añade:
dependency 'ox_lib'También puedes requerir una compilación del servidor o OneSync en la misma lista:
dependencies {
'/onesync',
'ox_lib',
}Declarar dependencias convierte un error nil difícil de leer en un claro mensaje de inicio.
Consejo: una dependencia listada en el manifest que el script ya no usa bloqueará su inicio en un servidor sin ese recurso. Elimina entradas antiguas cuando reelabores un script.
Lista de verificación
| Síntoma | Solución |
|---|---|
Could not find dependency ox_lib |
Instala ox_lib bajo resources |
La carpeta es ox_lib-main o ox_lib (1) |
Renombra al nombre exacto del recurso |
| Carpeta anidada dos veces | Mueve la carpeta interior arriba así fxmanifest.lua está directamente adentro |
| Carpeta añadida, servidor aún desconocedor | Ejecuta refresh en la consola |
| La dependencia existe pero falla | Lee su propio error arriba de la línea y arréglalo primero |
| El orden es poco claro | oxmysql, ox_lib, framework, luego scripts |
Respuestas rápidas
¿Qué significa Could not find dependency?
El fxmanifest.lua del recurso lista otro recurso bajo dependency o dependencies, y FiveM no puede encontrar un recurso con ese nombre exacto en tu servidor.
¿Es importante el nombre de la carpeta de la dependencia?
Sí. FiveM coincide el nombre de la carpeta, no el nombre del proyecto. Una carpeta llamada ox_lib-main no es ox_lib, así que debe ser renombrada.
¿Tengo que asegurar la dependencia antes que el script?
Es buena práctica y mantiene las cosas predecibles. FiveM también inicia una dependencia listada por ti cuando el recurso dependiente inicia, siempre que la carpeta exista.
Scripts que evitan este problema
Mic PhoneUn móvil plegable que se abre en tablet y llega al móvil real del jugador.Ver script →
CCTV Security CamerasCámaras colocables, una tablet con vista múltiple en vivo y fotos como prueba.Ver script →
Item Creator V2Crea items usables con animaciones, props, efectos y más — sin escribir código.Ver script →