Zurück

Von 0 Ahnung zum FiveM Script Profi.

Dieser Guide ist ein kompletter Lernpfad. Du lernst zuerst, wie ein Script denkt, baust dann einfache Interaktionen und endest mit einem strukturierten Profi-System, das du auf einem Server einsetzen kannst.

1. Verstehen

Single, Thread, Blöcke, Variablen, Bedingungen und die Denkweise hinter guten Scripts.

2. Bauen

Marker, Tasten, Fahrzeuge, Menüs, Geld, Items, Jobs, Funktionen und NUI-Interfaces.

3. Veröffentlichen

Debugging, Performance, Fehlerfälle, Anti-Spam, Testserver und Release-Checkliste.

Wie ein Developer denken

Ein gutes Script ist kein Stapel zufälliger Blöcke. Es ist ein Ablauf mit Regeln. Bevor du baust, beantwortest du vier Fragen.

Frage Beispiel Warum wichtig?
Wann passiert es? Beim Start, beim Marker, bei Taste E, nach einem Timer Verhindert doppelte Aktionen und Chaos.
Wer darf es nutzen? Alle, nur Mechaniker, nur Polizei, nur Besitzer Macht dein Script sicher und logisch.
Was passiert bei Erfolg? Auto spawnt, Geld wird abgezogen, Menü öffnet Der Spieler versteht den Ablauf.
Was passiert bei Fehler? Zu wenig Geld, falscher Job, kein Item, zu weit weg Dein Script wirkt professionell statt kaputt.
Merksatz: Baue erst den kleinsten funktionierenden Ablauf. Teste ihn. Danach erweiterst du ihn.

Den LP-DevTool Builder richtig benutzen

Der Builder nimmt dir Lua-Syntax ab. Deine Aufgabe ist, die Blöcke logisch zu platzieren und klare Werte einzutragen.

  1. Projekt erstellen: Nutze einen klaren Namen wie garage_system statt test123.
  2. Framework wählen: Stelle ESX oder QBCore so ein, wie dein Server es nutzt.
  3. Bereich wählen: Einmalige Dinge in Single, dauerhafte Prüfungen in Thread.
  4. Block einsetzen: Füge nur eine neue Funktion pro Testschritt hinzu.
  5. Generieren: Lade das Script auf deinen Testserver und prüfe die Konsole.
Anfängerfehler: Direkt 20 Blöcke bauen. Wenn dann etwas nicht geht, weißt du nicht, welcher Block schuld ist.

Single vs. Thread

Das ist die wichtigste Grundlage. Wenn du Single und Thread verstehst, verstehst du 70 Prozent aller Builder-Probleme.

Single

Läuft einmal beim Start. Ideal für feste Dinge.

  • Blips erstellen
  • NPCs spawnen
  • Startvariablen setzen
  • Eigene Funktionen definieren

Thread

Läuft dauerhaft. Ideal für Interaktionen.

  • Marker zeichnen
  • Distanz prüfen
  • Tasten abfragen
  • Hilfetexte anzeigen
[Single] Blip erstellen NPC spawnen [Thread] Distanz zum NPC prüfen Wenn nah dran: Hilfe-Text anzeigen Wenn E gedrückt: Menü öffnen

Block-Konfiguration meistern

Viele Fehler entstehen nicht durch den Builder, sondern durch falsche Werte. Modelnamen, Itemnamen, Jobnamen und Koordinaten müssen exakt passen.

Wert Gut Schlecht
Variablen garageOpen, playerInZone x, test
Fahrzeuge sultan, adder Sportauto
Items repairkit exakt wie in der Datenbank Repair Kit, wenn es so nicht heißt
Texte Drücke E, um die Garage zu öffnen. ok
  • Teste jeden neuen Block einzeln.
  • Benutze klare Namen.
  • Kopiere Koordinaten sauber aus dem Spiel.
  • Prüfe Item- und Jobnamen in deiner Server-Konfiguration.

Variablen: Das Gedächtnis deines Scripts

Variablen speichern Zustände. Ohne Variablen weiß dein Script nicht, ob ein Menü offen ist, ob ein Spieler bezahlt hat oder ob eine Aktion gerade läuft.

[Single] Variable setzen: repairBusy = false Variable setzen: selectedVehicle = "sultan" [Thread] Wenn Taste E gedrückt Wenn repairBusy == false repairBusy = true Aktion starten

Boolean

true oder false. Perfekt für offen/geschlossen oder aktiv/inaktiv.

Zahl

Preise, Timer, Mengen, Distanzen und Zähler.

