Dokumentation

Pepper Carwash

Waschanlagen aus GTA-eigenen Props – geführter Aufbau, Fertiganlagen, Baumodus oder Zonen – mit 6 Waschprogrammen, Wachs-Schutz, SB-Waschbox, kaufbaren Betrieben mit Tablet, Lager, Mitarbeitern und Aufgaben, Betriebs-Level 1–100 und NPC-Kunden für ESX, QBCore und Qbox.

Überblick

Mit Pepper Carwash bauen Admins Waschanlagen direkt im Spiel auf, und Spieler besitzen und betreiben sie. Eine Anlage entsteht mit /carwashadmin – per geführtem Aufbau, als Fertiganlage, frei im Baumodus oder als Zonen in einem vorhandenen Gebäude. Alles besteht aus Props, die zum Spiel gehören: kein MLO, keine Addon-Modelle.

Kunden fahren an die Einfahrt, wählen eines von 6 Waschprogrammen und werden gewaschen: In der Waschstraße wird das Fahrzeug durch die Stationen geführt, in der Portalanlage steht das Fahrzeug und das Portal fährt darüber. Eine Anlage ohne Besitzer läuft als Staatsanlage für alle. Steht sie zum Verkauf, kauft ein Spieler sie und führt sie über das Tablet des Betriebs: Firmenkonto, eigene Preise, Lager, Stationen, Personal, Level 1–100 mit Upgrades und NPC-Kunden, solange Personal im Dienst ist.

Hinweis: Der Reiter Standard-Waschanlagen legt auf Wunsch fünf bekannte Standorte an. Die Koordinaten sind Näherungen – jede Anlage vor Ort prüfen und mit Zonen neu setzen korrigieren.

Features

  • Vier Wege zu einer Anlage, alles im Spiel und ohne Restart: geführter Aufbau, Fertiganlage, Baumodus (Katalog mit 49 Teilen), Zonen in vorhandenen Gebäuden
  • Schnell-Aufbau (seit 1.1.0): nur die Spur setzen – Stationen, Schranke, Terminal, Wände, Technik und Schilder stellt das Script selbst auf, wo Platz ist
  • Selbst-Vermessung (seit 1.1.0): das Script liest die Maße der Modelle einmalig aus dem Spiel und stellt jedes Teil mittig und auf den Boden – auch eigene Props
  • Eigenes Logo auf dem großen Werbeschild (seit 1.1.0): Bild in den Ordner legen, in der Config eintragen, je Anlage wählbar oder abschaltbar
  • 3 Anlagentypen: SB-Waschbox, Portalanlage, Waschstraße – nur aus GTA-eigenen Props
  • 6 Waschprogramme (Basis, Schaum, Unterboden, Wachs, Premium, Showroom-Finish) und 6 Extras mit Partikeln, Ton und Fortschrittsanzeige
  • Wachs-Schutz hält ein Fahrzeug für die gekaufte Zeit sauber – liegt in der Datenbank, übersteht Garage und Neustart
  • SB-Waschbox: 1 bis 5 Minuten kaufen, Spritzpistole nehmen, selbst abspritzen
  • Staubsaugerplatz zum Selbersaugen und mit den Services Innenreinigung und Politur von Hand
  • Kaufbarer Betrieb: Kauf am Verkaufsschild, jeder Spieler höchstens eine Anlage (je Charakter oder je Lizenz), zurückverkaufen oder an einen Spieler übertragen
  • Tablet des Betriebs mit 14 Seiten: Übersicht, Aufgaben, Level & Upgrades, Prüfung, Finanzen, Preise, Lager, Stationen, Personal, Kundenkarten, Flotten, Statistik, Einstellungen, Hilfe
  • Lager und Verschleiß: Wasser, Shampoo und Wachs werden verbraucht, Stationen nutzen sich ab, Störungen stoppen die Spur, ein Techniker lässt sich rufen
  • Mitarbeiter: Spieler vor Ort einstellen, 5 Ränge mit Rechten, Dienst, Provision, Aufgaben- und Schichtlohn aus dem Firmenkonto – ohne Framework-Job
  • 8 Aufgaben, 7 davon als Minispiel: Störung beheben, Vorwäsche von Hand, Trocknen von Hand, Innenreinigung, Politur von Hand, Chemie nachfüllen, Walzen warten, Lieferung abholen – mit Leistungswertung von 80 bis 120 % für Lohn und XP
  • Betriebs-Level 1–100 mit 90 Upgrades (Stationen, Spuren, Tanks, Tempo, Werbung und mehr), Baumodus für Besitzer und Betriebsprüfungen auf Level 30, 60 und 90
  • NPC-Kunden, solange Personal im Dienst ist, Kundenkarten, Firmenkarten und Flottenverträge
  • Inaktivitäts-Regel: Wer 30 Tage nicht online war, verliert die Anlage (Vorwarnungen, Admin-Schutz, Wiederherstellen innerhalb von 14 Tagen – alles in der Config)
  • Admin-Werkzeuge im Spiel: Anlagen anlegen, ändern, verschieben, entfernen, Besitz, Protokoll, Diagnose
  • Eigene Oberfläche für Hinweistexte, Fortschrittsbalken, Benachrichtigungen, Dialoge und Menüs – einzige Abhängigkeit ist oxmysql
  • Optionale Inventar-Items (Kanister, Ersatzteile, Tablet, Kundenkarte) mit 5 fertigen Bildern
  • Anleitung im Spiel für Mitarbeiter, Besitzer und Kunden, dazu eine Spieler-Anleitung auf Deutsch und Englisch zum Kopieren ins Wiki
  • 6 Discord-Webhooks, Server- und Client-Exports
  • Deutsch & Englisch, Config, Sprachdateien, Bridges und Installationsdateien offen

