Zum Inhalt springen
Aktueller Gutschein:10 % RabattIn der Bestellung einlösen

FiveM-Resources: Skripte installieren, ensure und Ladereihenfolge

So installieren Sie ein Skript (eine Resource) auf einem FiveM-Server: Ordnerstruktur, fxmanifest.lua, SQL-Import, ensure in der richtigen Reihenfolge, kostenpflichtige Asset-Escrow-Skripte und Fehlerbehebung.

  • Einsteiger
  • ~20 Min.
  • Aktualisiert am 9.10.2026

Alles auf einem FiveM-Server, das „etwas tut“ (das Framework, Jobs, Autos, Maps, HUD), ist eine Resource. Wir zeigen Ihnen, wie Sie ein Skript richtig hochladen, in der richtigen Reihenfolge starten und was Sie tun, wenn es nicht startet.

Was Sie brauchen

  • Ein FiveM-Server bei StormHost (oder Ihr eigener FiveM-Server)
  • Ein Skript (eine Resource), heruntergeladen aus einer vertrauenswürdigen Quelle
  • Ein Programm zum Entpacken von Archiven auf Ihrem Computer (Windows hat eines eingebaut, oder 7-⁠Zip)
  • Etwa 20 Minuten

Was eine Resource ist#

Eine Resource ist ein Ordner mit Skripten und Dateien, den der Server starten, stoppen und neu starten kann. Damit der Server ihn erkennt, muss er eine Datei fxmanifest.lua enthalten (__resource.lua bei sehr alten Skripten).

  • Der Ordnername ist der Name der Resource. Der Ordner ox_lib = die Resource ox_lib. Diesen Namen schreiben Sie in ensure.
  • Darin liegen in der Regel Skripte für den Server (server/), für die Spieler (client/), gemeinsame (shared/), die Konfiguration (config.lua), eine Weboberfläche (html/, web/) und Modelle (stream/).
  • Ein Standalone-Skript funktioniert für sich allein. Andere brauchen ein Framework (ESX, QBCore, Qbox) oder eine Bibliothek (ox_lib, oxmysql). Was das Skript braucht, nennt der Autor in der Anleitung (README).

Der Ordner resources und Kategorien#

Der Server sucht Resources im Ordner resources neben der server.cfg. Ordner in eckigen Klammern sind Kategorien: Sie sind keine Resources, sondern nur eine Möglichkeit, Ordnung zu halten.

text
server.cfg
resources/
├── [standalone]/
│   ├── oxmysql/
│   │   └── fxmanifest.lua
│   └── ox_lib/
│       └── fxmanifest.lua
├── [esx]/
│   └── es_extended/
│       └── fxmanifest.lua
└── muj_skript/
    └── fxmanifest.lua

Dieser Baum enthält die Resources oxmysql, ox_lib, es_extended und muj_skript. Eine ganze Kategorie starten Sie mit einer einzigen Zeile, ensure [standalone]. Kategorien lassen sich auch verschachteln.

Auf einem Server mit txAdmin liegt der Ordner resources im Deployment-Ordner (txAdmin schlägt txData/<NAME>_<CODE>.base vor).

Woher Sie Skripte bekommen#

  • Offizielle Quellen: der Bereich Releases im Cfx.re-Forum (öffnet sich in einem neuen Fenster), der Cfx Marketplace, das GitHub des Autors (Bereich Releases).
  • Kaufen Sie kostenpflichtige Skripte nur über den Cfx Marketplace oder Tebex. Überall sonst riskieren Sie Betrug.
  • Verwenden Sie keine „Leaks“ (gestohlene kostenpflichtige Skripte). Sie enthalten oft Schadcode, der andere Resources „infiziert“ oder Fremden Zugriff auf Ihren Server gibt. FiveM meldet solchen Code als prohibited logic.

Skript Schritt für Schritt installieren#

