Dokumentation

Pepper Eats

Restaurants im Spiel anlegen und führen – Kochen mit sechs Minispielen, Personal, Kasse, Großhandel, Restaurant-Level 1–50 mit Upgrades, Aufträge für ruhige Zeiten und eine Liefer-App mit Fahrern, Bewertungen und Gutscheinen für ESX, QBCore und Qbox.

Überblick

Mit Pepper Eats legen Admins beliebig viele Restaurants direkt im Spiel an – mit /eatsadmin, ohne Neustart. Jedes Restaurant bekommt eine Werbetafel mit Logo und Namen, die den Ort für alle Spieler sichtbar macht, dazu Stationen wie Grill, Fritteuse, Ofen, Bar, Kasse, Lager und Stempeluhr. Ein Restaurant läuft entweder als Framework-Job (z. B. burgershot) oder ist kaufbar – dann kauft ein Spieler es an der Werbetafel und führt es selbst.

Gekocht wird mit sechs Minispielen; die Leistung bestimmt Qualität und Sterne des Gerichts und damit Preis und Wirkung. Personal, Löhne, Kasse, Rechnungen, Großhandel und Speisekarte laufen über das Chef-Tablet. Ein Restaurant-Level 1–50 mit Upgrades und ein Auftragsbrett halten Besitzer und Angestellte auch dann beschäftigt, wenn auf dem Server wenig los ist. Kunden bestellen über die Liefer-App – geliefert wird von freien Fahrern oder vom eigenen Personal, oder der Kunde holt selbst ab.

Features

  • Restaurants im Spiel anlegen, so viele wie nötig: Name, Farbe, Logo (13 mitgelieferte oder eigene Bild-URL), Vorlage, Betriebsart, geführte Platzierung von Tafel und Stationen
  • Werbetafel mit Logo und Namen (Bild im Spiel, kein Prop-Ersatz), Status „Geöffnet/Geschlossen“, Sterne je Level-Stufe; beleuchtet, Neon oder animiert per Upgrade
  • 5 Vorlagen: Burger, Pizzeria, Bar/Club, Café/Bäckerei und Frei – jede mit passenden Stationen und Rezepten
  • 45 Rezepte, 57 Zutaten, alles ox_inventory-Items mit fertigen Bildern (105 Items)
  • Wild-Rezepte: Wildburger, Kaninchen-Eintopf und Hirschragout – Zutaten im Großhandel, mit Pepper Hunting auch aus eigener Jagd; per Config.WildRecipes = false abschaltbar
  • 6 Minispiele: Schneiden, Grillen, Kneten, Einschenken, Mixen, Zusammenbauen – Qualität 0–100 und 1–5 Sterne
  • Wirkung: Hunger, Durst, Stress, Ausdauer- und Tempo-Boni, Alkohol mit Promille, Atemtest-Item und Abbau
  • Haltbarkeit: Zutaten und Speisen verderben, das Kühllager verlangsamt es
  • Chef-Tablet mit Übersicht, Aufträgen, Level & Upgrades, Personal, Speisekarte, Aktionen, Großhandel, Konto, Einstellungen und Bestenliste
  • Personal: 5 Ränge mit 9 Rechten, einstellen, befördern, entlassen, Löhne je Dienstzeit aus dem Geschäftskonto (mit AFK-Schutz)
  • Kasse: Bestellung zusammenstellen, Angebot an den Kunden (bar/Karte) oder Rechnung mit Zahlungsziel (/eatsbills)
  • Geschäftskonto mit Buchungsliste; bei Job-Restaurants optional das Firmenkonto (esx_addonaccount, qb-banking, Renewed-Banking, qb-management)
  • Großhandel: Lieferung ins Lager oder günstiger selbst am Großmarkt abholen
  • Restaurant-Level 1–50 mit 10 Stufen-Namen, Rezept-Freischaltungen, Menüs ab Level 5 und 8 Upgrades (Küche, Lager, Kühlraum, Personal, Speisekarte, Großhandel, Werbetafel, Auftragsbuch)
  • Persönliches Level 1–50 über alle Restaurants hinweg mit 10 Titeln und leichteren Minispielen
  • Auftragsbrett für ruhige Zeiten: Catering und Bürobestellungen an 32 Orten, Vorbereitung, Reinigung (Hygiene), Großmarkt-Fahrt, Werbung mit Flyern, Inventur – dazu eine Wochenaufgabe und Bonus-XP, wenn wenig los ist
  • Liefer-App (Befehl, Taste oder Tablet-Item): Restaurants entdecken, bestellen mit Treuhand, Lieferung oder Abholung, Trinkgeld, Fortschritt, bewerten
  • Küchenmonitor und Fahrer-Modus: annehmen, packen, Lieferbeutel, Wegpunkt, Übergabe; Personal hat 60 Sekunden Vorrang
  • Bewertungen für Restaurant und Fahrer, eine Antwort des Restaurants, Admin kann löschen
  • Gutscheine und Tagesangebote (ab Restaurant-Level 10), auch an der Kasse einlösbar
  • lb-phone-App: mit lb-phone erscheint „Pepper Eats“ automatisch als App auf dem Handy
  • Admin-Übersicht aller Restaurants (Level, Konto, Dienst, Bestellungen, Einnahmen, Bewertung, Hygiene) und Admin-Werkzeuge
  • 4 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 Stationen, Lieferungen und NPCs auf dem Server https://docs.fivem.net/docs/scripting-reference/onesync/