Voraussetzungen

Abhängigkeit Pflicht/optional Wofür Link
FiveM-Server ab Build 7290 Pflicht Laut fxmanifest.lua (/server:7290) https://runtime.fivem.net/artifacts/fivem/
OneSync Pflicht Fahrzeuge, Props und NPC-Kunden auf dem Server https://docs.fivem.net/docs/scripting-reference/onesync/
oxmysql Pflicht 11 Tabellen pepper_carwash_* (MySQL 8 / MariaDB 10.x) https://github.com/overextended/oxmysql
ESX Legacy, QBCore oder Qbox Pflicht (sonst Standalone-Modus) Geld, Name, Gruppen (Config.Framework = 'auto' erkennt es) https://github.com/esx-framework/esx_core · https://github.com/qbcore-framework/qb-core · https://github.com/Qbox-project/qbx_core
ox_target oder qb-target optional SB-Waschbox zu Fuß, ohne Target ein Hinweistext mit Taste https://github.com/overextended/ox_target
Inventar optional Items für Kanister, Ersatzteile, Tablet, Kundenkarte (ox_inventory, qb-inventory, ps-inventory, qs-inventory, ESX-Inventar) https://github.com/overextended/ox_inventory

ox_lib wird nicht benötigt und nicht geladen.

Installation

  1. Ressource aus dem Cfx.re Portal (Granted Assets) herunterladen
  2. Nach resources/[pepper]/pepper_carwash entpacken – nicht umbenennen
  3. config/config.lua prüfen (Sprache, Währung, Preise), config/server.lua für Webhooks
  4. In der server.cfg nach den Abhängigkeiten starten:
ensure oxmysql
ensure es_extended        # bzw. qb-core / qbx_core
# ensure ox_inventory     # optional (Items) – bzw. qb-inventory / ps-inventory / qs-inventory
# ensure ox_target        # optional (SB-Waschbox zu Fuß) – bzw. qb-target
ensure pepper_carwash

