>
Tutorial 2026-04-23

Der vollständige ox_lib-Leitfaden für die FiveM-Entwicklung

TDYSKY

TDYSKY

Gründer & Lead Developer bei Agency Scripts

Was ist ox_lib und warum solltest du es verwenden?

ox_lib ist eine Open-Source-Dienstprogrammbibliothek für FiveM, die zum De-facto-Standard für die moderne Script-Entwicklung geworden ist. Es bietet eine umfangreiche Sammlung vorgefertigter UI-Komponenten, Dienstprogrammfunktionen und Leistungstools, die es überflüssig machen, das Rad für jedes von Ihnen geschriebene Script neu zu erfinden. Bevor ox_lib existierte, mussten Entwickler ihre eigenen Benachrichtigungssysteme, Eingabedialoge, Fortschrittsbalken und Kontextmenüs von Grund auf erstellen, was oft zu einer inkonsistenten Benutzeroberfläche über verschiedene Scripts auf demselben Server hinweg führte. ox_lib löst dieses Problem, indem es einen einheitlichen, ausgefeilten Satz von Komponenten bereitstellt, die professionell aussehen und sofort einsatzbereit sind. Es unterstützt sowohl Lua als auch JavaScript, funktioniert mit jedem Framework (QBCore, ESX oder Standalone) und wird vom Overextended-Team aktiv gepflegt. Wenn du im Jahr 2026 FiveM-Scripts schreiben und ox_lib nicht verwenden, verschwende unnötig Zeit damit, Dinge zu erstellen, die bereits vorhanden sind.

Einrichten von ox_lib in deiner Ressource

Um ox_lib in deine Ressource zu integrieren, sind nur zwei Schritte erforderlich: Hinzufügen der Abhängigkeit zu deinem fxmanifest.lua und Aufrufen der Bibliothek in deinen Scripts. Durch den @ox_lib/init.lua-Import erhältst du Zugriff auf alle gemeinsam genutzten Dienstprogramme, während du mit dem Modulsystem gezielt nur die Funktionen laden können, die du benötigst. Dadurch bleibt deine Ressource gering, da ungenutzte Module nie geladen werden. Stell sicher, dass ox_lib vor deiner Ressource in deiner server.cfg gestartet wird, indem du ensure ox_lib über deinen benutzerdefinierten Ressourcen platzieren. Hier ist die minimale Einrichtung für eine neue Ressource, die ox_lib verwendet:

Benachrichtigungen: Saubere, konsistente Warnungen

ox_lib-Benachrichtigungen ersetzen die hässlichen Standard-Chat-Nachrichten und benutzerdefinierten NUI-Popups, die die meisten Scripts verwenden. Du erscheinen als elegante Toastnachrichten mit Symbolen, Farben und automatischer Ablehnung. Du kannst Position, Dauer und Typ (Erfolg, Fehler, Warnung, Info) festlegen und sogar eine Beschreibung unter dem Titel hinzufügen. Das Benachrichtigungssystem ist nur clientseitig und unglaublich leichtgewichtig, sodass dein Script praktisch keinen Mehraufwand verursacht. Benachrichtigungen sind die am häufigsten verwendete ox_lib-Funktion und sollten deine Standardmethode sein, um den Spielern in jedem von Ihnen erstellten Script Feedback zu übermitteln.

Kontextmenüs: Interaktive Optionslisten

Kontextmenüs sind scrollbare Listen mit Optionen, auf die Spieler klicken können, um Aktionen auszulösen. Du eignen sich perfekt für Jobmenüs, Shop-Schnittstellen, Fahrzeugoptionen und jedes Szenario, in dem ein Spieler aus mehreren Aktionen auswählen muss. Jeder Menüpunkt kann über ein Symbol, eine Beschreibung, auf der rechten Seite angezeigte Metadaten und verschachtelte Untermenüs zum Organisieren komplexer Optionsbäume verfügen. Das Menü bleibt geöffnet, bis der Spieler es explizit schließt oder eine Nicht-Untermenüoption auswählt, was es ideal zum Durchsuchen von Artikelkategorien macht. Kontextmenüs können auch dynamisch auf der Grundlage von Serverdaten generiert werden, sodass du Shop-Menüs erstellen können, die den Echtzeitbestand aus deiner Datenbank widerspiegeln.

Fortschrittsbalken und Fortschrittskreise

Fortschrittsbalken geben visuelles Feedback bei zeitgesteuerten Aktionen wie Schlösserknacken, Basteln, Reparieren von Fahrzeugen oder Kochen von Essen. ox_lib bietet sowohl einen linearen Balken als auch einen kreisförmigen Indikator. Während der Fortschrittsanimation kannst du Spielersteuerungen wie Bewegung, Kampf und Autoeinstieg deaktivieren, um Exploits zu verhindern. Du kannst dem Player auch eine Animation und eine Requisite hinzufügen, damit dieser die Aktion sichtbar ausführt, während sich die Leiste füllt. Die Funktion gibt true zurück, wenn der Spieler die Aktion abgebrochen hat (z. B. durch Bewegen) und false, wenn sie erfolgreich abgeschlossen wurde. Überprüfe immer diesen Rückgabewert, um zu vermeiden, dass Gegenstände gewährt oder Aktionen ausgeführt werden, die der Spieler unterbrochen hat.

