Pepper RP-Commands
Kostenlose Roleplay-Befehle mit modernen Sprechblasen – /me, /do, /try, /status, /whisper, /shout und mehr. Standalone.
Kostenlos und Open Source: https://github.com/PepperScripts/pepper_rpcommands
Überblick
Pepper RP-Commands bringt zehn Roleplay-Befehle wie /me, /do, /try und /status auf deinen Server. Der Text
erscheint als Sprechblase über dem Kopf und auf Wunsch als Zeile im Chat – aber nur bei Spielern in Reichweite und,
wenn du willst, nur bei Sichtkontakt. Würfel, Münze und /try entscheidet der Server, damit niemand ein Ergebnis
fälschen kann. Läuft Standalone und holt sich den Charakternamen aus ESX, QBCore oder Qbox, wenn vorhanden.
Features
- 10 Befehle:
/me,/do,/try,/roll,/dice,/coin,/status,/looc,/whisper,/shout - Moderne Sprechblasen über dem Kopf mit Symbol je Befehl – oder
minimal(Text mit Schatten) bzw.classic(GTA-Schrift) /statushält einen Text über dem Kopf (z. B. „verletzt“), bis du ihn entfernst oder die Zeit abläuft- Mehrere Texte stapeln sich über einem Spieler, lange Texte werden umgebrochen
- Charaktername aus ESX, QBCore oder Qbox in der Chat-Zeile – wird automatisch erkannt
/try,/roll,/diceund/coinentscheidet der Server – niemand kann ein Ergebnis fälschen- Nur Spieler in Reichweite bekommen den Text (gleiche Dimension); auf Wunsch nur bei Sichtkontakt, also nicht durch Wände
- Discord-Webhook-Protokoll, Wortfilter, Admin-Befehle zum Entfernen von Texten und Sperren von Spielern
- Exports für andere Ressourcen
- Englisch, Deutsch, Französisch, Spanisch und Niederländisch
- Keine Abhängigkeiten; die Zeichenschleife läuft nur, solange ein Text oder Status aktiv ist
Voraussetzungen
| Abhängigkeit | Pflicht/optional | Wofür | Link |
|---|---|---|---|
FiveM-Server (fx_version 'cerulean', Lua 5.4) |
Pflicht | Läuft die Ressource | https://docs.fivem.net/docs/server-manual/setting-up-a-server/ |
| ESX Legacy, QBCore oder Qbox | optional | Charaktername in der Chat-Zeile und Admin-Gruppen; ohne Framework FiveM-Name + ACE | – |
| Chat-Ressource (Standard-Chat oder z. B. Pepper Chat) | optional | Chat-Zeile, Hinweise und Befehlsvorschläge (chat:addMessage, chat:addSuggestion) |
Pepper Chat |
| OneSync | optional | Mit OneSync schickt der Server Texte nur an Spieler in Reichweite; ohne an alle, der Client prüft die Entfernung selbst | – |
| Datenbank | nicht nötig | Keine Datenbank, kein oxmysql – Status und Sperren liegen im Speicher des Servers | – |
Installation
- Ordner
pepper_rpcommandsin deinenresources-Ordner legen. Den Ordnernamen nicht umbenennen – die Exports heißenexports.pepper_rpcommands:…. - In der
server.cfgeintragen, nach deinem Framework und deinem Chat:ensure es_extended # oder qb-core / qbx_core – optional ensure chat # oder pepper_chat ensure pepper_rpcommands - Andere Ressourcen entfernen, die
/meoder/doanlegen – sonst antworten beide. Config.Localein derconfig.luasetzen und den Server neu starten.- Optional – Admin-Rechte per ACE:
add_ace group.admin pepperrp.admin allow
Update von 1.x: den ganzen Ordner ersetzen. Hast du die config.lua geändert, übertrage deine Werte in die neue
Datei – die neuen Befehle erscheinen nur mit der neuen Config. config_server.lua ist neu und gehört dazu.
Erster Test
- Im Spiel
/me öffnet den Kofferraumeingeben – über deinem Kopf erscheint eine Sprechblase, im Chat eine Zeile. /try das Schloss knacken– der Server entscheidet „gelingt“ oder „misslingt“./dice 2d6– zwei Würfel mit Einzelergebnissen und Summe./status verletztsetzt einen Dauertext,/statusohne Text entfernt ihn.- Mit einem zweiten Spieler:
/whisper hier drübenist nur innerhalb von 3 m zu sehen.
Konfiguration
| Datei | Steuert |
|---|---|
config.lua |
Sprache, Stil, Größe, Reichweite, Dauer, Stapel, Sichtprüfung, Länge, Wartezeit, Chat, Name, alle Befehle (wird an die Spieler geschickt) |
config_server.lua |
Webhook, Konsolenprotokoll, Wortfilter, Admin-Gruppen und -Befehle (nur auf dem Server) |
locales/*.json |
Texte über dem Kopf, Chat-Zeilen und Hinweise je Sprache |
html/style.css |
Aussehen der Sprechblasen (Stile modern und minimal) |
Allgemein
| Option | Standard | Beschreibung |
|---|---|---|
Config.Locale |
'en' |
en, de, fr, es oder nl |
Config.Style |
'modern' |
modern (Sprechblase mit Symbol), minimal (Text mit Schatten) oder classic (GTA-Schrift wie Version 1) |
Config.Scale |
1.0 |
Größe der Sprechblasen |
Config.Distance |
15.0 |
Standard-Reichweite in Metern |
Config.Duration |
7000 |
So lange bleibt ein Text über dem Kopf (Millisekunden) |
Config.MaxStack |
3 |
Texte, die sich über einem Spieler stapeln; ältere verschwinden |
Config.RequireLineOfSight |
true |
Text nur bei Sichtkontakt (nicht durch Wände) |
Config.MaxLength |
150 |
Höchstlänge einer Eingabe (bis 250) |
Config.Cooldown |
1500 |
Wartezeit zwischen zwei Befehlen je Spieler (ms) |
Config.Chat |
true |
Zusätzlich eine Chat-Zeile für alle in Reichweite |
Config.NameMode |
'character' |
character (Name aus ESX/QBCore/Qbox, sonst FiveM-Name) oder fivem |
Config.GetName |
nil |
Eigene Namensfunktion (läuft auf dem Server, ersetzt NameMode) |
Befehle
Config.Commands = {
me = { enabled = true, name = 'me', color = { 255, 196, 107 }, icon = 'me' },
try = { enabled = true, name = 'try', color = { 196, 160, 255 }, icon = 'try', chance = 50 },
status = { enabled = true, name = 'status', color = { 200, 205, 215 }, icon = 'status', maxLength = 60, maxMinutes = 60 },
whisper = { enabled = true, name = 'whisper', color = { 190, 215, 230 }, icon = 'whisper', distance = 3.0 },
-- …
}
| Feld | Beschreibung |
|---|---|
enabled |
false schaltet den Befehl ab |
name |
Befehlsname ohne / |
color |
Farbe als { Rot, Grün, Blau } (0–255) |
icon |
me, do, try, dice, coin, status, ooc, whisper, shout |
distance |
Eigene Reichweite (sonst Config.Distance); whisper 3 m, shout 35 m |
overhead / chat |
false blendet Sprechblase bzw. Chat-Zeile für diesen Befehl aus |
chance (try) |
Erfolgschance in Prozent, Standard 50 |
default / max (roll) |
Seiten ohne Angabe 6, höchstens 1000 |
maxDice / maxSides (dice) |
Höchstens 10 Würfel mit je 100 Seiten |
maxLength / maxMinutes (status) |
Statustext bis 60 Zeichen, läuft nach 60 Minuten ab (0 = bis zum Ausloggen) |
Server-Einstellungen (config_server.lua)
| Option | Standard | Beschreibung |
|---|---|---|
ServerConfig.Webhook |
'' |
Discord-Webhook für das Protokoll aller RP-Befehle (Name, Server-ID, Lizenz), '' = aus |
ServerConfig.ConsoleLog |
false |
Jede Zeile zusätzlich in der Server-Konsole |
ServerConfig.Filter.mode |
'censor' |
censor (Sternchen), block (Befehl verwerfen) oder off |
ServerConfig.Filter.words |
leer | Gefilterte Wörter (Groß-/Kleinschreibung egal) |
ServerConfig.Admin.groups |
{ 'god', 'superadmin', 'admin', 'mod' } |
Framework-Gruppen mit Admin-Befehlen |
ServerConfig.Admin.commands |
rpclear, rpmute, rpunmute |
Namen der Admin-Befehle |
ServerConfig.Admin.defaultMuteMinutes |
30 |
Sperrdauer ohne Angabe (1 bis 10080 Minuten) |
Befehle und Rechte
| Befehl | Wer | Beispiel → über dem Kopf |
|---|---|---|
/me [Text] |
alle | /me öffnet den Kofferraum → öffnet den Kofferraum |
/do [Text] |
alle | /do Die Tür ist abgeschlossen. |
/try [Text] |
alle | /try das Schloss knacken → versucht: das Schloss knacken – gelingt / misslingt |
/roll [Seiten] |
alle | /roll 20 → würfelt 14 (1–20) |
/dice [Würfel] |
alle | /dice 2d6 → 3 + 5 = 8 (auch d20 oder 3 = 3d6) |
/coin |
alle | wirft eine Münze: Kopf |
/status [Text] |
alle | Dauertext; /status allein entfernt ihn |
/looc [Text] |
alle | (( brb )) – lokaler OOC-Chat |
/whisper [Text] |
alle | nur innerhalb von 3 m sichtbar |
/shout [Text] |
alle | sichtbar innerhalb von 35 m |
/rpclear [ID] |
Admin | Texte und Status eines Spielers entfernen – ohne ID von allen |
/rpmute ID [Minuten] |
Admin | RP-Befehle für einen Spieler sperren (bleibt nach Reconnect) |
/rpunmute ID |
Admin | Sperre aufheben |
Admin ist, wer das ACE-Recht pepperrp.admin hat, eine Gruppe aus ServerConfig.Admin.groups (ESX-Gruppe,
QBCore-Recht oder ACE-Gruppe bei Qbox) oder die Server-Konsole. RP-Befehle selbst gehen nicht von der Konsole. Tasten
gibt es keine.
Exports und Events
-- Server
exports.pepper_rpcommands:ShowText(source, 'öffnet den Tresor', { color = { 255, 196, 107 }, icon = 'me', duration = 5000, distance = 10.0 })
exports.pepper_rpcommands:SetStatus(source, 'gefesselt', 10) -- Minuten optional
exports.pepper_rpcommands:ClearStatus(source)
exports.pepper_rpcommands:GetStatus(source) -- Text oder nil
exports.pepper_rpcommands:IsMuted(source) -- true / false
-- Client
exports.pepper_rpcommands:ShowLocalText(serverId, 'nur du siehst das', { icon = 'do' })
exports.pepper_rpcommands:SetHidden(true) -- alles ausblenden, z. B. für einen Kinomodus
| Seite | Export | Wirkung |
|---|---|---|
| Server | ShowText(source, text, options) |
Sprechblase über einem Spieler für alle in Reichweite; options.chat = eigene Chat-Zeile |
| Server | SetStatus(source, text, minutes) / ClearStatus(source) / GetStatus(source) |
Dauertext setzen, entfernen, abfragen |
| Server | IsMuted(source) |
Ist der Spieler für RP-Befehle gesperrt? |
| Client | ShowLocalText(serverId, text, options) |
Sprechblase nur für diesen Spieler |
| Client | SetHidden(bool) |
Alle Texte aus-/einblenden |
Symbole: me, do, try, dice, coin, status, ooc, whisper, shout, chat.
FAQ
/me antwortet doppelt – was tun?
Eine andere Ressource legt /me oder /do ebenfalls an (oft ein altes RP-Script oder ein Framework-Modul). Entferne
sie oder benenne die Befehle hier über name in Config.Commands um.
Ich sehe die Sprechblase, aber keine Chat-Zeile?
Die Chat-Zeile kommt über chat:addMessage – es muss eine Chat-Ressource laufen (Standard-Chat oder Pepper Chat).
Außerdem prüfen: Config.Chat = true und beim Befehl nicht chat = false.
Warum sehe ich die Texte anderer Spieler nicht?
Du musst in Reichweite sein (Standard 15 m, whisper 3 m) und in derselben Dimension (Routing-Bucket). Bei
Config.RequireLineOfSight = true verschwinden Texte hinter Wänden – zum Testen auf false stellen.
Brauche ich eine Datenbank?
Nein. Status und Sperren liegen im Speicher des Servers. Eine Sperre gilt über die Lizenz auch nach einem Reconnect, endet aber mit einem Neustart der Ressource oder des Servers.
Wie lange bleibt ein /status?
Bis der Spieler /status ohne Text eingibt, sich ausloggt oder maxMinutes abläuft – Standard 60 Minuten. Mit
maxMinutes = 0 bleibt er bis zum Ausloggen.
Wie zeige ich den Charakternamen statt des FiveM-Namens?
Config.NameMode = 'character' (Standard) holt den Namen aus Qbox, QBCore oder ESX. Für andere Frameworks setzt du
Config.GetName = function(source) … end – die Funktion läuft auf dem Server.
Wie ändere ich Farben und Aussehen?
Die Farbe je Befehl steht in Config.Commands (color), den Stil wählst du mit Config.Style, die Größe mit
Config.Scale. Feinheiten der Sprechblase änderst du in html/style.css.
Wie ändere ich die Texte?
In locales/<sprache>.json, z. B. die Zeilen über dem Kopf (overhead_…) und im Chat (chat_…).
Kann ein Spieler das Ergebnis von /try oder /dice fälschen?
Nein. Die Zufallszahlen zieht der Server, der Client zeigt nur das Ergebnis an. Die Erfolgschance von /try stellst
du mit chance ein.
Wie benutze ich die Sprechblasen aus meinem eigenen Script?
Auf dem Server exports.pepper_rpcommands:ShowText(source, 'Text', { icon = 'me' }), für einen Dauertext
SetStatus(source, 'gefesselt', 10). Details unter „Exports und Events“.
Werden Farbcodes oder HTML im Text angezeigt?
Nein. Der Server entfernt Steuerzeichen, GTA-Codes (~r~), Chat-Farbcodes (^1) und spitze Klammern, bevor der Text
verteilt wird.
Wie protokolliere ich alle RP-Befehle in Discord?
Webhook-URL in config_server.lua bei ServerConfig.Webhook eintragen. Die Datei bleibt auf dem Server.
Wie update ich Pepper RP-Commands?
Ordner ersetzen, vorher config.lua und config_server.lua sichern und deine Werte in die neuen Dateien übertragen.
Änderungen stehen in der CHANGELOG.md im Ressourcen-Ordner.
Support
Fragen oder Fehler? Öffne ein Ticket in unserem Discord: https://discord.gg/6NaFJWKDYu – verknüpfe deinen Kauf vorher mit
/verify. Den Quellcode findest du auf GitHub: https://github.com/PepperScripts/pepper_rpcommands
Permanent auf dem Dev-Server von Pepper Scripts getestet.
Changelog
Aktuelle Version 2.0.0: Sprechblasen mit drei Stilen, /status, /looc, /whisper, /shout, /coin, /dice,
Charaktername, Webhook, Admin-Befehle, Wortfilter, Exports und drei neue Sprachen. Alle Änderungen stehen in der
CHANGELOG.md im Ressourcen-Ordner.
Fehler gefunden? Melde ihn im Discord.