add_ace group.admin pepper_carwash.admin allow
  1. Datenbank: Die elf Tabellen (pepper_carwash_*) werden beim Start automatisch angelegt. Ohne CREATE-Recht vorher install/pepper_carwash.sql importieren
  2. Server starten – in der Konsole erscheint eine grüne Zeile Pepper Carwash 1.1.0 gestartet (…)
  3. Im Spiel /carwashadmin → Reiter Neu öffnen und die erste Anlage anlegen

Läuft schon ein anderes Waschanlagen-Script (z. B. esx_carwash oder qbx_carwash), dieses stoppen oder Config.Commands.Main ändern – beide benutzen sonst /carwash.

Die vollständige Anleitung auf Deutsch und Englisch ist INSTALL.md in der Ressource.

Items (optional)

Ohne Items läuft alles: Kanister und Ersatzteile sind dann Zähler im Lager. Mit Items gibt der Großhandel die Ware ins Inventar, und ein Mitarbeiter räumt sie am Lager-Punkt ein.

Item Zweck Schalter
carwash_cans_shampoo, carwash_cans_wax, carwash_parts Kanister Shampoo / Wachs, Ersatzteile Config.Supply.UseItems ('auto')
carwash_tablet Benutzen = öffnet das Tablet der eigenen Anlage Config.Items.Tablet.Enabled (false)
carwash_card Kundenkarte: Benutzen = zeigt die eigenen Stempel Config.Items.Card.Enabled (false)

Vorlagen je Inventar und die Bilder liegen in install/items/ (ox_inventory, qb-inventory, ps-inventory, qs-inventory, ESX-Inventar). Schritte: Items eintragen → Bilder kopieren → Server neu starten. Die Konsolen-Zeile [pepper_carwash] Items: … zeigt, welches Inventar benutzt wird; fehlt ein Item, läuft der Betrieb ohne Items weiter.

Erster Test

  1. /carwashadmin → Reiter Neu → Geführter Aufbau, Zustand Staatsanlage wählen.
  2. Mit dem Schnell-Aufbau Einfahrt, Anfang und Ende der Waschstrecke und Ausfahrt setzen und speichern.
  3. Mit einem schmutzigen Fahrzeug an der Einfahrt halten, E drücken, ein Programm wählen und Wäsche starten.
  4. Im Fahrzeug bleiben, bis die Wäsche durch ist: Der Schmutz ist weg.
  5. /carwashadmin → Diagnose zeigt Version, Framework und die gewählten Modelle.

Konfiguration

Datei Inhalt
config/config.lua Sprache, Währung, Befehle, Admin-Gruppen, Tasten, Blips, Wäsche, SB-Waschbox, Wachs, Besitz, Wirtschaft, Level, NPC-Kunden, Trinkgeld, Kundenkarten, Flotten, Tablet, Inaktivität, Lager, Nachschub, Verschleiß, Baumodus, Grenzen
config/programs.lua Programme, Extras, Stationen mit Effekt- und Ton-Kandidaten, Spritzpistole
config/parts.lua Teilekatalog mit Modell-Kandidaten und Maßen
config/blueprints.lua · config/presets.lua die drei Baupläne · fünf bekannte Standorte (Näherungen)
config/staff.lua Ränge und Rechte, Löhne, Dienst, Aufgaben, Leistungswertung und Regeln der Minispiele
config/levels.lua · config/exams.lua Freischaltliste Level 1–100 mit Upgrade-Preisen · Betriebsprüfungen
config/server.lua Webhooks, Admin-ACE (wird nie an Clients gesendet)
locales/de · locales/en alle Texte

Wichtige Optionen:

