Dokumentation

Pepper Trucking

LKW-Karriere mit Frachtbörse, echten Anhängern, Skill-Baum, eigenen LKW, Konvois und Spedition mit KI-Fahrern – ESX Legacy.

Überblick

Pepper Trucking macht aus dem LKW-Job einen Beruf für ESX Legacy: Die Frachtbörse bietet Aufträge passend zu Level, Skills und LKW – vom Paket im Kastenwagen bis zum Transformator auf dem Schwerlastanhänger. Du kuppelst echte Anhänger an, schonst die Fracht, lieferst pünktlich und parkst sauber ein. Wer aufsteigt, kauft eigene LKW, fährt im Konvoi und baut eine Spedition auf, deren KI-Fahrer auch dann Touren fahren, wenn niemand online ist.

  • Frachtbörse mit 24 Frachtarten: Gefahrgut, Kühlware, Schwertransporte, Eilaufträge, Touren mit bis zu 3 Entladestellen
  • Echte Anhänger mit Ankuppeln, Abstellen und Einpark-Bewertung
  • 50 Level, Reputation, 1–5 Sterne pro Auftrag, Skill-Baum mit 8 Skills, tägliche und wöchentliche Challenges
  • Eigene LKW mit Garage, Verschleiß und Werkstatt, Konvoi für bis zu 4 Fahrer
  • Wiegestationen und Kraftstoff (eingebaut oder dein Tank-Script)
  • Spedition mit Personal, Rängen, Firmenkonto, 4 Depots und KI-Fahrern
  • Frachtort-Editor und Adminpanel im Fahrer-Tablet (F9), Deutsch und Englisch

Voraussetzungen

Abhängigkeit Pflicht/optional Wofür Link
FiveM-Server-Build 7290+ mit OneSync Pflicht in fxmanifest.lua als /server:7290 und /onesync hinterlegt https://docs.fivem.net/docs/server-manual/setting-up-a-server/
ESX Legacy 1.9+ (es_extended) Pflicht Spieler, Geld (Bankkonto), Admin-Gruppen https://github.com/esx-framework/esx_core
oxmysql Pflicht Datenbank (Karriere, LKW, Spedition, Frachtorte) https://github.com/overextended/oxmysql
LegacyFuel, ox_fuel oder cdn-fuel optional übernimmt Verbrauch und Tanken statt der eingebauten Tankanzeige –

ox_lib, ox_target und ox_inventory werden nicht benötigt. Ein ESX-Job ist nicht nötig – jeder Spieler darf fahren. Pepper Trucking läuft nur mit ESX Legacy (kein QBCore/Qbox).

Installation

  1. Ressource im Cfx.re-Portal → Granted Assets herunterladen.
  2. Nach resources/[pepper]/pepper_trucking entpacken. Den Ordnernamen pepper_trucking nicht umbenennen – andere Ressourcen rufen die Exports über exports.pepper_trucking auf.
  3. In der server.cfg nach den Abhängigkeiten eintragen:
ensure oxmysql
ensure es_extended
ensure pepper_trucking
  1. Datenbank: Mit Config.Database.AutoInstall = true (Standard) legt die Ressource fehlende Tabellen beim Start selbst an (15 Tabellen mit Präfix truck_). Manuell geht es über sql/install.sql. Beim ersten Start werden 33 Standard-Frachtorte aus config/locations.lua angelegt (Config.Database.SeedDefaultLocations).
  2. Adminrechte vergeben (Details unter „Befehle und Rechte“), z. B.:
add_ace group.admin pepper_trucking.admin allow

Pepper Trucking nutzt keine Inventar-Items – es müssen keine Items oder Bilder angelegt werden.

Erster Test

  1. Server starten und in der Konsole prüfen, dass pepper_trucking ohne Fehler startet.
  2. Zum Speditionshof am Hafen fahren (LKW-Symbol auf der Karte) und am Terminal E drücken.
  3. Ein Mietfahrzeug wählen, mit F9 das Tablet öffnen und einen Auftrag aus der Frachtbörse annehmen.
  4. Beladen, zur Entladestelle fahren und abliefern – danach erscheint die Abrechnung mit Sternen, Lohn und XP.
  5. Als Admin im Tablet unter Admin → Frachtorte die Standard-Frachtorte einmal prüfen und bei Bedarf korrigieren.

Konfiguration

Alle Einstellungen liegen offen in config/ (per Asset Escrow lesbar und editierbar):