Eingabedialoge: Spielerdaten sammeln

Mit Eingabedialogen kannst du eingegebenen Text, Zahlen, Dropdown-Auswahlmöglichkeiten, Kontrollkästchen, Farbwähler, Datumsangaben und Schiebereglerwerte von Spielern über eine übersichtliche modale Oberfläche sammeln. Dies ist wichtig für Scripts, die Spielereingaben erfordern, wie z. B. das Festlegen eines Hauspreises, die Eingabe eines Nummernschilds, die Benennung einer Bande oder die Konfiguration von Jobeinstellungen. Jedes Eingabefeld verfügt über eine Beschriftung, eine optionale Beschreibung, ein erforderliches Flag und typspezifische Optionen wie Min.-/Max.-Werte für Zahlen oder vordefinierte Optionen für Dropdowns. Die Funktion gibt nil zurück, wenn der Spieler den Dialog abbricht, und ein Array von Werten in Feldreihenfolge, wenn er abschickt. Überprüfe immer die zurückgegebenen Daten sowohl auf dem Client als auch auf dem Server, um Exploits zu verhindern.

Zonen: Effiziente Bereichserkennung

ox_lib-Zonen ersetzen die alte, ineffiziente Methode zur Überprüfung der Spielerposition in jedem Frame mit GetEntityCoords und Distanzberechnung. Das Zonensystem verwendet einen optimierten räumlichen Erkennungsalgorithmus, der die Koordinaten nur in konfigurierbaren Intervallen überprüft und Ein-/Austrittsrückrufe auslöst, wenn Spieler Zonengrenzen überschreiten. Du kannst Zonen als Kugeln, Kästchen oder Polygone definieren und sie so flexibel genug für alles machen, von kleinen Interaktionspunkten bis hin zu großen Nachbarschaftsgrenzen. Zonen unterstützen Rotation, Debug-Zeichnung für die Entwicklung und beliebige Daten, die an die Rückrufe übergeben werden. Für jedes Script, das erkennen muss, wann sich ein Spieler in einem bestimmten Bereich befindet, sind ox_lib-Zonen die leistungsstärkste verfügbare Lösung.

Cache: Intelligenter Datenzugriff

Das lib.cache-Modul bietet sofortigen Zugriff auf häufig benötigte Player-Daten, ohne dass in jedem Frame native Aufrufe durchgeführt werden müssen. Werte wie cache.ped, cache.vehicle, cache.seat, cache.weapon und cache.playerId werden von ox_lib automatisch durch Ereignis-Listener und nicht durch Abfragen auf dem neuesten Stand gehalten. Dies bedeutet, dass du cache.vehicle überall in deinem Code sicher lesen können, ohne sich Gedanken über die Leistung machen zu müssen. Der Cache löst auch Ereignisse aus, wenn sich Werte ändern, sodass du Handler für ox_lib:cache:vehicle registrieren können, um zu reagieren, wenn ein Spieler ein Fahrzeug betritt oder verlässt. In Kombination mit Zonen und dem Rest von

Zusammenfassung

Agency Scripts baut seine gesamte Produktlinie nach denselben Grundprinzipien: Framework-agnostische Architektur, schlanke Performance-Eigenschaften, klar dokumentierte Konfiguration und eine API, die echte Composability zwischen den Scripts ermöglicht. Kein Script ist eine Insel — jedes ist so gebaut, dass es gut allein und noch besser als Teil des Ökosystems funktioniert.

Für Fragen zur Installation, Konfiguration oder Kompatibilität ist der Agency Scripts Discord der schnellste Weg zur Hilfe. Die Community dort ist aktiv und hilfsbereit, und das Core-Team ist regelmäßig präsent. Für kritische Probleme steht auch ein direktes Support-Ticket-System auf der Tebex-Produktseite zur Verfügung.

Updates für alle Agency-Scripts werden über Tebex-Benachrichtigungen kommuniziert. Active-Business-Abonnenten erhalten neue Scripts automatisch ohne zusätzlichen Kauf. Changelog-Details erscheinen im #changelog-Kanal des Discords, damit du Updates bewerten kannst, bevor du sie auf einem Produktionsserver installierst.

Artikel teilen

Bereit, deinen Server aufzuwerten?

Schau dir unsere Premium FiveM Scripts im Agency Scripts Store an oder tritt unserer Discord-Community für Support und Updates bei.