__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:
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:
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
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_scriptsundserver_scriptsnehmen eine Liste. Das Singularclient_script 'file.lua'funktioniert immer noch für eine Datei.shared_scriptslädt auf beiden Seiten. Ein Framework-Import wie'@ox_lib/init.lua'geht dorthin.ui_pagezeigt auf die HTML-Datei der NUI. Jede Datei, die die Seite lädt (JS, CSS, Bilder, Schriftarten), muss infilessein, sonst wird sie nicht zum Spieler gesendet. Wildcards funktionieren:'html/**/*'.filesist auch, wo du Daten auflistest, die ein Client braucht, aber nicht ausführt, wie Meta-Dateien.author,descriptionundversionsind 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:
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:
refresh
ensure my_scriptrefresh 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_versionodergame. 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_versionnicht auf einen sehr alten Namen ein, der von einem 2019-Tutorial kopiert wurde, nur um das Alter des Skripts zu entsprechen. Verwendeceruleanund 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 →