Pepper Notify
Kostenlose Benachrichtigungen in vier Typen mit Titel, Zeitbalken und Ton – Standalone für jeden Server.
Kostenlos und Open Source: https://github.com/PepperScripts/pepper_notify
Überblick
Mit Pepper Notify sehen alle Meldungen auf deinem Server gleich aus: Erfolg, Fehler, Info oder Warnung, mit optionalem
Titel, Zeitbalken und Ton. Deine Scripts rufen den Export vom Client oder vom Server auf, die Meldung erscheint an einer
von 8 Positionen, der Balken läuft ab und sie verschwindet. Kommt dieselbe id noch einmal, wird die Meldung ersetzt
statt gestapelt.
Features
- Vier Typen:
success,error,info,warning– jeder mit eigener Farbe und eigenem Symbol - Optionaler Titel, Zeitbalken und Ton (GTA-eigene Sounds, keine Audiodateien)
- Acht Positionen mit einstellbarem Abstand zum Rand (
Config.Offset), Farben und Dauer in derconfig.lua - Exports für Client und Server, dazu ein Client-Event
- Versteht die Feldnamen von ox_lib (
description,type = 'inform') und QBCore (text,length,'primary') - Gleiche
idersetzt eine Meldung, statt sie zu stapeln - Keine Abhängigkeiten, keine Schleife im Hintergrund
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/ |
| Framework (ESX Legacy, QBCore, Qbox) | optional | Nicht nötig – Standalone. Mit Framework kannst du dessen Meldungen umleiten (siehe „Für Entwickler“) | – |
| OneSync | nicht nötig | – | – |
| Datenbank | nicht nötig | Pepper Notify speichert nichts – keine Datenbank, kein oxmysql | – |
Installation
- Ordner
pepper_notifyin deinenresources-Ordner legen. Den Ordnernamen nicht umbenennen – die Exports heißenexports.pepper_notify:…und funktionieren nur mit genau diesem Namen. - In der
server.cfgeintragen – vor den Scripts, die Meldungen schicken:ensure pepper_notify # danach deine anderen Scripts, z. B. ensure meine_garage - Server neu starten. Eine Datenbank oder Items gibt es nicht.
Erster Test
- Im Spiel T drücken und
/notifytesteingeben (in der F8-Konsole ohne Schrägstrich:notifytest). - Rechts in der Mitte erscheinen vier Meldungen: grün „Saved successfully.“, rot „Something went wrong.“, blau ohne Titel und orange „Your vehicle is low on fuel.“ (die Testtexte sind fest auf Englisch).
- Achte auf den Zeitbalken: Nach etwa 5 Sekunden verschwinden drei Meldungen, die orange bleibt etwa 8 Sekunden.
- Wenn alles passt,
Config.TestCommand = falsesetzen.
Konfiguration
| Datei | Steuert |
|---|---|
config.lua |
Position, Abstand zum Rand, Dauer, Anzahl, Zeitbalken, Ton, Farben, Testbefehl |
html/style.css |
Aussehen der Meldungen (Schrift, Rundung, Hintergrund) – für eigene Anpassungen |
Nach einer Änderung reicht restart pepper_notify in der Server-Konsole (oder ein Server-Neustart).
Position und Abstand
Config.Position = 'center-right'
Config.Offset = { x = 1.5, y = 2.0 }
| Option | Standard | Beschreibung |
|---|---|---|
Config.Position |
'center-right' |
top-right, top-left, top-center, center-right, center-left, bottom-right, bottom-left, bottom-center |
Config.Offset |
{ x = 1.5, y = 2.0 } |
Abstand zum Bildschirmrand (1 = etwa eine Textzeile) – damit schiebst du die Meldungen an deinem HUD vorbei |
Dauer und Anzahl
| Option | Standard | Beschreibung |
|---|---|---|
Config.DefaultDuration |
5000 |
Dauer in Millisekunden, wenn der Aufruf keine nennt |
Config.MinDuration |
1000 |
Kürzere Angaben werden auf diesen Wert angehoben |
Config.MaxDuration |
30000 |
Längere Angaben werden auf diesen Wert gekürzt |
Config.MaxVisible |
5 |
So viele Meldungen sind gleichzeitig sichtbar, ältere verschwinden zuerst |
Config.ProgressBar |
true |
Zeitbalken unter der Meldung |
Ton und Farben
Config.Sound = {
enabled = true,
default = { name = 'SELECT', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' },
error = { name = 'ERROR', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' },
}
Config.Colors = { success = '#3DD68C', error = '#E5484D', info = '#4C9AFF', warning = '#FF8A3D' }
| Option | Standard | Beschreibung |
|---|---|---|
Config.Sound.enabled |
true |
Ton beim Einblenden an/aus |
Config.Sound.default |
SELECT / HUD_FRONTEND_DEFAULT_SOUNDSET |
GTA-Sound für alle Typen ohne eigenen Eintrag |
Config.Sound.error |
ERROR / HUD_FRONTEND_DEFAULT_SOUNDSET |
Eigener Ton für Fehler; genauso kannst du success, info oder warning ergänzen |
Config.Colors |
siehe oben | Akzentfarbe je Typ (Symbol, Rand, Zeitbalken) als Hex-Wert |
Config.TestCommand |
true |
Befehl /notifytest an/aus |
Für Entwickler
Aufruf
Client (lange Form als Tabelle oder kurze Form):
exports.pepper_notify:Notify({ title = 'Garage', message = 'Fahrzeug geparkt.', type = 'success', duration = 5000 })
exports.pepper_notify:Notify('Fahrzeug geparkt.', 'success', 5000)
Server (erster Wert ist die Spieler-ID, -1 = alle Spieler):
exports.pepper_notify:Notify(source, { title = 'Bank', message = 'Du hast 500 $ erhalten.', type = 'info' })
exports.pepper_notify:Notify(-1, 'Neustart in 10 Minuten.', 'warning', 10000)
| Feld | Bedeutung |
|---|---|
message |
Text (Pflicht; auch description oder text werden verstanden) |
title |
Fette erste Zeile (optional) |
type |
success, error, info oder warning (Standard info); inform, primary → info, warn → warning |
duration |
Millisekunden (auch length), begrenzt auf MinDuration–MaxDuration |
id |
Eine Meldung mit derselben id ersetzt die vorige |
Meldungen deines Frameworks umleiten
- ESX: in
es_extended/client/functions.luainESX.ShowNotificationden Export aufrufen:exports.pepper_notify:Notify(message, notifyType, length). - QBCore / Qbox: in
qb-core/client/functions.luainQBCore.Functions.Notifyden Export aufrufen:exports.pepper_notify:Notify(text, texttype, length).
Befehle und Rechte
| Befehl | Wer | Was |
|---|---|---|
/notifytest |
alle Spieler (ohne ACE-Recht) | Zeigt alle vier Meldungstypen; nur aktiv bei Config.TestCommand = true |
Weitere Befehle, Rechte oder Tasten gibt es nicht.
Exports und Events
| Seite | Name | Aufruf |
|---|---|---|
| Client | Export Notify |
exports.pepper_notify:Notify(daten) oder Notify(text, typ, dauer) |
| Server | Export Notify |
exports.pepper_notify:Notify(spielerId, daten) oder Notify(spielerId, text, typ, dauer) |
| Client | Event pepper_notify:show |
TriggerClientEvent('pepper_notify:show', source, { message = 'Hallo', type = 'info' }) |
FAQ
Wie benutze ich Notify aus meinem Script?
Auf dem Client exports.pepper_notify:Notify('Text', 'success'), auf dem Server
exports.pepper_notify:Notify(source, 'Text', 'success'). Alternativ das Event pepper_notify:show – Beispiele unter
„Für Entwickler“.
/notifytest kennt der Server nicht – was tun?
Prüfe, ob ensure pepper_notify in der server.cfg steht, der Ordner genau pepper_notify heißt und
Config.TestCommand = true ist. Der Befehl wird nur angelegt, wenn der Testbefehl eingeschaltet ist.
Wie ändere ich die Farben?
In Config.Colors je Typ einen Hex-Wert eintragen, z. B. success = '#22C55E', danach restart pepper_notify.
Die Meldungen verdecken mein HUD – wie verschiebe ich sie?
Mit Config.Position wählst du eine der 8 Positionen, mit Config.Offset schiebst du sie weiter vom Rand weg
(x waagerecht, y senkrecht, 1 ≈ eine Textzeile).
Kann ich ESX- oder QBCore-Meldungen über Pepper Notify anzeigen?
Ja. Lass ESX.ShowNotification bzw. QBCore.Functions.Notify den Export aufrufen (eine Zeile, siehe „Für
Entwickler“). Die Typnamen primary (QBCore) und inform (ox_lib) werden automatisch zu info.
Funktionieren GTA-Farbcodes wie ~r~ oder HTML im Text?
Nein. Titel und Text werden als reiner Text angezeigt (textContent), Farbcodes und HTML erscheinen also wörtlich.
Das verhindert, dass Spielertexte als HTML ausgeführt werden. Die Farbe kommt über den Typ.
Wie schicke ich eine Meldung an alle Spieler?
Auf dem Server mit -1 als Spieler-ID: exports.pepper_notify:Notify(-1, 'Neustart in 10 Minuten.', 'warning', 10000).
Wie verhindere ich, dass sich dieselbe Meldung stapelt?
Gib eine feste id mit, z. B. { id = 'fuel', message = 'Tank fast leer', type = 'warning' }. Eine neue Meldung mit
derselben id ersetzt die alte.
Wie lange darf eine Meldung höchstens stehen?
Zwischen Config.MinDuration (1 Sekunde) und Config.MaxDuration (30 Sekunden); Werte außerhalb werden angepasst.
Ohne Angabe gilt Config.DefaultDuration (5 Sekunden).
Wie schalte ich den Ton aus oder ändere ihn?
Config.Sound.enabled = false schaltet ihn ab. Für einen anderen Ton änderst du name/set (GTA-Frontend-Sounds); für
einzelne Typen ergänzt du einen Eintrag wie success = { name = '…', set = '…' }.
Meldungen direkt beim Einloggen gehen verloren?
Nein. Kommen Meldungen, bevor die Oberfläche geladen ist, merkt sich der Client sie und zeigt sie, sobald die NUI bereit ist.
Wie update ich Pepper Notify?
Ordner ersetzen und vorher deine config.lua sichern, danach deine Werte wieder eintragen. Was sich geändert hat, steht
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_notify
Permanent auf dem Dev-Server von Pepper Scripts getestet.
Changelog
Aktuelle Version 1.0.2: neue Positionen center-right (neuer Standard) und center-left, dazu Config.Offset.
Alle Änderungen stehen in der CHANGELOG.md im Ressourcen-Ordner.
Fehler gefunden? Melde ihn im Discord.