__resource.lua zu fxmanifest.lua: Wie man ein altes Skript konvertiert

Altes FiveM-Skript verwendet noch __resource.lua und zeigt eine veraltete Warnung? Wie man es zu fxmanifest.lua mit fx_version, game, lua54, ui_page und files konvertiert.

Du startest ein altes Skript und die Konsole warnt, dass es immer noch __resource.lua verwendet, was veraltet ist. Das Skript kann immer noch laufen, aber es steckt im alten Manifest-Format fest und kann neuere Optionen wie Lua 5.4 nicht verwenden. Diese Anleitung konvertiert es in wenigen Minuten zu fxmanifest.lua.

Was sich geändert hat

Jede Ressource braucht ein Manifest, das FiveM mitteilt, welche Dateien geladen werden sollen. Das alte Format war __resource.lua. Das aktuelle Format ist fxmanifest.lua. Die Direktiven, die du kennst (client_script, server_script, ui_page, files), sind gleich. Was sich ändert, ist der Header.

Ein altes Manifest sieht so aus:

lua
resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'

client_script 'client.lua'
server_script 'server.lua'

ui_page 'html/index.html'
files {
    'html/index.html',
    'html/script.js',
    'html/style.css',
}

Der neue Header

Ersetze die resource_manifest_version-Zeile mit zwei Zeilen:

lua
fx_version 'cerulean'
game 'gta5'

fx_version ist erforderlich. Es wählt das Manifest-Verhalten, und cerulean ist die Version, die aktuelle Skripte verwenden. game 'gta5' sagt, dass die Ressource für GTA V ist. Die alte UUID in resource_manifest_version wird durch fx_version ersetzt: du musst sie nicht zu einem bestimmten alten Versionsnamen übersetzen, lösche sie einfach.

Die vollständig konvertierte Datei

lua
fx_version 'cerulean'
game 'gta5'

lua54 'yes'

author 'Your name'
description 'What the resource does'
version '1.0.0'

client_scripts {
    'client.lua',
}

server_scripts {
    'server.lua',
}

ui_page 'html/index.html'

files {
    'html/index.html',
    'html/script.js',
    'html/style.css',
}

Notizen zu jedem Teil:

  • client_scripts und server_scripts nehmen eine Liste. Das Singular client_script 'file.lua' funktioniert immer noch für eine Datei.
  • shared_scripts lädt auf beiden Seiten. Ein Framework-Import wie '@ox_lib/init.lua' geht dorthin.
  • ui_page zeigt auf die HTML-Datei der NUI. Jede Datei, die die Seite lädt (JS, CSS, Bilder, Schriftarten), muss in files sein, sonst wird sie nicht zum Spieler gesendet. Wildcards funktionieren: 'html/**/*'.
  • files ist auch, wo du Daten auflistest, die ein Client braucht, aber nicht ausführt, wie Meta-Dateien.
  • author, description und version sind optional und nur informativ.

Lua 5.4

lua54 'yes' lässt die Ressource auf Lua 5.4 laufen. Viele aktuelle Ressourcen benötigen es. Es für ein altes Skript einzuschalten ist normalerweise sicher, aber überprüfe zwei Dinge: Ein Skript, das auf altem Lua 5.3-Verhalten beruht, kann einen kleinen Fix benötigen, und Skripte, die ox_lib verwenden, benötigen Lua 5.4 aktiviert. Lasse es weg, wenn sich das alte Skript anders damit verhält, und teste es.

Karten, Datendateien und gestreamte Assets

Wenn das alte Manifest data_file-Zeilen für Fahrzeug- oder Waffen-Meta hat, behalte sie. Sie haben die gleiche Syntax in fxmanifest.lua:

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

data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'

Gestreamer Modelle und Texturen in einem stream-Ordner brauchen keinen Eintrag überhaupt. Für eine Karten-nur-Ressource füge auch this_is_a_map 'yes' hinzu.

Lösche die alte Datei

Nach der Konvertierung lösche __resource.lua aus dem Ordner. Beide Dateien im Ort zu lassen, verwirrt jeden, der den Server später wartet, und nur eine von ihnen sollte die Ressource beschreiben.

Dann starte die Ressource neu:

text
refresh
ensure my_script

refresh ist erforderlich, weil sich das Manifest geändert hat. Wenn das Manifest einen Fehler hat, startet die Ressource nicht: Siehe Couldn't start resource, um den Fehler über dieser Zeile zu lesen.

Häufige Fehler nach der Konvertierung

  • Ein fehlendes fx_version oder game. Das Manifest wird abgelehnt.
  • Ein fehlendes Komma innerhalb { }. Jeder Eintrag in einer Liste wird durch ein Komma getrennt.
  • Fehlende Dateien aus files. Die NUI lädt, aber Bilder oder Skripte sind leer, weil die Seite nach etwas fragte, das nicht gesendet wurde. Überprüfe die F8-Konsole und die NUI-Devtools auf fehlgeschlagene Anfragen.
  • Eine Abhängigkeit, die nicht deklariert ist. Füge dependency 'ox_lib' hinzu, wenn das Skript es verwendet, damit die Startreihenfolge überprüft wird. Siehe Could not find dependency.

Achtung: Stelle fx_version nicht auf einen sehr alten Namen ein, der von einem 2019-Tutorial kopiert wurde, nur um das Alter des Skripts zu entsprechen. Verwende cerulean und behebe alles, das bricht.

Checkliste

Symptom Behebung
Konsole warnt vor __resource.lua Erstelle fxmanifest.lua, lösche die alte Datei
resource_manifest_version-Zeile Ersetze mit fx_version 'cerulean' und game 'gta5'
NUI leer nach Konvertierung Liste jede NUI-Datei unter files auf und behalte ui_page
ox_lib-Funktionen fehlen Füge lua54 'yes' und das @ox_lib/init.lua gemeinsame Skript hinzu
Ressource nicht gefunden nach der Änderung Führe refresh aus, dann ensure
Ressource startet nicht Lese die Zeilen über Couldn't start resource

Kurze Antworten

Wird __resource.lua noch unterstützt?

FiveM liest es immer noch für alte Ressourcen, aber es ist veraltet und druckt eine Warnung. Neue Funktionen wie lua54 existieren nur in fxmanifest.lua, daher konvertiere es.

Welche fx_version sollte ich verwenden?

cerulean ist die gebräuchliche Wahl heute. Es ist die Version, die die meisten aktuellen Skripte deklarieren, und es funktioniert auf einem aktuellen Server-Artefakt.

Muss ich resource_manifest_version behalten?

Nein. fx_version ersetzt es. Lösche die resource_manifest_version-Zeile, wenn du konvertierst.

Scripts ohne dieses Problem

Clothing DesignerDesigne Kleidung direkt in FiveM — Pinsel, Ebenen, Bildimport und KI — und trag sie dann.Script ansehen →Drag RopeZieh Spieler an einem Seil hinter dir her und bind sie an Fahrzeuge, mit Live-Seillänge.Script ansehen →Item Creator V2Erstelle nutzbare Items mit Animationen, Props, Effekten und mehr — ganz ohne Code.Script ansehen →

Weiterlesen