Option Standard Bedeutung
Config.Locale 'de' Sprache (de / en), gilt für alle Spieler
Config.Framework 'auto' auto, esx, qbcore, qbox, standalone
Config.Economy.IncomeMultiplier 1.0 der Hauptregler: skaliert alles Geld von NPC-Kunden. Preise für Spieler ändert er nicht
Config.Economy.UpgradeMultiplier 1.0 skaliert alle Upgrade- und Deko-Preise
Config.Level.XpMultiplier 1.0 Tempo des Aufstiegs (2.0 ≈ halbe Dauer)
Config.Level.Exams.Enabled true Betriebsprüfungen auf Level 30 / 60 / 90
Config.Ownership.Scope 'character' eine Anlage je Charakter oder ('license') je Spieler
Config.Ownership.DefaultPrice 40.000 / 80.000 / 150.000 Kaufpreis-Vorschlag für SB-Waschbox / Portalanlage / Waschstraße
Config.Inactivity.Enabled / Days true / 30 Besitzer, die so lange nicht online waren, verlieren die Anlage; das Firmenkonto verfällt
Config.Npc.Enabled / Visible true / true NPC-Kunden an oder aus · Visible = false: Kunden nur als Buchung, ohne Fahrzeuge
Config.Wash.StaffRequired false true: Spieler können an Anlagen mit Besitzer nur waschen, wenn Personal im Dienst ist
Config.Wash.Guide 'auto' Führung des Fahrzeugs in der Waschstraße: 'task', 'speed', 'conveyor'
Config.SelfService.PricePerMinute / MaxMinutes 15 / 5 SB-Waschbox
Config.Interact.Mode 'auto' SB-Waschbox: ox_target, sonst qb-target, sonst Hinweistext + Taste · 'textui' = nie ein Target benutzen
Config.Interact.KeyMapping true Tasten über die FiveM-Tastenbelegung (umbelegbar) statt fester Tasten
Config.Notify.Mode 'pepper' eigene Benachrichtigungen · 'framework' = Benachrichtigung von ESX / QBCore / Qbox
Config.Inventory 'auto' Inventar für die optionalen Items erkennen oder fest einstellen · 'none' = nie eines benutzen
Config.Supply.UseItems 'auto' Kanister / Ersatzteile als Items, sobald Inventar und Items vorhanden sind · false = immer Zähler im Lager
Config.Effects.Sounds 'auto' 'nui' erzwingt die Töne der Oberfläche, 'off' schaltet Ton ab
Config.Dirt.Mode 'native' 'custom' = eigenes Schmutz-System über bridge/client/dirt.lua
Config.Signs.Enabled · Image true · 'pepper' Bild auf dem großen Werbeschild (Vorgabe: Pepper-Scripts-Logo). Eigenes Bild in html/img/ legen und in Config.Signs.Images eintragen · Enabled = false = Schild bleibt leer
Config.Measure.Enabled true Selbst-Vermessung der Modelle · false = es gelten nur die mitgelieferten Maße
Config.World.AutoRebuild 'ask' nach einem Update mit geändertem Bauplan: 'ask' = melden, ein Knopf im Admin-Menü stellt alle betroffenen Anlagen neu auf · 'auto' · 'off'
Config.Guide.MaxStep · AvoidRoads 0.6 · true Platzprüfung des Schnell-Aufbaus: erlaubte Unebenheit in Metern · nichts auf eine Straße stellen

Nach jeder Änderung die Ressource neu starten. In config/levels.lua den key eines Upgrades nach dem ersten Start nicht mehr ändern – unter diesem Namen steht der Kauf in der Datenbank.

Wirtschaft und Level

Config.Economy = {
    IncomeMultiplier = 1.0,
    UpgradeMultiplier = 1.0,
}

Programmpreise stehen in config/programs.lua, Löhne in config/staff.lua. IncomeMultiplier ist der Hauptregler für alles Geld von NPC-Kunden, Config.Level.XpMultiplier das Tempo des Aufstiegs.

Eine Anlage anlegen

/carwashadmin → Reiter Neu. Jeder Weg fragt zuerst nach Name, Kaufpreis und Zustand.