Datei Steuert
config/config.lua Sprache, Datenbank, Depots, Tablet, Frachtbörse, Andocken/Einparken, Kraftstoff, Wiegestationen, Vergütung, Schäden, Bewertung, Reputation, Garage, Konvoi, Spedition, KI-Fahrer, Admin
config/trucks.lua LKW (Klasse, Typ, Last, Tank, Verbrauch, Preis, Miete, Voraussetzungen), Tuning-Stufen, Lackfarben
config/cargo.lua Frachtarten (Warengruppe, Anhänger, Gewicht, Wert, Zerbrechlichkeit, Gefahrgut, Kühlung, Skills)
config/skills.lua Skill-Baum (Stufen, Mindestlevel, Wirkung)
config/levels.lua 50 Level, Titel, XP je Auftrag, Levelprämien
config/locations.lua Standard-Frachtorte (nur beim ersten Start übernommen)
config/stations.lua LKW-Tankstellen und Wiegestationen
config/challenges.lua tägliche und wöchentliche Challenges
config/server.lua optionaler Discord-Webhook für Logs (nur serverseitig geladen)
locales/de.lua, locales/en.lua alle Texte im Spiel und im Tablet

Allgemein und Datenbank

Config.Locale = 'de'
Config.TimeSource = 'game'
Config.Database = { AutoInstall = true, SeedDefaultLocations = true, SaveInterval = 300 }
Option Standard Beschreibung
Config.Locale 'de' Sprache (de oder en)
Config.Debug false ausführliche Logs in der Server-Konsole
Config.TimeSource 'game' Tageszeit für Nacht- und Eilaufträge: 'game' (Spielzeit) oder 'server'
Config.Resets.DailyHour 5 Uhrzeit (Serverzeit) des täglichen Challenge-Resets
Config.Database.AutoInstall true fehlende Tabellen aus sql/install.sql anlegen
Config.Database.SaveInterval 300 Sekunden zwischen Zwischenspeicherungen

Depots und Tablet

Das erste Depot (port, Hafen Los Santos) ist der Haupthof mit Werkstatt. route68, sandy und paleto sind kaufbare Nebendepots mit Näherungskoordinaten und AllowShiftStart = false – sie zählen für die Spedition (KI-Plätze, Stellplätze). Schichten starten dort erst, wenn du die Koordinaten im Spiel geprüft und AllowShiftStart = true gesetzt hast.

Option Standard Beschreibung
Config.Tablet.Command 'trucktablet' Befehl für das Tablet
Config.Tablet.DefaultKey 'F9' Standardtaste (in den GTA-Tastenbelegungen änderbar)
Config.Tablet.AllowAnywhereOnDuty true Tablet im Dienst überall öffnen
Config.DepotRules.MaxStartDistance 80.0 Dienstbeginn/Werkstatt nur so nah am Terminal (serverseitig geprüft)

Frachtbörse und Vergütung

Config.Freight = { BoardSize = 8, RefreshMinutes = 12, MinDistance = 700.0, MaxDrops = 3, ... }
Config.Economy = { PayAccount = 'bank', GlobalMultiplier = 1.0, BasePerKm = 90, PerTonKm = 4.0, ... }
Option Standard Beschreibung
Config.Freight.BoardSize 8 Angebote je Fahrer
Config.Freight.RefreshMinutes 12 automatische Erneuerung der Börse
Config.Freight.MinDistance 700.0 Mindestluftlinie Beladung → Entladung (Meter)
Config.Freight.MaxLate 1800 Sekunden nach Fristende, ab denen der Auftrag scheitert
Config.Economy.PayAccount 'bank' Konto für die Auszahlung
Config.Economy.GlobalMultiplier 1.0 Faktor auf alle Vergütungen
Config.Economy.BasePerKm 90 Lohn je Straßen-Kilometer
Config.Economy.PerTonKm 4.0 Lohn je Tonne und Kilometer
Config.Economy.RentalFee 0.15 Miete des Mietfahrzeugs (Anteil der Vergütung)
Config.Economy.CancelFee 250 Vertragsstrafe beim Abbrechen

Kraftstoff und Wiegestationen

Config.Fuel.System = 'internal' nutzt die eingebaute Tankanzeige und die LKW-Tankstellen. Mit 'legacyfuel', 'ox_fuel' oder 'cdn-fuel' übernimmt dein Script Verbrauch und Tanken; Pepper Trucking setzt dann nur den Startwert beim Ausparken. 'none' schaltet Kraftstoff ab.

Option Standard Beschreibung
Config.Fuel.System 'internal' internal, legacyfuel, ox_fuel, cdn-fuel oder none
Config.Fuel.PricePerLiter 2 Literpreis an den LKW-Tankstellen
Config.Weigh.Enabled true Wiegestationen an/aus
Config.Weigh.LegalLimit 40 Tonnen – darüber ist eine Sondergenehmigung nötig
Config.Weigh.SkipFine 1500 Strafe, wenn du eine geöffnete Station umfährst und kontrolliert wirst
Config.Weigh.OverweightFine 5000 Strafe für Übergewicht ohne Genehmigung

