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
- Ressource aus dem Cfx.re Portal (Granted Assets) herunterladen
- Nach
resources/[pepper]/pepper_carwashentpacken – nicht umbenennen config/config.luaprüfen (Sprache, Währung, Preise),config/server.luafür Webhooks- In der
server.cfgnach 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
- Datenbank: Die elf Tabellen (
pepper_carwash_*) werden beim Start automatisch angelegt. Ohne CREATE-Recht vorherinstall/pepper_carwash.sqlimportieren - Server starten – in der Konsole erscheint eine grüne Zeile
Pepper Carwash 1.1.0 gestartet (…) - 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
/carwashadmin→ Reiter Neu → Geführter Aufbau, Zustand Staatsanlage wählen.- Mit dem Schnell-Aufbau Einfahrt, Anfang und Ende der Waschstrecke und Ausfahrt setzen und speichern.
- Mit einem schmutzigen Fahrzeug an der Einfahrt halten, E drücken, ein Programm wählen und Wäsche starten.
- Im Fahrzeug bleiben, bis die Wäsche durch ist: Der Schmutz ist weg.
/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
- Vorfahren: an der Einfahrt halten,
Edrücken, Programm und Extras wählen. Bei gesperrten Programmen steht der Grund (Level, fehlende Station, leeres Lager) - Bezahlen: Mit Wäsche starten wird das Geld sofort abgebucht. Im Fahrzeug bleiben
- 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
- Fertig: Der Schmutz ist weg; ein Wachs-Programm hält das Fahrzeug für die angezeigte Zeit sauber
- Abbrechen:
Xzweimal 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 inconfig/server.lua→ServerConfig.AdminAce) – der verlässliche Weg auf jedem Framework - eine Gruppe aus
Config.AdminGroups(Standardadmin,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.