Konnte Abhängigkeit X für Ressource Y nicht finden: Wie man es behebt

FiveM sagt Konnte Abhängigkeit ox_lib für Ressource Y nicht finden? Was Abhängigkeit in fxmanifest.lua bedeutet, wie man die fehlende Ressource installiert, Ordnerbenennung und Startreihenfolge.

Du startest ein Skript und die Konsole sagt:

text
Could not find dependency ox_lib for resource my_script.
Couldn't start resource my_script.

Das Skript verweigert den Start, weil etwas, das es braucht, nicht da ist. Dieser Artikel erklärt, was die Zeile bedeutet und wie man die drei üblichen Ursachen behebt: die Ressource ist nicht installiert, der Ordner hat den falschen Namen oder er ist an der falschen Stelle.

Was eine Abhängigkeit ist

In fxmanifest.lua kann ein Skript deklarieren, dass es andere Ressourcen braucht:

lua
fx_version 'cerulean'
game 'gta5'

dependency 'ox_lib'

-- or several at once
dependencies {
    'ox_lib',
    'oxmysql',
}

Wenn my_script startet, überprüft FiveM, dass jeder Name als Ressource existiert. Falls einer fehlt, wird der Start abgebrochen, was besser ist, als halb kaputt zu laufen und später nil-Fehler zu werfen.

Der Name, den FiveM sucht, ist der Ressourcenname, das ist der Ordnername. Klammern in übergeordneten Ordnern wie [standalone] sind nur Kategorien und sind nicht Teil des Namens.

Schritt 1: Finde heraus, welche Ressource fehlt

Der Text zwischen dependency und for resource ist der Name der fehlenden Ressource. Im Beispiel ist es ox_lib. Suche nach einem Ordner mit genau diesem Namen:

bash
# from your server's resources folder
find . -maxdepth 3 -type d -name "ox_lib"

Unter Windows verwende die Suchbox in File Explorer im resources-Ordner oder Get-ChildItem -Recurse -Directory -Filter ox_lib in PowerShell. Falls nichts zurückkommt, ist die Ressource nicht installiert.

Schritt 2: Installiere es

Lade die Ressource von ihrer offiziellen Quelle herunter, lege den Ordner unter resources und füge ihn zu server.cfg vor dem Skript hinzu, das es braucht:

cfg
ensure oxmysql
ensure ox_lib
ensure my_script

Häufige Abhängigkeiten sind ox_lib und oxmysql, plus dein Framework (es_extended, qb-core oder qbx_core). Für ox_lib gibt es speziell einen Trick beim Download: siehe @ox_lib/init.lua nicht gefunden.

Nach dem Hinzufügen eines Ordners zu einem laufenden Server führe refresh in der Konsole aus, dann ensure my_script.

Schritt 3: Behebe den Ordnernamen

Die Abhängigkeit existiert, aber der Fehler wird immer noch angezeigt. Überprüfe den genauen Namen. Dies sind die Namen, auf die Leute versehentlich stoßen:

Ordner auf der Festplatte Muss sein
ox_lib-main ox_lib
ox_lib-master ox_lib
oxmysql-main oxmysql
qb-core-main qb-core
ox_lib (1) ox_lib

GitHub-Quell-Zips fügen -main oder -master zum Ordnernamen hinzu, und Browser fügen (1) zu wiederholten Downloads hinzu. Benenne den Ordner um und aktualisiere server.cfg um zu passen. Unter Linux ist auch die Großschreibung wichtig: Ox_Lib ist nicht ox_lib.

Überprüfe auch auf den verschachtelten Ordner-Fehler, bei dem der entpackte Ordner einen weiteren Ordner mit dem gleichen Namen enthält:

text
resources/ox_lib/ox_lib/fxmanifest.lua   (wrong)
resources/ox_lib/fxmanifest.lua          (right)

Schritt 4: Stelle sicher, dass die Abhängigkeit starten kann