Vorbereitung auf dem Computer#

  1. Laden Sie das Skript herunter. Wenn es auf GitHub einen Bereich Releases hat, laden Sie das Archiv von dort herunter, nicht über Code › Download ZIP. Ein Release enthält die gebaute Weboberfläche; der Quellcode oft nicht.

  2. Entpacken Sie das Archiv.

  3. Suchen Sie den Ordner, der die fxmanifest.lua direkt enthält. Das ist die Resource.

  4. Benennen Sie den Ordner in den Namen um, den der Autor angibt. Typischerweise entfernen Sie das GitHub-Suffix: Benennen Sie ox_lib-main in ox_lib um.

    Warum: Andere Skripte verweisen auf die Resource über ihren Namen. Für sie würde ox_lib-main nicht existieren.

  5. Lesen Sie die README: welche Abhängigkeiten das Skript hat, ob es eine .sql-Datei enthält und was in der config.lua einzustellen ist.

Vorsicht vor einem doppelten Ordner

Beim Entpacken entsteht oft muj_skript/muj_skript/fxmanifest.lua. Nur der innere Ordner gehört auf den Server. Andernfalls meldet der Server, dass die Resource kein Manifest hat, oder findet sie nicht.

Hochladen auf den Server#

  1. Öffnen Sie im Kundenbereich Meine Dienste, klicken Sie auf Ihren Server und wechseln Sie zur Registerkarte Dateien.
  2. Öffnen Sie den Ordner resources (oder eine Kategorie, zum Beispiel [standalone]).
  3. Klicken Sie auf Neuer Ordner und legen Sie einen Ordner mit dem Namen der Resource an, zum Beispiel muj_skript.
  4. Öffnen Sie ihn und laden Sie die Dateien mit der Schaltfläche Hochladen hoch. Legen Sie die Unterordner (client, server, html …) mit Neuer Ordner erneut an und laden Sie deren Dateien hinein.

Die Registerkarte Dateien lädt einzelne Dateien bis 100 MB hoch und entpackt keine Archive. Große Resources (Autos, Kleidung, Maps, ein ganzes Framework) laden Sie per SFTP hoch. Den Zugang richtet Ihnen der Support ein (Kontakte); das Vorgehen steht in Dateiverwaltung.

