> For the complete documentation index, see [llms.txt](https://pepper-scripts.gitbook.io/pepper-scripts-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pepper-scripts.gitbook.io/pepper-scripts-docs/docs/de/tools-ui/pepper-hud.md).

# Pepper HUD

Ein HUD, das sich jeder Spieler so einrichtet, wie er es mag: Mit **Pepper HUD** wählen Spieler einen Stil, eine Farbe und verschieben Elemente – alles live im Spiel mit `/hud`. Clean, modern und aufgeräumt, dazu ein Tacho mit Gurt und Tempomat.

{% hint style="info" %}
🧪 **Getestet auf unserem Dev-Server:** Wir testen alle Skripte selbstverständlich permanent auf unserem eigenen Dev-Server „Pepper Scripts“.
{% endhint %}

{% hint style="success" %}
**Pepper HUD holen:** [pepper-scripts.tebex.store](https://pepper-scripts.tebex.store/)
{% endhint %}

### Funktionen

* **3 umschaltbare Stile** – Ringe, Balken und Pillen
* **Ingame-Menü `/hud`:** Stil, Akzentfarbe, Farbmodus, Größe, Deckkraft, jedes Element ein-/ausschaltbar
* Elemente mit der Maus frei verschieben, gespeichert pro Spieler
* Leben, Rüstung, Hunger, Durst, Ausdauer, Sauerstoff, Sprachchat (pma-voice & SaltyChat) inklusive Funk
* Bargeld, Bank, Schwarzgeld mit Plus/Minus-Animation, Job, Spieler-ID, Uhrzeit
* Kompass mit Straße und Gebiet, Munitionsanzeige
* **Tacho** mit Drehzahl, Gang, Tank, Motorzustand, Licht und Verriegelung (km/h oder mph)
* **Gurt** mit Herausschleudern bei Unfällen und **Tempomat**
* **Kinomodus** und eckige oder runde Minimap
* Anzeige nur bei Bedarf (z. B. Rüstung nur, wenn du welche hast)
* Sehr ressourcenschonend – sendet nur geänderte Werte an die Oberfläche
* Deutsch & Englisch, Config, Locales und Framework-Bridge offen

### Auf einen Blick

|                        |                                                                             |
| ---------------------- | --------------------------------------------------------------------------- |
| **Version**            | 1.0.0                                                                       |
| **Framework**          | ESX Legacy (mit esx\_status) **oder** QBCore                                |
| **OneSync**            | nicht erforderlich                                                          |
| **Optional**           | pma-voice oder SaltyChat (wird automatisch erkannt), beliebiges Tank-Script |
| **Nicht erforderlich** | Datenbank, ox\_lib                                                          |
| **Performance**        | ca. 0,02 ms im Leerlauf / 0,05 ms im Fahrzeug (Richtwert)                   |
| **Auslieferung**       | Cfx.re Asset Escrow (`config/`, `locales/`, `bridge/` offen)                |

### Installation

#### Voraussetzungen

| Voraussetzung      | Version                                                     |
| ------------------ | ----------------------------------------------------------- |
| FiveM-Server-Build | 7290+ (OneSync nicht erforderlich)                          |
| Framework          | ESX Legacy (Hunger/Durst über `esx_status`) **oder** QBCore |
| Optional           | pma-voice oder SaltyChat, beliebiges Tank-Script            |

Keine Datenbank und kein ox\_lib nötig.

#### Schritte

{% stepper %}
{% step %}
**Download**

Lade `pepper_hud` aus dem [Cfx.re Portal → Granted Assets](https://portal.cfx.re/assets/granted-assets) herunter.
{% endstep %}

{% step %}
**Kopieren**

Entpacke die Ressource nach `resources/[pepper]/pepper_hud`.
{% endstep %}

{% step %}
**server.cfg**

Starte sie **nach** deinem Framework:

```cfg
ensure es_extended   # or qb-core
ensure pepper_hud
```

{% endstep %}

{% step %}
**Andere HUDs deaktivieren**

Deaktiviere andere HUDs wie `esx_hud`, `qb-hud` oder `ps-hud` – sonst überlagern sich zwei HUDs.
{% endstep %}

{% step %}
**Nur QBCore**

Wenn `qb-smallresources` einen eigenen Gurt/Tempomat nutzt, schalte ihn dort ab **oder** setze `Config.Seatbelt.enabled` / `Config.Cruise.enabled` auf `false`.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Englische Texte: Setze `Config.Locale = 'en'` in `config/config.lua`.
{% endhint %}

### Konfiguration

Alles liegt in `config/config.lua` (offen). Das sind **Server-Standardwerte** – vieles davon können Spieler über `/hud` selbst ändern (lokal auf ihrem PC gespeichert, pro Server). Neue Spieler starten mit `Config.Defaults`.

#### Allgemein

| Option              | Standard | Beschreibung                                                     |
| ------------------- | -------- | ---------------------------------------------------------------- |
| `Config.Locale`     | `'de'`   | Sprache: `'de'` oder `'en'` (weitere über `locales/<code>.json`) |
| `Config.Framework`  | `'auto'` | `'auto'`, `'esx'` oder `'qbcore'`                                |
| `Config.Debug`      | `false`  | Debug-Ausgaben                                                   |
| `Config.Voice`      | `'auto'` | `'auto'`, `'pma-voice'`, `'saltychat'` oder `'none'`             |
| `Config.Clock`      | `'real'` | Uhr: `'real'` (Uhrzeit des Spielers) oder `'game'` (Spielzeit)   |
| `Config.ServerName` | `''`     | Optionaler Servername oben rechts (leer = aus)                   |

#### Währung (`Config.Currency`)

| Option     | Standard   | Beschreibung                              |
| ---------- | ---------- | ----------------------------------------- |
| `symbol`   | `'$'`      | Währungssymbol                            |
| `position` | `'before'` | `'before'` → $1,250 · `'after'` → 1.250 $ |
| `locale`   | `'en-US'`  | Zahlenformat (z. B. `'de-DE'`)            |

#### Befehle & Tasten

| Option                                              | Standard             | Beschreibung        |
| --------------------------------------------------- | -------------------- | ------------------- |
| `Config.Commands.menu`                              | `'hud'`              | Einstellungsmenü    |
| `Config.Commands.cinema`                            | `'cinema'`           | Kinomodus           |
| `Config.Commands.seatbelt` / `Config.Keys.seatbelt` | `'seatbelt'` / `'B'` | Gurt                |
| `Config.Commands.cruise` / `Config.Keys.cruise`     | `'cruise'` / `'Y'`   | Tempomat            |
| `Config.Keys.cinema`                                | `''`                 | Keine Standardtaste |

#### Gurt (`Config.Seatbelt`)

| Option        | Standard | Beschreibung                                                                                  |
| ------------- | -------- | --------------------------------------------------------------------------------------------- |
| `enabled`     | `true`   | `false`, wenn du ein anderes Gurt-Script nutzt                                                |
| `ejectSpeed`  | `90`     | km/h – ab dieser Geschwindigkeit werden Spieler ohne Gurt bei einem Unfall herausgeschleudert |
| `ejectDamage` | `20`     | Schaden beim Herausschleudern (`0` = keiner)                                                  |
| `lockExit`    | `true`   | Angeschnallte Spieler können erst nach dem Abschnallen aussteigen                             |
| `warnSpeed`   | `20`     | km/h – ab hier blinkt das Gurt-Symbol, wenn nicht angeschnallt                                |
| `sounds`      | `true`   | Klickgeräusch beim Anschnallen                                                                |

#### Tempomat & Minimap

| Option                          | Standard | Beschreibung                                                                                  |
| ------------------------------- | -------- | --------------------------------------------------------------------------------------------- |
| `Config.Cruise.enabled`         | `true`   | Tempomat an/aus                                                                               |
| `Config.Cruise.minSpeed`        | `30`     | km/h – Mindestgeschwindigkeit zum Aktivieren                                                  |
| `Config.Minimap.managed`        | `true`   | `false` = das HUD verändert die Minimap überhaupt nicht (wenn ein anderes Script sie steuert) |
| `Config.Minimap.hideHealthBars` | `true`   | Blendet die GTA-Balken für Leben/Rüstung unter der Minimap aus                                |

#### Menü-Rechte (`Config.Menu`)

| Option        | Standard | Beschreibung                        |
| ------------- | -------- | ----------------------------------- |
| `enabled`     | `true`   | Menü `/hud` an/aus                  |
| `allowStyle`  | `true`   | Spieler dürfen den Stil ändern      |
| `allowColors` | `true`   | Spieler dürfen die Farben ändern    |
| `allowLayout` | `true`   | Spieler dürfen Elemente verschieben |

#### Startwerte für neue Spieler (`Config.Defaults`)

| Option                 | Standard          | Beschreibung                                  |
| ---------------------- | ----------------- | --------------------------------------------- |
| `style`                | `'rings'`         | `'rings'`, `'bars'` oder `'pills'`            |
| `accent`               | `'#e5484d'`       | Akzentfarbe (Hex)                             |
| `colorMode`            | `'colored'`       | `'colored'`, `'accent'` oder `'mono'`         |
| `scale`                | `1.0`             | Größe 0,7–1,4                                 |
| `opacity`              | `1.0`             | Deckkraft 0,4–1,0                             |
| `speedUnit`            | `'kmh'`           | `'kmh'` oder `'mph'`                          |
| `minimapShape`         | `'square'`        | `'square'` oder `'circle'`                    |
| `minimapOnlyInVehicle` | `false`           | Minimap nur im Fahrzeug anzeigen              |
| `show`                 | alle an           | Sichtbare Elemente                            |
| `dynamic`              | Rüstung, Ausdauer | Elemente, die nur bei Bedarf angezeigt werden |
| `cinemaBars`           | `12`              | Höhe der Kinobalken in % (5–20)               |

#### Tank

`Config.GetFuel` liefert den Tankstand (0–100). Standardmäßig liest die Funktion das State Bag `fuel` (ox\_fuel) oder den GTA-Wert (LegacyFuel, cdn-fuel, ps-fuel …). Für andere Tank-Scripts passt du die Rückgabezeile an, zum Beispiel:

```lua
return exports['LegacyFuel']:GetFuel(vehicle)
```

#### Weitere Optionen

| Option                  | Beschreibung                                                    |
| ----------------------- | --------------------------------------------------------------- |
| `Config.Colors`         | Farben der Statusanzeigen im Modus `colored`                    |
| `Config.AccentPresets`  | Farben, die im Farbwähler des Menüs angeboten werden            |
| `Config.Intervals`      | Aktualisierungsintervalle: zu Fuß `250` ms, im Fahrzeug `60` ms |
| `Config.HideDefaultHud` | GTA-Standard-HUD-Elemente, die ausgeblendet werden              |

#### Eigene Status- oder Geldsysteme

Die Bridge-Dateien `bridge/client/esx.lua` und `bridge/client/qbcore.lua` sind offen. Dort kannst du eigene Status- oder Geldsysteme anbinden.

### Nutzung

#### Das Menü /hud

Gib `/hud` ein, um das Einstellungsmenü mit Live-Vorschau zu öffnen.

| Einstellung       | Optionen                                         |
| ----------------- | ------------------------------------------------ |
| Stil              | Ringe, Balken, Pillen                            |
| Akzentfarbe       | Vorlagen oder eigene Farbe                       |
| Farbmodus         | Bunt, Akzent, Weiß                               |
| Größe & Deckkraft | Frei einstellbar                                 |
| Elemente          | Jedes Element ein-/ausschalten, „nur bei Bedarf“ |
| Fahrzeug          | km/h oder mph, Minimap eckig oder rund           |
| Töne              | An / aus                                         |

Die Einstellungen werden **pro Spieler** auf seinem PC gespeichert (pro Server).

#### Elemente verschieben

Im Layout-Modus des Menüs ziehst du Elemente mit der Maus an eine beliebige Stelle. **Zurücksetzen** stellt das Standard-Layout wieder her.

#### Was das HUD anzeigt

| Bereich      | Inhalt                                                                                                      |
| ------------ | ----------------------------------------------------------------------------------------------------------- |
| Status       | Leben, Rüstung, Hunger, Durst, Ausdauer, Sauerstoff (nur unter Wasser), Sprachreichweite, Sprechen und Funk |
| Info         | Bargeld, Bank, Schwarzgeld (ESX) mit Plus/Minus-Animation, Job + Rang, Spieler-ID, Uhrzeit                  |
| Orientierung | Kompass (folgt der Kamera), Straße/Kreuzung und Gebiet                                                      |
| Waffe        | Munition im Magazin / Reserve                                                                               |
| Tacho        | Geschwindigkeit, Drehzahl, Gang, Tank, Motorzustand, Licht/Fernlicht, Verriegelung, Höhe bei Heli/Flugzeug  |

#### Gurt

Drück `B`, um dich anzuschnallen. Ohne Gurt kannst du bei einem Unfall oberhalb der eingestellten Geschwindigkeit herausgeschleudert werden; angeschnallt kannst du erst nach dem Abschnallen aussteigen. Fährst du nicht angeschnallt, blinkt ein Warnsymbol.

#### Tempomat

Drück `Y`, um die aktuelle Geschwindigkeit zu halten. Bremsen oder die Handbremse beenden den Tempomat.

#### Kinomodus

`/cinema` blendet HUD und Minimap aus und zeigt schwarze Balken (Höhe einstellbar).

{% hint style="info" %}
Spieler können die Tasten im Pausenmenü → Einstellungen → Tastenbelegung → FiveM ändern.
{% endhint %}

### Befehle & Exports

#### Befehle & Tasten

| Befehl      | Standardtaste | Funktion         |
| ----------- | ------------- | ---------------- |
| `/hud`      | –             | Einstellungsmenü |
| `/cinema`   | –             | Kinomodus an/aus |
| `/seatbelt` | `B`           | Gurt an/aus      |
| `/cruise`   | `Y`           | Tempomat an/aus  |

Die Befehlsnamen kannst du in `Config.Commands` ändern.

#### Exports (Client)

| Export             | Beschreibung                                                                    |
| ------------------ | ------------------------------------------------------------------------------- |
| `setVisible(bool)` | HUD ausblenden (`false`) oder einblenden (`true`) – z. B. für Handy oder Kamera |
| `isVisible()`      | Ist das HUD sichtbar?                                                           |
| `isSeatbeltOn()`   | Ist der Gurt angelegt?                                                          |
| `isCruiseActive()` | Ist der Tempomat aktiv?                                                         |
| `setCinema(bool)`  | Kinomodus an/aus                                                                |
| `openMenu()`       | Menü `/hud` öffnen                                                              |

Beispiel:

```lua
exports.pepper_hud:setVisible(false)
```

#### Gurtstatus

| Quelle                       | Beschreibung                                        |
| ---------------------------- | --------------------------------------------------- |
| Event `pepper_hud:seatbelt`  | Client-Event bei jeder Gurtänderung, Parameter `on` |
| `LocalPlayer.state.seatbelt` | Aktueller Gurtstatus als State Bag                  |

### FAQ

| Problem                              | Lösung                                                                                                            |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| Zwei HUDs auf dem Bildschirm         | Deaktiviere andere HUDs (`esx_hud`, `qb-hud`, `ps-hud` …).                                                        |
| Zwei Gurte / Tempomaten (QBCore)     | Schalte sie in `qb-smallresources` ab oder setze `Config.Seatbelt.enabled` / `Config.Cruise.enabled` auf `false`. |
| Hunger/Durst bleiben leer (ESX)      | Für Hunger und Durst wird `esx_status` benötigt.                                                                  |
| Tank zeigt immer 0 oder 100          | Passe `Config.GetFuel` an dein Tank-Script an (siehe **Konfiguration**).                                          |
| Minimap sieht falsch aus             | Ein anderes Script steuert die Minimap – setze `Config.Minimap.managed = false`.                                  |
| Spieler können den Stil nicht ändern | Prüfe `Config.Menu` (`allowStyle`, `allowColors`, `allowLayout`).                                                 |

<details>

<summary>Wo werden die Spieler-Einstellungen gespeichert?</summary>

Lokal auf dem PC des Spielers, pro Server. Eine Datenbank wird nicht benötigt.

</details>

<details>

<summary>Welche Voice-Systeme werden unterstützt?</summary>

pma-voice und SaltyChat – beide werden automatisch erkannt (`Config.Voice = 'auto'`).

</details>

<details>

<summary>Wie blende ich das HUD für mein Handy- oder Kamera-Script aus?</summary>

Ruf den Client-Export `setVisible(false)` und danach `setVisible(true)` auf – siehe **Befehle & Exports**.

</details>

### Changelog

#### 1.0.0 – 2026-09-27

**Erste Version**

* 3 Stile (Ringe, Balken, Pillen)
* Menü `/hud` mit Live-Vorschau und verschiebbaren Elementen
* Tacho, Gurt, Tempomat und Kinomodus
* Runde oder eckige Minimap
* ESX Legacy und QBCore