Wenn der Ordner richtig ist, aber der Fehler bestehen bleibt, existiert die Abhängigkeit möglicherweise und schlägt trotzdem fehl. Suche in der Konsole nach dem eigenen Fehler der Abhängigkeit, der über der Zeile erscheint, die du eingefügt hast. Typische Ursachen sind ein Datenbankfehler für oxmysql oder ein ungebauter Web-Ordner für ox_lib. Behebe das zuerst, dann starte das abhängige Skript. Die breitere Diagnose ist in Konnte Ressource nicht starten.

Startreihenfolge in server.cfg

Ressourcen starten in der Reihenfolge der ensure-Zeilen. Lege die Basis-Layer zuerst:

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

Da my_script seine Abhängigkeiten deklariert, wird FiveM sie für dich starten, wenn du sie vergisst. Schreibe dennoch die Reihenfolge auf. Eine Liste, die von Basis nach oben liest, ist leichter zu debuggen, und Skripte, die keine Abhängigkeit deklarieren (viele tun es nicht), funktionieren nur, wenn die Reihenfolge richtig ist. Das vollständige Muster ist in die richtige ensure-Reihenfolge in server.cfg.

Füge eine Abhängigkeit zu deinem eigenen Skript hinzu

Wenn du Skripte schreibst, deklariere, was du verwendest. Wenn my_script exports.ox_lib oder lib. Funktionen aufruft, füge hinzu:

lua
dependency 'ox_lib'

Du kannst auch einen Server-Build oder OneSync in der gleichen Liste verlangen:

lua
dependencies {
    '/onesync',
    'ox_lib',
}

Abhängigkeiten zu deklarieren verwandelt einen schwer zu lesenden nil-Fehler in eine klare Start-Meldung.

Tipp: Eine aufgelistete Abhängigkeit im Manifest, die das Skript nicht mehr verwendet, blockiert seinen Start auf einem Server ohne diese Ressource. Entferne alte Einträge, wenn du ein Skript umarbeitest.

Checkliste

Symptom Behebung
Could not find dependency ox_lib Installiere ox_lib unter resources
Ordner ist ox_lib-main oder ox_lib (1) Benenne um auf den genauen Ressourcennamen
Ordner zweimal verschachtelt Verschiebe den inneren Ordner nach oben, so dass fxmanifest.lua direkt innen ist
Ordner hinzugefügt, Server immer noch unaware Führe refresh in der Konsole aus
Abhängigkeit existiert, schlägt aber fehl Lese ihren eigenen Fehler über der Zeile und behebe es zuerst
Reihenfolge unklar oxmysql, ox_lib, Framework, dann Skripte

Kurze Antworten

Was bedeutet Konnte Abhängigkeit nicht finden?

Die fxmanifest.lua der Ressource listet eine andere Ressource unter dependency oder dependencies auf, und FiveM kann eine Ressource mit genau diesem Namen auf deinem Server nicht finden.

Ist der Ordnername der Abhängigkeit wichtig?

Ja. FiveM vergleicht den Ordnernamen, nicht den Projektnamen. Ein Ordner namens ox_lib-main ist nicht ox_lib, daher muss er umbenannt werden.

Muss ich die Abhängigkeit vor dem Skript sicherstellen?

Es ist eine gute Praxis und es hält die Dinge vorhersehbar. FiveM startet auch eine aufgelistete Abhängigkeit für dich, wenn die abhängige Ressource startet, solange der Ordner existiert.

Scripts ohne dieses Problem

Mic PhoneEin faltbares Handy, das sich zum Tablet aufklappt und bis aufs echte Handy des Spielers reicht.Script ansehen →CCTV Security CamerasPlatzierbare Kameras, ein Live-Tablet mit Multi-View und ausgedruckte Beweisfotos.Script ansehen →Item Creator V2Erstelle nutzbare Items mit Animationen, Props, Effekten und mehr — ganz ohne Code.Script ansehen →

Weiterlesen