Datenbank und Konfiguration#

  1. Wenn das Skript eine .sql-Datei enthält, importieren Sie sie in die Datenbank des Servers. Das Vorgehen mit HeidiSQL steht in Datenbank für FiveM.

  2. Öffnen Sie die config.lua (oder config/*.lua) im Editor der Registerkarte Dateien und gehen Sie die Einstellungen durch. Typische Optionen:

    Option (Beispiel)Was sie in der Regel tut
    Config.Framework = 'esx'Für welches Framework das Skript eingestellt ist (esx, qb, qbx). Muss zu Ihrem Server passen.
    Config.Locale = 'de'Die Sprache der Texte (hier Deutsch), falls das Skript diese Sprache enthält.
    Config.Debug = falseDebug-Ausgabe. Lassen Sie sie auf einem Live-Server auf false.

    Die Optionsnamen unterscheiden sich von Skript zu Skript. Was sie genau tun, erklärt der Autor in den Kommentaren in der Datei.

Skript einschalten#

  1. Fügen Sie diese Zeile in die server.cfg ein (im CFG Editor, wenn Sie txAdmin verwenden):

    server.cfgcfg
    ensure muj_skript
    • ensure – startet die Resource (und startet sie neu, falls sie bereits läuft).
    • muj_skript – der Ordnername der Resource.

    Setzen Sie die Zeile unter alle Abhängigkeiten des Skripts (Framework, oxmysql, ox_lib). Wenn das Skript in einer Kategorie liegt, die Sie bereits starten (ensure [standalone]), müssen Sie die Zeile nicht hinzufügen.

  2. Starten Sie den Server neu. Oder starten Sie das Skript ohne Neustart mit Befehlen in der Konsole (Kundenbereich oder Live Console in txAdmin):

    text
    refresh
    ensure muj_skript
    • refresh – der Server durchsucht den Ordner resources erneut und findet neue Resources. Ohne diesen Befehl weiß der Server nichts vom neuen Skript.
    • ensure muj_skript – startet es.

Skripte, die Spielerdaten ändern oder Gegenstände in Inventare legen, starten Sie besser durch einen Neustart des gesamten Servers, nicht im laufenden Betrieb.

fxmanifest.lua: was darin steht#

fxmanifest.luaLua
fx_version 'cerulean'
game 'gta5'

author 'Jan'
description 'Beispielskript'
version '1.0.0'

shared_script 'config.lua'
client_scripts {
    'client/*.lua'
}
server_scripts {
    '@oxmysql/lib/MySQL.lua',
    'server/*.lua'
}

ui_page 'html/index.html'
files {
    'html/index.html',
    'html/app.js'
}

dependencies {
    'oxmysql',
    'ox_lib'
}
EintragWas er tut
fx_version 'cerulean'Die Version des Manifestformats. cerulean ist aktuell. Ohne fx_version gibt der Server eine Warnung aus.
game 'gta5'Für welches Spiel die Resource ist (gta5 = FiveM, rdr3 = RedM).
author, description, versionInformationen über das Skript; sie beeinflussen die Funktion nicht.
shared_scriptEine Datei, die sowohl auf dem Server als auch auf Spielerseite geladen wird (typischerweise config.lua).
client_scriptsSkripte, die auf Spielerseite laufen. Der Spieler lädt sie herunter. *.lua = alle .lua-Dateien im Ordner.
server_scriptsSkripte, die nur auf dem Server laufen. Spieler sehen sie nie. @oxmysql/lib/MySQL.lua lädt eine Bibliothek aus einer anderen Resource.
ui_page, filesDie Weboberfläche des Skripts (NUI) und die Dateien, die der Spieler herunterlädt.
dependenciesResources, die zuerst laufen müssen. Der Server versucht, sie selbst zu starten, und wenn eine fehlt, startet er das Skript nicht.

Der ältere Eintrag lua54 'yes' ist nicht mehr nötig: Seit Juni 2025 laufen alle Skripte auf Lua 5.4.

Abhängigkeiten und Ladereihenfolge#

  • Resources starten in der Reihenfolge der ensure-Zeilen in der server.cfg.
  • Die übliche Reihenfolge: Standard-FiveM-Resources › oxmysql › ox_lib › Framework-Kern › Framework-Skripte › Ihre Skripte.
  • Der Eintrag dependencies im Manifest kann auch Serverbedingungen verlangen, zum Beispiel '/onesync' (OneSync eingeschaltet), '/server:4500' (Mindest-Server-Build) oder '/gameBuild:h4' (Mindest-Game-Build). Ist eine Bedingung nicht erfüllt, startet das Skript nicht.

Kostenpflichtige Skripte und Asset Escrow#

Kostenpflichtige Skripte aus dem Cfx Marketplace oder von Tebex sind in der Regel durch Asset Escrow geschützt: Der Code ist verschlüsselt und läuft nur auf den Servern des Käufers.

  • Das Skript läuft nur auf einem Server, dessen License Key zu demselben Cfx.re-Konto gehört, mit dem Sie das Skript gekauft haben. Laden Sie es im Cfx.re Portal (öffnet sich in einem neuen Fenster) oder über den Link in der E-Mail von Tebex herunter.
  • Verschlüsselte Dateien lassen sich nicht bearbeiten. Der Autor lässt in der Regel die Konfigurationsdateien (config.lua) offen, und diese können Sie bearbeiten.
  • Die Resource enthält eine .fxap-Datei. Sie muss zusammen mit dem Rest auf den Server hochgeladen werden, sonst kann das Skript nicht verifiziert werden.

Autos, Kleidung und Maps (gestreamte Dateien)#

Modelle und Texturen werden an die Spieler „gestreamt“: Sie laden sie beim Verbinden vom Server herunter. Eine solche Resource hat in der Regel einen Ordner stream und Verweise auf Spieldatendateien in ihrem Manifest.

fxmanifest.luaLua
fx_version 'cerulean'
game 'gta5'

files {
    'data/vehicles.meta',
    'data/carvariations.meta',
    'data/handling.meta'
}

data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
data_file 'HANDLING_FILE' 'data/handling.meta'
EintragWas er tut
Ordner stream/Modelle und Texturen (.yft, .ytd, .ydr …). Alles darin wird von den Spielern automatisch heruntergeladen und steht nicht im Manifest.
files { … }Datendateien, die der Spieler herunterlädt.
data_file 'VEHICLE_METADATA_FILE'Die Fahrzeugdefinition (vehicles.meta): der Modellname zum Spawnen, Sound, Klasse.
data_file 'VEHICLE_VARIATION_FILE'Fahrzeugfarben und -varianten (carvariations.meta).
data_file 'HANDLING_FILE'Fahreigenschaften (handling.meta).
this_is_a_map 'yes'Die Resource ist eine Map oder ein Interieur (MLO). Nach ihrem Start lädt das Spiel die Kartendaten neu.

Praktische Hinweise:

  • Jedes Auto und jede Map vergrößert den Download beim ersten Verbinden. Dutzende Autos mit hochauflösenden Texturen bedeuten lange Ladezeiten.
  • Interieurs (MLOs) erfordern oft einen bestimmten Game Build (sv_enforceGameBuild) oder eine weitere Resource mit Basisdaten. Lesen Sie die README.
  • Laden Sie große Auto- und Map-Pakete per SFTP hoch; die Dateien sind oft größer als 100 MB.

Skript vor der Installation prüfen#

Ein Skript läuft auf dem Server mit vollem Zugriff auf dessen Daten, Datenbank und Spieler. Prüfen Sie vor dem Start mindestens:

  • Quelle: das offizielle GitHub des Autors, das Cfx.re-Forum, der Cfx Marketplace oder Tebex. Keine beliebigen Links von Discord.
  • Unlesbarer Code in einem ansonsten offenen Skript (lange Folgen sinnloser Zeichen, load( mit heruntergeladenem Text). Kostenpflichtige Skripte sind durch Asset Escrow verschlüsselt, aber ein frei verfügbares Skript sollte solchen Code nicht enthalten.
  • Senden von Daten an andere Stellen: PerformHttpRequest-Aufrufe an Adressen, die nichts mit dem Skript zu tun haben.
  • Neue Admin-Befehle, die die README nicht erwähnt.

Wenn FiveM für eine Resource prohibited logic meldet, enthält die Resource wahrscheinlich Schadcode, der möglicherweise auch andere Resources infiziert hat. Entfernen Sie sie und prüfen Sie Ihre übrigen Skripte.

Leistung der Resources#

  • Der Server gibt in der Konsole server thread hitch warning: timer interval of … milliseconds aus, wenn ein Server-Tick länger als 150 ms gedauert hat. Eine gelegentliche Meldung beim Start ist in Ordnung. Häufige Meldungen im laufenden Betrieb bedeuten, dass ein Skript den Server überlastet.
  • Finden Sie den Verursacher mit dem eingebauten Profiler: Geben Sie in der Serverkonsole profiler record 500 ein (zeichnet 500 Frames auf), warten Sie, dann profiler saveJSON profil.json. Die Datei wird in dem Ordner gespeichert, aus dem der Server gestartet wird. Laden Sie sie in der Registerkarte Dateien herunter und öffnen Sie sie in den Entwicklertools von Chrome (Registerkarte Performance › Profil laden).
  • Auf Spielerseite zeigt der Befehl resmon in der F8-Konsole die Last der einzelnen Resources. Er funktioniert nur im Entwicklermodus des Clients (sonst meldet er Access denied for command resmon).

Befehle für die Arbeit mit Resources#

BefehlWas er tut
refreshLädt die Liste der Resources aus dem Ordner neu. Nach dem Hochladen eines neuen Skripts erforderlich.
ensure <NAME>Startet eine Resource oder startet sie neu, falls sie läuft.
start <NAME>Startet eine Resource, die nicht läuft.
stop <NAME>Stoppt eine Resource.
restart <NAME>Startet eine laufende Resource neu. Eine gestoppte startet er nicht (Can't restart a stopped resource.).

Geben Sie diese Befehle ohne Schrägstrich in die Serverkonsole ein. In txAdmin finden Sie dasselbe in grafischer Form auf der Seite Resources.

Überprüfung#

  • Nach einem Neustart oder ensure zeigt die Konsole die Zeile Started resource muj_skript.
  • In txAdmin zeigt die Seite Resources die Resource als gestartet.
  • Das Skript funktioniert im Spiel, und in der Client-Konsole (F8) gibt es keine roten Fehler.

Fehlerbehebung#

Meldungen, die Sie hier nicht finden, schlagen Sie in Häufige Fehler des FiveM-Servers nach.

Couldn't find resource muj_skript.#

Der Server kennt keine Resource mit diesem Namen.

  • Der Name in ensure stimmt nicht mit dem Ordnernamen überein (Groß- und Kleinschreibung zählt; Vorsicht bei -main).
  • fxmanifest.lua liegt nicht direkt im Ordner (doppelter Ordner nach dem Entpacken).
  • Sie haben das Skript bei laufendem Server hochgeladen und kein refresh ausgeführt.
  • Der Ordner liegt außerhalb von resources oder in einem anderen resources als dem, das der Server verwendet (bei txAdmin ist es der Deployment-Ordner).

Could not find dependency ox_lib for resource muj_skript.#

Eine Abhängigkeit fehlt. Installieren Sie die in der Meldung genannte Resource (hier ox_lib) und setzen Sie ihr ensure über das Skript. Die Meldung Could not start dependency … bedeutet, dass die Abhängigkeit existiert, aber selbst nicht gestartet ist. Suchen Sie ihren Fehler in der Konsole.

Couldn't start resource muj_skript.#

Die Resource existiert, ist aber nicht gestartet. Der eigentliche Grund steht in der Regel direkt über dieser Meldung in der Konsole: eine fehlende Abhängigkeit, ein Manifestfehler, eine nicht erfüllte Bedingung (OneSync, Game Build) oder ein Lizenzfehler.

Eine Warnung, dass die Resource kein Manifest hat#

Im Ordner fehlt die fxmanifest.lua (oder die Datei hat einen anderen Namen, etwa fxmanifest.lua.txt aus Windows). Prüfen Sie den Dateinamen und suchen Sie nach einem doppelten Ordner.

SCRIPT ERROR: @muj_skript/server/main.lua:25: …#

Ein Fehler direkt im Code des Skripts. Nach dem Doppelpunkt folgen Datei, Zeilennummer und eine Beschreibung. Die häufigsten Ursachen: die falsche Framework-Einstellung in der config.lua, eine fehlende Datenbanktabelle (Sie haben das .sql nicht importiert), eine inkompatible Framework-Version. Fehler auf Spielerseite sehen Sie in der F8-Konsole.

You lack the required entitlement to use muj_skript#

Das kostenpflichtige Skript wurde mit einem anderen Cfx.re-Konto gekauft als dem, zu dem der License Key des Servers gehört. Verwenden Sie einen License Key desselben Kontos oder übertragen Sie das Skript im Portal auf das richtige Konto. Versuchen Sie auch einen Neustart des Servers.

Failed to verify protected resource muj_skript#

Die Dateien des verschlüsselten Skripts sind beschädigt, oder eine fehlt, typischerweise die .fxap. Laden Sie die gesamte Resource erneut hoch, einschließlich der .fxap-Datei. Manche SFTP-Programme übertragen versteckte Dateien (die mit einem Punkt beginnen) nicht; schalten Sie dort die Anzeige versteckter Dateien ein.

Error parsing script oder Failed to load script#

Das Skript verwendet Funktionen einer neueren Serverversion. Aktualisieren Sie die Artifacts (Anleitung).

Die Oberfläche des Skripts (Menü, Telefon, HUD) wird nicht angezeigt#

Die gebaute Weboberfläche fehlt. Laden Sie das Skript aus dem Bereich Releases statt als Quellcode herunter, oder bauen Sie die Oberfläche nach der README (npm install und npm run build auf Ihrem Computer) und laden Sie den erzeugten Ordner hoch.

Zusammenfassung

  • Eine Resource ist ein Ordner mit fxmanifest.lua; der Ordnername ist der Name der Resource. Ordner [in Klammern] sind nur Kategorien.
  • Release herunterladen, entpacken, -main entfernen, nach resources hochladen, SQL importieren und config.lua einstellen.
  • Fügen Sie ensure name in die server.cfg unter allen Abhängigkeiten ein. Ohne Neustart: refresh und ensure name in der Konsole.
  • Kostenpflichtige Skripte (Asset Escrow) laufen nur mit einem License Key desselben Cfx.re-Kontos und brauchen die .fxap-Datei.

Anleitungen durchsuchen