Dokumentation

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 der config.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 id ersetzt 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

  1. Ordner pepper_notify in deinen resources-Ordner legen. Den Ordnernamen nicht umbenennen – die Exports heißen exports.pepper_notify:… und funktionieren nur mit genau diesem Namen.
  2. In der server.cfg eintragen – vor den Scripts, die Meldungen schicken:
    ensure pepper_notify
    # danach deine anderen Scripts, z. B.
    ensure meine_garage
    
  3. Server neu starten. Eine Datenbank oder Items gibt es nicht.

Erster Test

  1. Im Spiel T drücken und /notifytest eingeben (in der F8-Konsole ohne Schrägstrich: notifytest).
  2. 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).
  3. Achte auf den Zeitbalken: Nach etwa 5 Sekunden verschwinden drei Meldungen, die orange bleibt etwa 8 Sekunden.
  4. Wenn alles passt, Config.TestCommand = false setzen.

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.lua in ESX.ShowNotification den Export aufrufen: exports.pepper_notify:Notify(message, notifyType, length).
  • QBCore / Qbox: in qb-core/client/functions.lua in QBCore.Functions.Notify den 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.