Text

Fahrzeugmodelle, Itemnamen, Jobnamen oder Labels.

Profi-Regel: Wichtige Variablen immer im Single-Bereich initialisieren.

Standard System-Variablen

Der LP-DevTool Builder stellt dir einige Variablen automatisch zur Verfügung, die du jederzeit abfragen kannst:

Variable Inhalt Typ
player_pos Die aktuelle X, Y, Z Position des Spielers. Vector3
player_job Der aktuelle Job-Name (z.B. "police", "unemployed"). Text (Framework)
is_in_vehicle Ob der Spieler gerade in einem Fahrzeug sitzt. Boolean (Ja/Nein)
player_health Die aktuellen Lebenspunkte des Spielers. Zahl (Framework)
player_hunger Das aktuelle Hunger-Level (0-100). Zahl (Framework)
player_thirst Das aktuelle Durst-Level (0-100). Zahl (Framework)

If/Else: Entscheidungen treffen

Fast jedes gute Script besteht aus Bedingungen. Der Builder nimmt dir Syntax ab, aber du musst entscheiden, welche Bedingung sinnvoll ist.

Falls job == "police" DANN: Menü öffnen SONST: Benachrichtigung "Du bist kein Polizist"
Operator Bedeutung Beispiel
== ist gleich Job ist police
~= ist nicht gleich Spieler ist nicht im Auto
> größer als Geld ist mehr als 500
< kleiner als Distanz ist unter 2.0
Struktur-Tipp: Prüfe zuerst grobe Bedingungen wie Distanz. Danach Job, Geld oder Items.

Schleifen ohne Lag bauen

Schleifen wiederholen Dinge. Das ist mächtig, aber gefährlich, wenn du kein Warten einbaust.

Nie vergessen: Jede eigene While-Schleife braucht einen Warten-Block.
Solange missionActive == true Distanz berechnen Wenn Spieler am Ziel ist Belohnung geben missionActive = false Warten 500ms
  • Schleifen nur nutzen, wenn du Wiederholung brauchst.
  • Schleifen mit einer Variable beenden.
  • Wait höher setzen, wenn keine direkte Spielerinteraktion nötig ist.

Dein erstes Script: Fahrzeug per Marker spawnen

Ziel: Ein Spieler läuft zu einem Marker, sieht einen Hinweis, drückt E und bekommt ein Fahrzeug.

Thread Marker Taste E Auto spawnen
  1. Erstelle ein neues Script namens simple_car_marker.
  2. Ziehe Marker Schablone in den Thread-Bereich.
  3. Trage Koordinaten ein, an denen der Marker erscheinen soll.
  4. Ziehe Hilfe-Text in den Marker und schreibe: Drücke E, um ein Auto zu spawnen.
  5. Ziehe Taste gedrückt in den Marker und stelle Taste E ein.
  6. Ziehe Auto Spawnen in die Taste und nutze sultan.
  7. Generiere das Script, starte die Resource und teste genau diesen Ablauf.
[Thread] Marker Schablone Hilfe-Text "Drücke E..." Taste gedrückt E Auto Spawnen "sultan"

Vom Marker zum echten System

Ein Profi-Script hat Regeln: Wer darf es nutzen? Was kostet es? Was passiert, wenn etwas fehlt?

  1. Zugang: Prüfe zuerst den Job, z.B. nur mechanic.
  2. Kosten: Ziehe Geld ab, bevor die Aktion startet.
  3. Feedback: Zeige klare Nachrichten bei Erfolg und Fehler.
  4. Cooldown: Nutze eine Variable, damit Spieler nicht spammen.
Marker Taste E Falls job == "mechanic" Geld abziehen 500 ERFOLG: Auto reparieren FEHLER: "Du hast nicht genug Geld" SONST: "Nur Mechaniker können das nutzen"

Eigene Funktionen: Nicht wiederholen

Wenn du denselben Ablauf mehr als einmal brauchst, baue ihn als Funktion. Das macht dein Script kürzer und wartbarer.

  1. Ziehe Eigene Funktion in den Single-Bereich.
  2. Nenne sie klar, z.B. OpenGarageMenu oder RewardPlayer.
  3. Packe wiederverwendbare Blöcke hinein.
  4. Nutze im Thread nur noch Funktion aufrufen.
[Single] Funktion OpenGarageMenu Menü öffnen [Thread] Marker -> Taste E -> Funktion OpenGarageMenu aufrufen

ESX & QBCore richtig einsetzen

Framework-Blöcke machen aus kleinen Aktionen echte Server-Systeme. Damit nutzt du Jobs, Geld, Items und Menüs.