Weg Wofür Ablauf
Geführter Aufbau (empfohlen) jedes Grundstück Art und Ausbaustufe wählen → Im Spiel platzieren. Schnell-Aufbau (Vorgabe, seit 1.1.0): du setzt nur die Spur – Einfahrt, Anfang und Ende der Waschstrecke, Ausfahrt (Portalanlage 2 Punkte, SB-Waschbox 1) –, alles andere stellt das Script selbst auf, nur wo Platz ist, mit Zusammenfassung als Vorschau. Genau einstellen: ein Assistent fragt jeden Platz einzeln ab. Gebaut wird erst mit dem Speichern
Fertiganlage freie Fläche Bauplan und Ausbaustufe wählen, Vorschau drehen, setzen
Zonen vorhandenes Gebäude Einfahrt, Anfang und Ende der Waschstrecke und Ausfahrt markieren – ohne eigene Props
Baumodus Eigenbau aus Einzelteilen Ursprung setzen, dann Teile aus dem Katalog setzen, versetzen und entfernen

Zustand einer Anlage: Zu verkaufen (ein Verkaufsschild erscheint, dort kauft ein Spieler sie), Staatsanlage (für alle nutzbar, nicht käuflich, das Geld verschwindet) oder Gesperrt. Der Name der Anlage ist zugleich der Blip-Name.

Für jedes Teil steht in config/parts.lua eine Liste mit Modell-Kandidaten: Der Client nimmt das erste Modell, das dein Spiel kennt. Lädt keins, arbeitet die Station trotzdem – mit Effekten, Ton und Licht. /carwashadmin → Diagnose zeigt, welche Modelle gewählt wurden.

Ablauf: eine Wäsche

  1. Vorfahren: an der Einfahrt halten, E drücken, Programm und Extras wählen. Bei gesperrten Programmen steht der Grund (Level, fehlende Station, leeres Lager)
  2. Bezahlen: Mit Wäsche starten wird das Geld sofort abgebucht. Im Fahrzeug bleiben
  3. Wäsche: In der Waschstraße wird das Fahrzeug durch die Stationen geführt, in der Portalanlage fährt das Portal über das stehende Fahrzeug. Die Anzeige zeigt Programm, Station und Restzeit
  4. Fertig: Der Schmutz ist weg; ein Wachs-Programm hält das Fahrzeug für die angezeigte Zeit sauber
  5. Abbrechen: X zweimal drücken – ohne Erstattung. Bricht die Anlage selbst wegen einer Störung ab, bekommt der Kunde Geld zurück (alles, wenn weniger als die Hälfte gelaufen war, sonst die Hälfte)

Preise, Dauer, Abschluss, Wachs und Rechte entscheidet der Server; jeder Aufruf wird geprüft (Ort, Zustand, Zeit, Rate-Limit).

SB-Waschbox: 1 bis 5 Minuten wählen (15 $ je Minute), Spritzpistole nehmen, linke Maustaste halten. Sauber wird nur, was der Strahl trifft. Staubsaugerplatz: Selbst saugen kostet 10 $; Innenreinigung (60 $) und Politur von Hand (120 $) erledigt ein Mitarbeiter – nimmt niemand den Auftrag rechtzeitig an, gibt es das Geld zurück.