Garage, Konvoi, Spedition und KI-Fahrer

Option Standard Beschreibung
Config.Garage.MaxTrucks 5 eigene LKW je Spieler
Config.Garage.SellFactor 0.65 Wiederverkauf: Neupreis × Faktor × Zustand
Config.Convoy.MaxMembers 4 Fahrer pro Konvoi
Config.Company.AllowPurchase true Spieler dürfen die Spedition kaufen
Config.Company.PurchasePrice 1500000 Kaufpreis der Spedition
Config.Company.MaxEmployees 40 maximale Mitarbeiterzahl
Config.AI.Enabled true KI-Fahrer an/aus
Config.AI.JobMinutes 30 Echtzeit-Minuten je KI-Tour
Config.AI.MaxCatchUpJobs 16 verpasste Touren je Fahrer, die nach einem Neustart nachgeholt werden

Discord-Webhook

In config/server.lua (wird nie an Clients gesendet):

ServerConfig = {
    LogWebhook = '',               -- leer = aus
    LogWebhookName = 'Pepper Trucking',
}

Spielablauf

  1. Schicht starten am Terminal: Mietfahrzeug, eigenen LKW ausparken oder – als Angestellter – einen Firmen-LKW.
  2. Frachtbörse im Tablet: Auftrag wählen. Überladene Frachten bieten eine Sondergenehmigung an, Konvoi-Leiter können Aufträge teilen.
  3. Beladen: Solo-LKW in der Rampe anhalten – Sattelzug rückwärts an den markierten Anhänger setzen (kuppelt automatisch an).
  4. Fahren: Frist im Blick, Fracht schonen, geöffnete Wiegestationen anfahren, rechtzeitig tanken.
  5. Abliefern: Anhänger in der Zone abstellen (Pfeil = Ausrichtung) – an der letzten Entladestelle zählt das Einparken.
  6. Abrechnung: Sterne, Vergütung mit allen Boni und Abzügen, XP, Reputation – danach Skills verteilen und den nächsten LKW anpeilen.
Spezialfracht Worauf du achten musst
Zerbrechlich empfindlicher bei Stößen und harten Manövern
Gefahrgut Skill nötig – die Fracht kann zerstört werden
Kühlware Verspätung und Schäden unterbrechen die Kühlkette
Schwertransport Übergewicht – Sondergenehmigung an Wiegestationen
Eilauftrag knappe Frist, höherer Bonus (Skill nötig)
Tour bis zu 3 Entladestellen pro Auftrag

Frachtort-Editor

Tablet (F9) → Admin → Frachtorte: Belade- und Entladestellen anlegen oder korrigieren. Position und Ausrichtung kommen direkt vom angekuppelten Anhänger (Button oder /truckloc), dazu Warengruppen, Zufahrt, Radius, Vorschau auf der Karte und Teleport. Bis zu 150 Frachtorte (Config.Admin.MaxLocations). Frachtorte liegen in der Datenbank – config/locations.lua wird nur beim ersten Start übernommen, Updates der Ressource überschreiben deine Orte nie.

Im Adminpanel bearbeitest du Spieler auch offline, verschenkst LKW und schaltest Mietfahrzeuge frei; mit Config.Admin.RequireReason = true braucht jede Änderung eine Begründung und landet im Audit-Log.

Befehle und Rechte

Befehl / Taste Wer Was
F9 / /trucktablet alle Fahrer-Tablet – am Speditions-Terminal, im Dienst überall
E alle Terminal am Depot benutzen
Y / N (/truckconvoyyes, /truckconvoyno) alle Konvoi-Einladung annehmen / ablehnen
/truckloc Admins aktuelle Position (im LKW: Anhängerposition) in den offenen Frachtort-Entwurf übernehmen

Tasten kann jeder Spieler in den GTA-Einstellungen → Tastenbelegung → FiveM ändern.

Adminrechte: ESX-Gruppe aus Config.Admin.Groups (Standard admin, superadmin) oder ACE pepper_trucking.admin:

add_ace group.admin pepper_trucking.admin allow

Spedition: Rechte innerhalb der Firma (Einstellen, Kündigen, Ränge, Fuhrpark, KI, Finanzen) hängen am Rang in Config.Company.DefaultRanks, nicht an ESX-Jobs.

Exports und Events

Alle Exports sind serverseitig und nur lesend:

Export Rückgabe
GetTruckerData(src) Karriere und Statistiken eines Spielers
IsTruckerOnDuty(src) ist der Spieler im Dienst?
GetTruckerStatus(src) aktueller Status
GetTruckerJob(src) aktueller Auftrag
GetOnDutyTruckers() Liste der Fahrer im Dienst
GetPlayerTrucks(identifier) eigene LKW eines Spielers
GetTruckingCompany() Infos zur Spedition
IsTruckingEmployee(srcOrIdentifier) ist der Spieler Angestellter?
GetFreightLocations() alle Frachtorte
local onDuty = exports.pepper_trucking:IsTruckerOnDuty(source)