Jobs

Polizei-, Mechaniker-, Medic- oder Fraktionssysteme.

Geld

Shops, Garagengebühren, Reparaturkosten oder Belohnungen.

Items

Schlüssel, Lizenzen, Repairkits oder Quest-Gegenstände.

Wichtig: Item-, Job- und Accountnamen müssen exakt zu deinem Server passen.

NUI: Menüs und Web-Interfaces

NUI nutzt du für eigene Interfaces: Shops, Tablets, Admin-Panels, HUDs oder Auswahllisten.

  1. Baue zuerst den Lua-Auslöser: Marker, Taste oder Command.
  2. Erstelle im NUI Builder einen Container als Hauptfenster.
  3. Füge Texte, Buttons, Bilder oder Inputs hinzu.
  4. Verbinde Buttons mit Lua-Callbacks.
  5. Teste zuerst Öffnen und Schließen, danach erst komplexe Aktionen.
Profi-Tipp: Ein NUI sollte nie ohne Schließen-Option öffnen.

Debugging: Fehler schnell finden

Profi sein heißt nicht, keine Fehler zu machen. Profi sein heißt, Fehler schnell zu finden.

Problem Wahrscheinliche Ursache Prüfung
Marker erscheint nicht Falsche Koordinaten oder Block nicht im Thread Koordinaten und Bereich prüfen
Taste reagiert nicht Tastenblock nicht im Marker oder falsche Taste Hilfe-Text daneben setzen
Item/Geld geht nicht Falscher Framework-Modus oder Itemname ESX/QBCore und Datenbanknamen prüfen
Script laggt Thread ohne sinnvollen Wait Warten-Block und Distanzlogik prüfen
  • Teste immer auf einem Testserver.
  • Lies Client- und Server-Konsole nach dem Start.
  • Wenn etwas kaputt ist, entferne die letzte Änderung und teste erneut.
  • Baue Benachrichtigungen als Kontrollpunkte ein.

Performance: Der 0ms-Check

Jeder Thread kostet Leistung. Ein sauberer Thread arbeitet nur schnell, wenn der Spieler nah an einer Interaktion ist.

Wenn Spieler weit weg ist: Warten 1000ms Wenn Spieler in der Nähe ist: Marker zeichnen Taste prüfen Warten 0-5ms
  • Distanz zuerst berechnen, teure Aktionen danach.
  • Marker nur zeichnen, wenn der Spieler nah genug ist.
  • Keine schweren Aktionen dauerhaft pro Frame ausführen.
  • Große Systeme in Funktionen aufteilen.

Release-Checkliste für Profi-Scripts

  • Resource startet ohne Fehler in Server- und Client-Konsole.
  • Marker, Blips und NPCs erscheinen nur einmal.
  • Jede Interaktion hat Feedback bei Erfolg und Fehler.
  • Jobs, Items, Geld und Framework-Auswahl passen zum Server.
  • Threads haben sinnvolle Waits.
  • Spieler können Aktionen nicht spammen oder doppelt auslösen.
  • Du hast falschen Job, zu wenig Geld und fehlendes Item getestet.

Baue ein komplettes Profi-System

Projekt: Mechaniker-Reparaturpunkt mit Job-Prüfung, Kosten, Progressbar, Reparatur und Fehlerfeedback.

  1. Single: Setze repairBusy = false und erstelle optional einen Blip.
  2. Thread: Baue einen Marker an der Werkstatt.
  3. Im Marker: Zeige Drücke E, um dein Fahrzeug zu reparieren.
  4. Bei Taste E: Prüfe, ob der Spieler im Fahrzeug sitzt.
  5. Prüfe Job mechanic oder ob genug Geld vorhanden ist.
  6. Setze repairBusy = true, spiele Progressbar ab.
  7. Repariere das Fahrzeug, ziehe Geld ab, zeige Erfolgsmeldung.
  8. Setze repairBusy = false und teste alle Fehlerfälle.
Marker Werkstatt Taste E Falls repairBusy == false Falls Spieler im Fahrzeug Geld abziehen 500 Progressbar 5000ms Auto reparieren Benachrichtigung Erfolg
Wenn du dieses Projekt sauber bauen kannst, verstehst du die wichtigsten Grundlagen für Garagen, Shops, Job-Systeme, Missionen und interaktive Server-Features.

Jetzt im Builder umsetzen

Lies nicht nur passiv. Baue jedes Kapitel einmal nach, ändere Werte und beobachte, was passiert.

Zum Builder wechseln