Einen Betrieb führen

  • Firmenkonto: Jede Wäsche, SB-Minute, Staubsauger-Nutzung und jeder Service wird darauf gebucht; Löhne, Nachschub und Techniker werden davon bezahlt. Tagesabrechnung und Buchungen stehen im Tablet
  • Preise: Der Besitzer legt jeden Preis zwischen 50 % und 130 % des Startpreises fest (Upgrades heben die Obergrenze). NPC-Kunden reagieren darauf
  • Lager: Wasser kommt per Tankwagen, Kanister und Ersatzteile holt ein Mitarbeiter beim Großhandel ab (bezahlte Aufgabe) oder lässt sie ab Level 7 mit 20 % Aufschlag liefern. Ein leerer Tank sperrt die Programme, die ihn brauchen
  • Verschleiß: Jede Wäsche nutzt die beteiligten Stationen ab. Unter 50 % Zustand kann eine Wäsche mit einer Störung abbrechen, unter 5 % ist die Station außer Betrieb. Mitarbeiter warten die Station, oder ein Techniker (400 $) repariert sie
  • Personal: 2 Personalplätze am Start, mit Upgrades bis zu 12. Provision (Standard 15 %), Aufgaben- und Schichtlohn kommen aus dem Firmenkonto
  • Level: Jede Wäsche und jede Aufgabe bringt dem Betrieb XP. Manche Level gelten sofort, andere sind Upgrades aus dem Firmenkonto; Stationen, Plätze und Spuren müssen danach vor Ort angebaut werden
  • Betriebsprüfungen: Auf Level 30, 60 und 90 muss das Team eine Prüfung bestehen – eine Liste aus Prüfungsaufgaben wie Kundenwäschen, Handarbeit, behobenen Störungen und Betriebstagen
  • NPC-Kunden kommen nur, solange jemand im Dienst ist (Standard). Geld und XP rechnet der Server; das sichtbare Fahrzeug ist nur Darstellung

Alle Werte sind Vorgaben aus der Config. Die Tablet-Seite Hilfe und die Dateien SPIELER-ANLEITUNG.md (Deutsch) und PLAYER-GUIDE.md (Englisch) in der Ressource erklären jede Aufgabe mit den Werten deines Servers.

Webhooks

In config/server.lua ('' = aus):

Schlüssel Inhalt
admin Anlagen angelegt, geändert, verschoben, entfernt; Eingriffe in Besitz und Firmenkonto
ownership Kauf, Verkauf, Übertragung, Umbenennung durch den Besitzer
inactivity Vorwarnungen und Freigaben wegen Inaktivität
milestones Level 10, 20, … 100 und bestandene Betriebsprüfungen
washes abgeschlossene Wäschen (optional, kann viel sein)
security Verdachtsfälle der Plausibilitätsprüfung

Framework-Anbindung