Es gibt bewusst keinen Export, mit dem andere Ressourcen Geld, XP oder Reputation erzeugen können.

FAQ

Die Ressource startet nicht oder meldet fehlende Abhängigkeiten.

Prüfe die Reihenfolge in der server.cfg: oxmysql und es_extended müssen vor pepper_trucking starten. Außerdem verlangt das Manifest Server-Build 7290+ und OneSync – ohne OneSync startet die Ressource nicht.

Die Tabellen fehlen in der Datenbank.

Lass Config.Database.AutoInstall = true oder importiere sql/install.sql manuell. Alle Tabellen beginnen mit truck_.

Läuft Pepper Trucking mit QBCore oder Qbox?

Nein. Die Ressource nutzt es_extended direkt und ist nur für ESX Legacy 1.9+ gebaut.

Brauchen Spieler einen ESX-Job?

Nein. Jeder darf eine Schicht starten; die Spedition (Personal, Ränge, Gehalt) läuft in der Ressource selbst.

Muss ich Items anlegen?

Nein. Pepper Trucking nutzt keine Inventar-Items und braucht weder ox_inventory noch Item-Bilder.

Der Admin-Bereich im Tablet fehlt.

Deine ESX-Gruppe muss in Config.Admin.Groups stehen (Standard admin, superadmin) oder du brauchst die ACE pepper_trucking.admin.

Ein Frachtort liegt ungünstig oder in einer Wand.

Fahre den Ort an und übernimm ihn im Frachtort-Editor neu – mit angekuppeltem Anhänger in Parkposition (Button oder /truckloc). Frachtorte liegen in der Datenbank, Änderungen in config/locations.lua greifen nach dem ersten Start nicht mehr.

Der Anhänger wird nicht als angekuppelt erkannt.

Setze die Sattelzugmaschine rückwärts an den markierten Anhänger, bis er ankuppelt, und zieh ihn ein paar Meter von der Rampe weg (Config.Docking.CoupleMoved = 4.0).

Warum ist mein Auftrag gescheitert?

Die Lieferfrist wurde um mehr als Config.Freight.MaxLate (1800 Sekunden) überschritten, der Anhänger war länger als Config.Docking.LostTimeout (900 Sekunden) weg oder die Fracht wurde zerstört.

Kollidiert F9 mit Pepper Taxi oder Pepper Bus?

Nein – Taxi nutzt F6, Bus F7. Jeder Spieler kann die Taste außerdem in den GTA-Tastenbelegungen ändern.

Ich nutze schon ein Tank-Script.

Stell Config.Fuel.System auf 'legacyfuel', 'ox_fuel' oder 'cdn-fuel'. Mit 'none' ist Kraftstoff ganz aus.

Kann ich Schichten an den Nebendepots starten?

Ja, nachdem du ihre Koordinaten im Spiel geprüft hast: Setze für das Depot in Config.Depots AllowShiftStart = true.

Verdienen KI-Fahrer auch, wenn niemand online ist?

Ja. Verpasste Touren werden nach einem Neustart nachgeholt (höchstens Config.AI.MaxCatchUpJobs = 16 je Fahrer). Ist das Firmenkonto leer, streiken die KI-Fahrer.

Wie ändere ich Texte?

Alle Texte stehen in locales/de.lua und locales/en.lua; die Sprache wählst du mit Config.Locale.

Wie viel Leistung braucht die Ressource?

Gemessen mit resmon: 0,00 ms im Leerlauf und 0,01 ms aktiv.

Kann eine andere Ressource Geld oder XP über Pepper Trucking auszahlen?

Nein, die Exports sind nur lesend. Vergütung passiert ausschließlich serverseitig.

Gehen beim Update meine Frachtorte oder Einstellungen verloren?

Frachtorte und Spielstände liegen in der Datenbank und werden nicht überschrieben. Sichere vor dem Update deine geänderten Dateien in config/ und locales/ und übertrage deine Anpassungen in die neue Version.

Support

Fragen und Fehler: Öffne ein Ticket in unserem Discord: https://discord.gg/6NaFJWKDYu – verknüpfe deinen Kauf vorher mit /verify.

Permanent auf dem Dev-Server von Pepper Scripts getestet.

Changelog

Aktuelle Version: 1.0.0 (27.09.2026) – erste Veröffentlichung. Alle Änderungen stehen in der Datei CHANGELOG.md im Ressourcenordner.


Fehler gefunden? Melde ihn im Discord.