ESX Legacy, QBCore oder Qbox Pflicht Geld, Jobs, Status (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
oxmysql Pflicht 16 Tabellen pepper_eats_* (MySQL 8 / MariaDB 10.x) https://github.com/overextended/oxmysql
ox_lib Pflicht Hilfsfunktionen https://github.com/overextended/ox_lib
ox_inventory Pflicht Zutaten, Gerichte, Lager und Kühlung mit Metadaten https://github.com/overextended/ox_inventory
ox_target oder qb-target optional Stationen anvisieren, sonst Hinweistext mit Taste https://github.com/overextended/ox_target
lb-phone optional Liefer-App auf dem Handy https://lbscripts.com
Pepper Hunting optional Jäger zerlegen ihr Wildfleisch für die Wild-Rezepte Pepper Hunting

Installation

  1. Ressource aus dem Cfx.re Portal (Granted Assets) herunterladen
  2. Nach resources/[pepper]/pepper_eats entpacken – nicht umbenennen
  3. Items: die Einträge aus install/ox_items.lua (Deutsch) bzw. install/ox_items_en.lua (Englisch) in ox_inventory/data/items.lua einfügen und alle Bilder aus install/images/ nach ox_inventory/web/images/ kopieren
  4. config/config.lua prüfen (Sprache, Währung, Interaktion), config/server.lua für Webhooks
  5. In der server.cfg nach den Abhängigkeiten starten:
ensure oxmysql
ensure ox_lib
ensure es_extended        # bzw. qb-core / qbx_core
ensure ox_inventory
# ensure ox_target        # optional – bzw. qb-target
# ensure lb-phone         # optional – App auf dem Handy
ensure pepper_eats

add_ace group.admin pepper_eats.admin allow
  1. Datenbank: Die 16 Tabellen (pepper_eats_*) werden beim Start automatisch angelegt. Ohne CREATE-Recht vorher install/pepper_eats.sql importieren
  2. Server starten – in der Konsole erscheint Pepper Eats … gestartet
  3. Im Spiel /eatsadmin → Neues Restaurant (siehe unten)

Erster Test

  1. /eatsadmin → Neues Restaurant, Name und Vorlage wählen, als Betrieb „kaufbar“ oder einen Job eintragen.
  2. Mit Los geht’s Werbetafel, Stempeluhr, Büro, Kasse und die Stationen der Vorlage setzen, dann Anlegen.
  3. An der Stempeluhr einstempeln und im Admin-Menü → Verwalten → Zutaten zum Testen das Lager füllen.
  4. An einer Station ein Rezept kochen und das Gericht an der Kasse einem Mitspieler verkaufen.
  5. Mit /eats die Liefer-App öffnen und eine Bestellung beim eigenen Restaurant aufgeben.

Konfiguration

Datei Inhalt
config/config.lua Sprache, Framework, Admin-Gruppen, Interaktion, Währung, Befehle, Werbetafel, Platzierung, Kochen, Lager, Wirkung, Alkohol, Verfall, Konto, Löhne, Personal, Speisekarte, Kasse, Rechnungen, Kauf/Verkauf
config/templates.lua Vorlagen (Farbe, Logos, Blip, Stationen, erlaubte Rezepte)
config/ranks.lua Ränge, Rechte, Vorgabe-Löhne, Job-Stufen
config/signs.lua Arten der Werbetafel (Wand, Mast, Aufsteller …)
config/ingredients.lua Zutaten: Kategorie, Großhandelspreis, Haltbarkeit
config/recipes.lua Rezepte: Schritte, Station, Minispiel, Zutaten, Preis-Spanne, Wirkung, Level
config/wholesale.lua Großmärkte (Ort, NPC, Blip), Lieferzeit, Abhol-Rabatt
config/progression.lua Level-Kurve, Stufen-Namen, Upgrades mit Preisen, persönliches Level
config/tasks.lua Aufträge, Abgabeorte, Flyer-Punkte, Hygiene, Wochenaufgaben, ruhige Zeiten
config/delivery.lua Liefer-App: Befehl/Taste, Bestellung, Liefergebühr, Fahrer, Bewertungen, Gutscheine, Tagesangebote, lb-phone
config/server.lua Webhooks, Admin-ACE, erlaubte Logo-Hosts, Versionshinweis (wird nie an Clients gesendet)

Wichtige Schalter:

Option Standard Bedeutung
Config.Locale 'de' Sprache ('de' oder 'en')
Config.Interaction 'auto' ox_target → qb-target → Hinweistext
Config.Currency '$' Währungszeichen
Config.Sign.Mode 'dui' 'dui' = Bild-Tafel, 'text' = nur 3D-Text
Config.Sign.HeadingOffset 0.0 Tafel im Spiel verdreht? 180.0 setzen
Config.Account.Society false Job-Restaurants buchen auf das Firmenkonto
Config.Level.XpMultiplier 1.0 XP-Bedarf je Level (0.5 = doppelt so schnell)
Config.WildRecipes true Wild-Rezepte und Wild-Zutaten; false = ausgeblendet (Pepper Hunting ist dafür nicht nötig)
Config.App.Key '' Taste für die App (Spieler kann sie in den FiveM-Tastenbelegungen ändern)
Config.App.RequireItem false App nur mit dem Item eats_tablet
Config.Delivery.BaseFee / PerKm / MaxFee 15 / 6 / 80 Liefergebühr
Config.Delivery.StaffFee 'driver' Liefert Personal: Gebühr + Trinkgeld an den Fahrer oder ins Geschäftskonto ('account')
Config.PromoLevel 10 ab diesem Level gibt es Gutscheine und Tagesangebote

Werbetafel

Config.Sign = {
    Mode = 'dui',
    HeadingOffset = 0.0,
}

'dui' zeigt Logo und Name als Bild auf der Tafel, 'text' nur 3D-Text als Rückfallebene. Ist die Tafel im Spiel verdreht, HeadingOffset = 180.0 setzen.

Restaurants

Option Standard Beschreibung
Config.Restaurants.MaxSpread 150.0 Alle Stationen höchstens so weit (m) von der ersten Werbetafel
Config.Restaurants.AdminRange 250.0 So nah muss der Admin beim Speichern an der ersten Tafel stehen
Config.Restaurants.DefaultPrice 150000 Kaufpreis-Vorschlag für kaufbare Restaurants
Config.Commands.Admin / Bills 'eatsadmin' / 'eatsbills' Befehlsnamen

Ein Restaurant anlegen

  1. /eatsadmin → Neues Restaurant
  2. Allgemein: Name, Vorlage, Farbe, Logo – die Vorschau zeigt die Werbetafel
  3. Betrieb: Job (Job-Name + Stufen) oder kaufbar (Preis)
  4. Tafel & Stationen: Los geht’s startet die geführte Platzierung. Mit E setzen, Mausrad drehen, Bild auf/ab Höhe, X optionale Station überspringen, Z zurück, ESC beenden. Die erste Werbetafel ist der Ankerpunkt; alle Stationen liegen höchstens 150 m davon entfernt
  5. Anlegen – das Restaurant steht sofort, mit Blip und Tafel, für alle Spieler

Pflicht-Stationen: Werbetafel, Stempeluhr, Büro, Kasse und die Stationen der Vorlage. Weitere (Abholtresen, Ausgabe, Lager, Kühlung, zusätzliche Grills …) lassen sich jederzeit ergänzen.

Der Alltag im Restaurant

  • Stempeluhr: einstempeln = im Dienst. Das Restaurant ist geöffnet, solange jemand im Dienst ist und es nicht geschlossen wurde
  • Kochen: an der Station das Rezept wählen; jeder Schritt ist ein Minispiel. Zutaten kommen aus Lager → Kühlung → Inventar, das fertige Gericht ins Inventar oder auf die Ausgabe
  • Kasse: Gerichte wählen, Kunden in der Nähe auswählen, bar/Karte anbieten oder eine Rechnung schreiben. Bezahlte Gerichte bekommt der Kunde ins Inventar
  • Chef-Tablet am Büro: Konto, Personal, Speisekarte (aus den Rezepten der Vorlage, Preise in der erlaubten Spanne), Menüs, Großhandel, Logo (kaufbare Restaurants), Upgrades, Aufträge
  • Löhne zahlt das Geschäftskonto je Dienstminute; wer AFK ist, bekommt nichts

Level, Upgrades und Aufträge

Das Restaurant sammelt XP durch Kochen (je nach Qualität), Umsatz, Aufträge und die Wochenaufgabe; bei Hygiene ab 90 % gibt es 10 % mehr. Level 50 braucht bei normalem Betrieb rund 80 Stunden (Config.Level.XpMultiplier). Neue Rezepte werden mit dem Level frei, Menüs ab Level 5, Gutscheine und Tagesangebote ab Level 10.

Upgrades kauft der Inhaber aus dem Geschäftskonto: Küchengeräte (Qualität), Lager, Kühlraum, Personal-Plätze, Speisekarte, Großhandel-Rabatt, Werbetafel (beleuchtet, Neon, animiert) und Auftragsbuch.

Aufträge (Tablet → Aufträge, nur im Dienst): täglich 5 (+ Upgrade), einer pro Person:

Auftrag Ablauf Belohnung
Catering / Bürobestellung Gerichte kochen und an einem Ort abgeben Geld + XP
Vorbereitung 3 Schneide-Runden Halbfertigware (+5 Qualität)
Reinigung Schmutzstellen putzen Hygiene
Großmarkt-Fahrt Ware am Großmarkt abholen XP
Werbung Flyer an Punkten verteilen Restaurant wird in der App hervorgehoben
Inventur Abgelaufenes aussortieren Teil-Erstattung

Ist auf dem Server wenig los (wenige Spieler oder lange keine App-Bestellung), gibt es 1,5-fach XP.

Liefer-App

Öffnen mit /eats, einer frei wählbaren Taste oder dem Item eats_tablet; mit lb-phone auch als App auf dem Handy. Reiter: Entdecken, Bestellungen, Fahren, Küche (nur Personal im Dienst) und Rechnungen.

  1. Kunde wählt ein geöffnetes Restaurant, legt Gerichte/Menüs in den Warenkorb, wählt Lieferung oder Abholung, optional Gutschein und Trinkgeld. Das Geld wird abgebucht und treuhänderisch gehalten
  2. Die Küche nimmt an (sonst nach 5 Minuten automatisch storniert, Geld zurück), kocht und packt an der Ausgabe
  3. Der Auftrag geht 60 Sekunden an das Personal mit Recht deliver, danach an alle Fahrer im Fahrer-Modus
  4. Der Fahrer holt an der Ausgabe den Lieferbeutel, folgt dem Wegpunkt und übergibt in 4 m Abstand
  5. Bei Übergabe bekommt das Restaurant den Warenwert, der Fahrer Gebühr und Trinkgeld; der Kunde kann danach bewerten

Abholung: Der Kunde holt die fertige Bestellung am Abholtresen ab (nur wenn das Restaurant einen hat).

Fehlerfälle: Ablehnen oder Storno → volle Erstattung; Fahrer offline oder bricht ab → Auftrag geht zurück; Kunde zu lange offline → Bestellung storniert; Erstattungen an Offline-Kunden werden beim nächsten Einloggen gezahlt.

Webhooks

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

Webhook Inhalt
admin Restaurants angelegt, geändert, gelöscht, Besitzer, Level gesetzt, Bewertung gelöscht
business Öffnen/Schließen, Kauf, Verkauf, Übergabe, Kontobewegungen ab ServerConfig.WebhookMoneyMin (Admin-Buchungen immer)
orders Stornos der Liefer-App (abgelehnt, nicht angenommen, vom Kunden, Kunde offline)
security Verdachtsfälle der Plausibilitätsprüfung

Framework-Anbindung

Alles Framework-Spezifische liegt offen in bridge/: Geld (Bargeld/Bank), Jobs und Job-Wechsel, Inventar (ox_inventory: Lager, Metadaten, Verbrauch), Status (Hunger/Durst/Stress je Framework), Firmenkonten und Benachrichtigungen. Eigene Anpassungen gehören dorthin.

Befehle und Rechte

Befehl Wer Was
/eatsadmin Admin Admin-Menü: Übersicht, Restaurants anlegen/ändern/löschen, Besitzer, Level, Geld, Zutaten
/eats alle Liefer-App (Config.App.Command, Taste über Config.App.Key bzw. FiveM-Tastenbelegung)
/eatsbills alle Eigene offene Rechnungen ansehen und bezahlen
/eatstaskcancel Personal Laufenden Auftrag abbrechen, falls das Tablet nicht in der Nähe ist

Rechte

Admins sind Spieler mit dem ACE-Recht pepper_eats.admin oder einer Gruppe aus Config.AdminGroups.

Im Restaurant gelten Ränge (aufsteigend, der letzte ist der Inhaber):

Rang Rechte (Vorgabe)
Aushilfe kochen
Koch kochen, Kasse, liefern
Schichtleitung + Lager/Großhandel, öffnen/schließen
Manager + Speisekarte, Personal, Aktionen
Inhaber + Geschäftskonto, Upgrades

Rechte: cook, register, deliver, stock, open, menu, staff, promo, finance – je Rang in config/ranks.lua. Bei Job-Restaurants legt Config.JobGrades (im Admin-Menü je Restaurant änderbar) fest, welche Job-Stufe welcher Rang ist. Bei kaufbaren Restaurants lädt der Inhaber Personal über das Chef-Tablet ein.

Tasten

Beim Platzieren der Stationen: E setzen, Mausrad drehen, Bild auf/ab Höhe, X optionale Station überspringen, Z zurück, ESC beenden. Für die Liefer-App gibt es standardmäßig keine Taste (Config.App.Key = ''), jeder Spieler legt sie in den FiveM-Tastenbelegungen selbst fest.

Exports

Server:

exports.pepper_eats:getRestaurants()            -- alle Restaurants (öffentliche Sicht)
exports.pepper_eats:getRestaurant(id)           -- ein Restaurant oder nil
exports.pepper_eats:isOpen(id)                  -- geöffnet?
exports.pepper_eats:getDuty(source)             -- Restaurant-ID, in der der Spieler im Dienst ist
exports.pepper_eats:getRank(source, id)         -- Rang des Spielers (nil = gehört nicht dazu)
exports.pepper_eats:getLevel(id)                -- { level, xp, stage }
exports.pepper_eats:addRestaurantXp(id, xp)     -- XP gutschreiben (z. B. Event-Script)
exports.pepper_eats:getRating(id)               -- Mittelwert, Anzahl
exports.pepper_eats:getBalance(id)              -- Kontostand
exports.pepper_eats:addBalance(id, amount, note) -- buchen (< 0 scheitert bei zu wenig Guthaben)
exports.pepper_eats:getOpenOrders(id)           -- offene App-Bestellungen
exports.pepper_eats:isDriver(source)            -- im Fahrer-Modus?
exports.pepper_eats:getAlcohol(source)          -- Promille
exports.pepper_eats:applyEffects(source, fx)    -- Wirkung wie beim Essen: { hunger, thirst, stamina, speed, stress, heal, alcohol }
exports.pepper_eats:wildRecipes()               -- Wild-Rezepte aktiv? (Config.WildRecipes)

Client:

exports.pepper_eats:openApp(page)   -- 'discover' | 'orders' | 'drive' | 'kitchen' | 'bills'
exports.pepper_eats:closeApp()
exports.pepper_eats:getDelivery()   -- aktuelle Lieferung als Fahrer { id, status, restaurant } oder nil

FAQ

Pepper Eats startet nicht.

oxmysql, ox_lib, dein Framework und ox_inventory müssen vor pepper_eats starten. Beim erfolgreichen Start steht Pepper Eats 1.1.0 gestartet (…) in der Konsole.

Die Item-Bilder fehlen.

Alle Bilder aus install/images/ nach ox_inventory/web/images/ kopieren und die Items aus install/ox_items.lua (bzw. ox_items_en.lua) in ox_inventory/data/items.lua eintragen.

Muss ich die SQL-Datei importieren?

Nein. Die 16 Tabellen pepper_eats_* legt das Script beim Start selbst an und ergänzt fehlende Spalten. install/pepper_eats.sql brauchst du nur ohne CREATE-Recht.

Die Werbetafel ist verdreht oder von vorne unsichtbar.

Config.Sign.HeadingOffset = 180.0 setzen. Macht die Bild-Tafel Probleme, schaltet Config.Sign.Mode = 'text' auf 3D-Text um.

Beim Kochen kommt „Keine Zutaten“.

Lager über den Großhandel füllen. Zum Testen: Admin-Menü → Verwalten → Zutaten zum Testen.

Speichern im Admin-Menü geht nicht.

Der Admin muss in der Nähe der ersten Werbetafel stehen (höchstens 250 m, Config.Restaurants.AdminRange).

Ein Restaurant lässt sich nicht löschen.

Es hat noch offene App-Bestellungen. Erst abschließen oder stornieren.

Die Liefer-App öffnet nicht.

Steht Config.App.RequireItem = true? Dann braucht der Spieler das Item eats_tablet.

Brauche ich Pepper Hunting für die Wild-Rezepte?

Nein. Die Wild-Zutaten gibt es im Großhandel. Mit Pepper Hunting können Jäger ihr Wildfleisch zusätzlich zerlegen. Config.WildRecipes = false blendet Wild-Rezepte und Wild-Zutaten ganz aus.

Kann ein Restaurant ein Framework-Job sein?

Ja. Beim Anlegen „Job“ wählen. Config.JobGrades legt fest, welche Job-Stufe welcher Rang ist, und mit Config.Account.Society = true buchen Job-Restaurants auf das Firmenkonto.

Wie läuft die App auf dem Handy?

Läuft lb-phone, gibt es die Liefer-App zusätzlich als App auf dem Handy. Ohne lb-phone öffnet sie mit /eats oder der Taste.

Wie ändere ich Texte oder die Sprache?

Sprache über Config.Locale ('de' oder 'en'), Texte in locales/de bzw. locales/en. Item-Namen stehen in ox_inventory/data/items.lua.

Wie bekomme ich mehr Ausgaben zur Fehlersuche?

Config.Debug = true setzen und danach wieder ausschalten.

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

Aktuell: 1.1.0 (25.10.2026) mit Wild-Rezepten (Config.WildRecipes) und dem Export wildRecipes(). Alle Änderungen stehen auf der Changelog-Seite und in CHANGELOG.md in der Ressource.


Fehler gefunden? Melde ihn im Discord.