bridge/server/*.lua liefern Geld, Name und Gruppen je Framework, bridge/server/inventory.lua bindet die Inventare für die optionalen Items an, bridge/client/target.lua ox_target / qb-target für die SB-Waschbox, bridge/client/frameworks.lua die Benachrichtigung des Frameworks und bridge/client/dirt.lua ein eigenes Schmutz-System. Ohne Framework startet die Ressource im Standalone-Modus (roter Kasten in der Konsole); Geld ist dann das ox_inventory-Item money. Alle Bridges sind offen.

Befehle und Rechte

Befehl Wer Funktion
/carwash alle Besitzer und Mitarbeiter: Tablet der eigenen Anlage · alle anderen: Wegpunkt zur nächsten geöffneten Waschanlage
/carwashduty Mitarbeiter Dienst beginnen oder beenden (nur am Dienst-Punkt der eigenen Anlage)
/carwashadmin Admin Anlagen anlegen, ändern, verschieben, entfernen; Baumodus; Zonen-Editor; Besitz und Inaktivität; Protokoll; Diagnose
/cwdev Admin Prüfwerkzeug: einzelne Teile, Effekte und Töne ansehen, Modellmaße ausgeben, Effekt-Richtung und Spritzpistole einstellen

Alle Namen sind in Config.Commands änderbar (leerer Text = abgeschaltet). Konsolen-Befehle gibt es nicht.

Rechte

Admin ist, wer eine dieser Bedingungen erfüllt – geprüft wird bei jedem einzelnen Aufruf am Server:

  • ACE-Recht pepper_carwash.admin (Name in config/server.lua → ServerConfig.AdminAce) – der verlässliche Weg auf jedem Framework
  • eine Gruppe aus Config.AdminGroups (Standard admin, superadmin, god)
add_ace group.admin pepper_carwash.admin allow
add_ace identifier.license:DEINE_LIZENZ pepper_carwash.admin allow

Im Betrieb vergibt der Besitzer 5 Ränge (Standardnamen, je Anlage umbenennbar):

Rang Ab Betriebs-Level Darf zusätzlich
Aushilfe 1 Dienst und Aufgaben
Mitarbeiter 1 Lieferungen abholen, nachfüllen
Schichtleiter 10 Nachschub bestellen, Techniker rufen, Deko setzen
Betriebsleiter 25 Preise, Einstellen, Upgrades, Baumodus, Finanzen
Stellvertreter 60 Personal verwalten, ein- und auszahlen, Buchungen, Einstellungen

Verkaufen, übertragen und umbenennen kann nur der Besitzer.

Tasten

Taste Funktion
E Interagieren: Programm wählen, SB-Waschbox, Punkte des Betriebs, Aufgabe beginnen
X Wäsche abbrechen (zweimal drücken), Fortschrittsbalken abbrechen, Spritzpistole zurückhängen
Linke Maustaste sprühen (SB-Waschbox), halten in den Minispielen
W A S D, Leertaste Minispiele „Walzen warten“ und „Chemie nachfüllen“
ESC Minispiel abbrechen – die Aufgabe bleibt offen

„Interagieren“ und „Wäsche abbrechen“ sind FiveM-Tastenbelegungen: Jeder Spieler kann sie in den GTA-Einstellungen unter Tastenbelegung → FiveM umlegen, die Hinweise zeigen seine Taste. Config.Interact.DefaultKey und Config.Wash.AbortDefaultKey sind nur die Vorgabe für Spieler, die die Ressource noch nie geladen hatten.

Im geführten Aufbau zielst du mit R selbst statt den Vorschlag zu nehmen (Config.Build.AimKey, Control-ID 45).

Exports und Events

-- Server
exports.pepper_carwash:getWashes()
exports.pepper_carwash:getWash(id)
exports.pepper_carwash:getWashOf(src)                 -- { id, label, owner, grade }
exports.pepper_carwash:isOnDuty(src)
exports.pepper_carwash:addBalance(washId, amount, info)
exports.pepper_carwash:addXp(washId, amount, reason)  -- liefert die gutgeschriebenen XP
exports.pepper_carwash:hasWax(plate)                  -- Ablaufzeit oder false
exports.pepper_carwash:setWax(plate, minutes)
exports.pepper_carwash:removeWax(plate)

-- Client
exports.pepper_carwash:isWashing()
exports.pepper_carwash:nearestWash()
exports.pepper_carwash:openTablet()

Ereignisse am Server (mit AddEventHandler zuhören, nicht mit RegisterNetEvent): pepper_carwash:washed, pepper_carwash:renamed, pepper_carwash:ownerChanged, pepper_carwash:levelUp, pepper_carwash:examPassed.

FAQ

Die Ressource startet nicht, die Konsole nennt eine fehlende Abhängigkeit.

oxmysql muss vor pepper_carwash starten, OneSync muss an sein und der Server-Build 7290 oder neuer.

In der Konsole steht ein roter Kasten „standalone-Modus“.

Kein Framework erkannt: es_extended, qb-core oder qbx_core vor pepper_carwash starten oder Config.Framework fest setzen.

„Pepper Carwash startet noch“ bleibt stehen.

Der Server-Start ist nicht durchgelaufen: Datenbank nicht erreichbar (mysql_connection_string prüfen) oder der Benutzer darf keine Tabellen anlegen. Dann install/pepper_carwash.sql importieren.

Muss ich die SQL-Datei importieren?

Nein. Die elf Tabellen pepper_carwash_* entstehen beim Start automatisch. install/pepper_carwash.sql brauchst du nur ohne CREATE-Recht.

/carwashadmin meldet „Dafür fehlt dir die Berechtigung“.

add_ace group.admin pepper_carwash.admin allow in die server.cfg eintragen und den Server neu starten.

/carwash tut etwas anderes als erwartet.

Ein zweites Script (z. B. esx_carwash, qbx_carwash) benutzt den Befehl. Stoppen oder Config.Commands.Main ändern.

Brauche ich ein MLO oder Addon-Modelle?

Nein. Jedes Bauteil ist ein Prop, das zum Spiel gehört. Du kannst jedes Modell in config/parts.lua tauschen, z. B. gegen Props eines Karten-Pakets auf deinem Server.

Braucht es ox_lib, ein Target-Script oder ein Inventar?

Nein. Einzige Abhängigkeit ist oxmysql. ox_target / qb-target und ein Inventar sind optional und werden automatisch erkannt.

Läuft es mit den Waschanlagen des Spiels oder mit meinem MLO?

Ja, über Zonen: Du markierst Einfahrt, Waschstrecke und Ausfahrt, Props werden dabei nicht gesetzt.

Ein Teil sieht falsch aus, schwebt oder versinkt.

Zuerst /carwashadmin → Diagnose → Vermessung prüfen, sonst Neu vermessen. Danach Modell bzw. zOffset in config/parts.lua tauschen oder das Teil im Baumodus drehen. /cwdev → Teil ansehen zeigt Modell und Maße.

Das Fahrzeug fährt unsauber durch die Waschstraße.

Config.Wash.Guide auf 'speed' oder 'conveyor' stellen. Wird ein Fahrzeug als „zu groß“ abgelehnt, Config.Wash.MaxVehicle anpassen.

NPC-Fahrzeuge bleiben hängen.

Config.Npc.Visible = false: Der Betrieb läuft dann vollständig ohne sichtbare Fahrzeuge, die Kunden zählen weiter als Buchung.

Kein Ton bei der Wäsche.

Config.Effects.Sounds = 'nui' erzwingt die Töne der Oberfläche.

Ein Effekt ist nicht zu sehen oder sprüht in die falsche Richtung.

/cwdev → Effekt testen bzw. Effekt-Richtung einstellen, danach die Kandidaten oder die notierten Werte (rot = { x, y, z }) in config/programs.lua eintragen.

Büro-, Dienst- oder Lager-Punkt liegt in einer Wand.

/carwashadmin → Anlage → Punkte setzen.

Die Konsole meldet Items: … Lagerbetrieb ohne Items.

Kein Fehler: Es läuft kein unterstütztes Inventar oder die Items sind nicht eingerichtet. Der Betrieb läuft dann mit Zählern im Lager.

Gibt es passives Einkommen?

In der Standardeinstellung nicht: NPC-Kunden kommen nur, solange jemand im Dienst ist.

Was passiert mit Anlagen inaktiver Besitzer?

Wer 30 Tage nicht online war, verliert die Anlage, und das Firmenkonto verfällt. Gewarnt wird 7, 3 und 1 Tag vorher. Config.Inactivity.Enabled = false schaltet die Regel ab.

Was passiert bei einem Server-Neustart?

Laufende Wäschen enden und werden nach der Regel der Anlage erstattet. Anlagen, Firmenkonto, Lager, Level und Wachs-Schutz liegen in der Datenbank.

Nach dem Update steht in /carwashadmin „Bauplan wurde aktualisiert“.

Ein Update hat einen Bauplan geändert. Einmal „Alle betroffenen Anlagen neu aufstellen“ drücken, von selbst baut das Script nichts um (Config.World.AutoRebuild = 'ask').

Wie stelle ich auf Englisch um oder ändere Texte?

Config.Locale = 'en' in config/config.lua, die Sprache gilt für alle Spieler. Texte stehen in locales/de und locales/en.

Support

Discord → Ticket (Kategorie „Script Support“) unter https://discord.gg/6NaFJWKDYu, Kauf vorher mit /verify verknüpfen.

Permanent auf dem Dev-Server von Pepper Scripts getestet.

Changelog

Aktuelle Version: 1.1.0 (11.10.2026). Seitdem vorbereitet (noch nicht veröffentlicht): „Selbst zielen“ im geführten Aufbau liegt auf R statt H. Alle Änderungen stehen in CHANGELOG.md in der Ressource.


Fehler gefunden? Melde ihn im Discord.