> 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/jobs/pepper-bus.md).

# Pepper Bus

<figure><img src="https://content.gitbook.com/content/Irecym4R4dkBNbFKaJiy/blobs/xtrRv7rHpFjwpXkqGO2t/.gitbook/assets/bus-cover.png" alt="Pepper Bus"><figcaption></figcaption></figure>

Nicht einfach nur „von A nach B fahren“: Mit **Pepper Bus** fahren deine Spieler echte Linien. NPC-Fahrgäste warten an den Haltestellen, steigen ein und aus, der Fahrplan läuft mit und pünktliches, sanftes Fahren zahlt sich aus. Admins bauen neue Linien direkt im Spiel mit dem Linien-Editor.

{% 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 Bus holen:** [pepper-scripts.tebex.store](https://pepper-scripts.tebex.store/)
{% endhint %}

### Features

* Echter Linienbetrieb mit Haltestellen, Türen, Einsteigen, Aussteigen und Mindesthaltezeit
* **Fahrplan mit Pünktlichkeit** – wer zu früh abfährt, lässt Fahrgäste stehen
* **Linien-Editor im Spiel** – Haltestellen an deiner Position setzen, sortieren, Testfahrt, Gegenrichtung
* **14 fertige Linien** und **10 Linientypen**, z. B. Stadtlinie, Schulbus, Flughafen, Nachtlinie, Stadtrundfahrt, Überland, Party-Charter
* **9 Fahrgasttypen** mit eigenen Fahrpreisen und Komfortansprüchen, echte NPCs an Bord
* Karriere mit **50 Leveln**, **6 Bussen** vom Shuttlebus bis zum Festival-Bus, Reputation und 1–5 Sterne Bewertung
* Leitstelle mit Linienangeboten und Bonus für Linien, die länger niemand gefahren ist
* Tägliche und wöchentliche Challenges, Bonus für aktive Dienstzeit
* **Busunternehmen** – öffentlich oder als Spielerfirma – mit Mitarbeitern, Rängen, Gehältern und Firmenkonto
* **Adminpanel** mit Offline-Bearbeitung und Audit-Log
* Serverseitige Auszahlungen, Schutz vor doppelten Auszahlungen und Teleports
* Deutsch & Englisch, Config und Locales offen

### Auf einen Blick

|                        |                                                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Version**            | 1.0.0                                                                                                         |
| **Framework**          | ESX Legacy 1.9+                                                                                               |
| **OneSync**            | erforderlich                                                                                                  |
| **Abhängigkeiten**     | [es\_extended](https://github.com/esx-framework/esx_core), [oxmysql](https://github.com/overextended/oxmysql) |
| **Nicht erforderlich** | ox\_lib, ox\_target, ox\_inventory                                                                            |
| **Performance**        | ca. 0,02 ms im Leerlauf / 0,12 ms im Dienst (Richtwert)                                                       |
| **Auslieferung**       | Cfx.re Asset Escrow (`config/`, `locales/`, `sql/` offen)                                                     |

{% hint style="info" %}
**Open-Source-Variante:** Pepper Bus gibt es auch als **Pepper Bus (Open Source)** mit dem vollständigen, unverschlüsselten Quellcode – siehe [Shop](https://pepper-scripts.tebex.store/).
{% endhint %}

### Installation

#### Voraussetzungen

| Voraussetzung      | Version                                            |
| ------------------ | -------------------------------------------------- |
| FiveM-Server-Build | 7290+ mit **OneSync**                              |
| Framework          | ESX Legacy 1.9+ (`es_extended`)                    |
| Datenbank          | [oxmysql](https://github.com/overextended/oxmysql) |

ox\_lib, ox\_target und ox\_inventory werden **nicht** benötigt.

#### Schritte

{% stepper %}
{% step %}
**Herunterladen**

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

{% step %}
**Kopieren**

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

{% step %}
**Datenbank**

Lass `Config.Database.AutoInstall = true` (Standard) – fehlende Tabellen werden beim ersten Start angelegt. Alternativ importierst du `sql/install.sql` manuell. Beim ersten Start werden die **14 Standardlinien** angelegt (`Config.Database.SeedDefaultRoutes`).
{% endstep %}

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

Trage die Ressource nach ihren Abhängigkeiten ein:

```cfg
ensure oxmysql
ensure es_extended
ensure pepper_bus
```

{% endstep %}

{% step %}
**Adminrechte**

Vergib Adminrechte (siehe unten).
{% endstep %}

{% step %}
**Standardlinien prüfen**

Fahr die Standardlinien einmal ab und korrigiere Haltestellen bei Bedarf im **Linien-Editor**.
{% endstep %}

{% step %}
**Loslegen**

Fahr zum Busbetriebshof (Bus-Symbol auf der Karte) und drück `E`.
{% endstep %}
{% endstepper %}

#### Adminrechte

ESX-Gruppe in `Config.Admin.Groups` (Standard: `superadmin`, `admin`) **oder** ACE-Berechtigung:

```cfg
add_ace group.admin pepper_bus.admin allow
```

#### Datenbank

`sql/install.sql` kann gefahrlos mehrfach importiert werden. Die Datei enthält Tabellen für Karriere, Statistiken, Challenges, Freischaltungen, **Linien und Haltestellen**, Unternehmen, Admin-Logs und Linienverlauf.

{% hint style="info" %}
Linien liegen in der Datenbank – Updates der Ressource überschreiben deine Linien nie. Karrieredaten werden pro ESX-Charakter gespeichert (Multicharacter-kompatibel).
{% endhint %}

### Konfiguration

Alle Einstellungen liegen offen in `config/`. Starte die Ressource nach Änderungen neu.

#### Dateien

| Datei                   | Inhalt                                                                                                                                                         |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `config/config.lua`     | Sprache, Betriebshof, Leitstelle, Haltestellen, Fahrplan, AFK, Sicherheit, Fahrgäste, Vergütung, Schaden, Bewertung, Reputation, Unternehmen, Admin, Sounds/UI |
| `config/vehicles.lua`   | Fahrzeugklassen und Busse (Kapazität, Voraussetzungen)                                                                                                         |
| `config/levels.lua`     | XP-Kurve, Titel, Karrierebonus, Level-Belohnungen                                                                                                              |
| `config/passengers.lua` | Fahrgasttypen                                                                                                                                                  |
| `config/routetypes.lua` | Linientypen (Voraussetzungen, erlaubte Busse, Fahrgastmix, Vergütung, Zeiten)                                                                                  |
| `config/routes.lua`     | Standard-Haltestellen und -Linien (nur für den ersten Start / Import)                                                                                          |
| `config/challenges.lua` | Pools für tägliche und wöchentliche Challenges                                                                                                                 |
| `config/server.lua`     | Nur serverseitig: optionaler Discord-Webhook                                                                                                                   |

#### Allgemein

| Option                              | Standard | Beschreibung                                              |
| ----------------------------------- | -------- | --------------------------------------------------------- |
| `Config.Locale`                     | `'de'`   | Sprache: `'de'` oder `'en'`                               |
| `Config.Debug`                      | `false`  | Ausführliche Konsolen-Logs                                |
| `Config.Currency`                   | `'$'`    | Währungssymbol                                            |
| `Config.TimeSource`                 | `'game'` | Tageszeit für Linien/Fahrgäste: `'game'` oder `'server'`  |
| `Config.Database.AutoInstall`       | `true`   | Fehlende Tabellen beim Start anlegen                      |
| `Config.Database.SeedDefaultRoutes` | `true`   | Standardlinien anlegen, wenn noch keine Linien existieren |

#### Betriebshof (`Config.Center`)

| Option             | Standard               | Beschreibung                                                          |
| ------------------ | ---------------------- | --------------------------------------------------------------------- |
| `Label`            | `'Los Santos Transit'` | Name des Betriebshofs                                                 |
| `Terminal`         | Betriebshof            | Interaktionspunkt (`E` drücken)                                       |
| `SpawnPoints`      | 4 Plätze               | Spawnpunkte für Busse, werden der Reihe nach auf freien Platz geprüft |
| `MaxStartDistance` | `70.0`                 | Schichten können nur in dieser Nähe zum Betriebshof beginnen          |

#### Tablet & Leitstelle

| Option                                            | Standard      | Beschreibung                                                                                        |
| ------------------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------- |
| `Config.Tablet.DefaultKey`                        | `'F7'`        | Taste für das Tablet (Spieler können sie neu belegen)                                               |
| `Config.Tablet.AcceptKey` / `DeclineKey`          | `'Y'` / `'N'` | Angebote der Leitstelle annehmen oder ablehnen                                                      |
| `Config.Dispatch.Enabled`                         | `false`       | `false`: Fahrer wählen Linien selbst im Tablet · `true`: Die Leitstelle bietet zusätzlich Linien an |
| `Config.Dispatch.MinOfferDelay` / `MaxOfferDelay` | `45` / `240`  | Sekunden zwischen Angeboten                                                                         |
| `Config.Dispatch.OfferTimeout`                    | `30`          | Sekunden, um ein Angebot anzunehmen                                                                 |
| `Config.Dispatch.DemandBonusMax`                  | `0.25`        | Bis zu +25 % für Linien, die länger niemand gefahren ist                                            |

#### Haltestellen & Fahrplan

| Option                            | Standard | Beschreibung                                              |
| --------------------------------- | -------- | --------------------------------------------------------- |
| `Config.Stops.Radius`             | `14.0`   | Standardradius der Haltestelle (pro Haltestelle änderbar) |
| `Config.Stops.BaseDwell`          | `4`      | Mindesthaltezeit pro Haltestelle (Sekunden) …             |
| `Config.Stops.DwellPerPassenger`  | `1.2`    | … plus Sekunden pro ein- oder aussteigendem Fahrgast      |
| `Config.Stops.MaxDwell`           | `25`     | Maximale Haltezeit                                        |
| `Config.Stops.MinStopDistance`    | `40.0`   | Linien-Editor: Mindestabstand zwischen zwei Haltestellen  |
| `Config.Schedule.OnTimeTolerance` | `45`     | ± Sekunden, die noch als pünktlich gelten                 |
| `Config.Schedule.EarlyLimit`      | `60`     | Mehr als 60 s zu früh = zu früh abgefahren                |

#### Fahrgäste (`Config.Passengers`)

| Option            | Standard   | Beschreibung                                      |
| ----------------- | ---------- | ------------------------------------------------- |
| `RushHours`       | 7–9, 16–19 | In diesen Stunden warten mehr Fahrgäste           |
| `RushFactor`      | `1.6`      | Fahrgastfaktor im Berufsverkehr                   |
| `NightFactor`     | `0.5`      | Weniger Fahrgäste von 0–5 Uhr (außer Nachtlinien) |
| `MaxBoardPerStop` | `8`        | Maximal einsteigende Fahrgäste pro Haltestelle    |
| `MaxVisible`      | `12`       | Sichtbare NPCs im Bus (der Rest wird nur gezählt) |

#### Vergütung (`Config.Economy`)

| Option               | Standard | Beschreibung                                             |
| -------------------- | -------- | -------------------------------------------------------- |
| `PayAccount`         | `'bank'` | `'bank'` oder `'money'`                                  |
| `GlobalMultiplier`   | `1.0`    | Multipliziert alle Auszahlungen                          |
| `FarePerStop`        | `9`      | Pro Fahrgast und gefahrener Haltestelle …                |
| `FareBase`           | `6`      | … plus Grundpreis pro Fahrgast                           |
| `StopBonus`          | `12`     | Pro korrekt bedienter Haltestelle                        |
| `PunctualBonus`      | `10`     | Zusätzlich pro pünktlicher Haltestelle                   |
| `AbortPayout`        | `0.4`    | Bei Abbruch: 40 % der bis dahin eingenommenen Fahrpreise |
| `MinPayout`          | `50`     | Mindestauszahlung für eine abgeschlossene Linie          |
| `MaxRepairDeduction` | `0.8`    | Reparaturabzug max. 80 %                                 |

#### Bewertung, Reputation & Dienstbonus

| Option                                | Standard | Beschreibung                                             |
| ------------------------------------- | -------- | -------------------------------------------------------- |
| `Config.Rating.SpeedLimit`            | `25.0`   | m/s (\~90 km/h) × Toleranz des Linientyps                |
| `Config.Rating.EarlyDeparturePenalty` | `0.4`    | Sternabzug pro zu früh verlassener Haltestelle           |
| `Config.Reputation.Tiers`             | 6 Stufen | Bronze bis Legende, jeweils mit Vergütungsbonus (0–15 %) |
| `Config.DutyBonus.DutyBonusXP`        | `150`    | XP pro Stunde aktiver Dienstzeit                         |

#### Fahrzeuge, Sonderfahrten & Unternehmen

| Option                                | Standard | Beschreibung                                        |
| ------------------------------------- | -------- | --------------------------------------------------- |
| `Config.VehicleRules.PlatePrefix`     | `'LST'`  | Präfix für Kennzeichen                              |
| `Config.VehicleRules.DeleteOnDutyEnd` | `true`   | Bus bei Schichtende entfernen                       |
| `Config.PlayerCharter.Enabled`        | `true`   | Sonderfahrten für Spieler (keine Script-Auszahlung) |
| `Config.Company.AllowPurchase`        | `true`   | Spieler können das Unternehmen übernehmen           |
| `Config.Company.PurchasePrice`        | `900000` | Kaufpreis                                           |
| `Config.Company.VehicleSpawnCost`     | `250`    | Betriebskosten pro ausgefahrenem Bus                |
| `Config.Company.SalaryInterval`       | `1800`   | Sekunden aktiver Dienstzeit pro Gehaltszahlung      |
| `Config.Company.DefaultRanks`         | 5 Ränge  | Gehalt, Anteil und Rechte pro Rang                  |

Neue Busse fügst du in `config/vehicles.lua` mit eindeutigem `key`, Spawn-`model`, Klasse, `capacity` und Voraussetzungen hinzu. Die Klasse entscheidet, welche Linientypen der Bus fahren darf.

#### Admin & Linien-Editor

| Option                          | Standard              | Beschreibung                                                   |
| ------------------------------- | --------------------- | -------------------------------------------------------------- |
| `Config.Admin.Groups`           | `superadmin`, `admin` | ESX-Gruppen mit Adminzugriff                                   |
| `Config.Admin.Ace`              | `'pepper_bus.admin'`  | ACE-Berechtigung als Alternative                               |
| `Config.Admin.RequireReason`    | `true`                | Begründung bei Änderungen an Spielern/Unternehmen erforderlich |
| `Config.Admin.AllowTeleport`    | `true`                | Admins dürfen sich im Editor zu Haltestellen teleportieren     |
| `Config.Admin.EditorCommand`    | `'busstop'`           | Befehl, um deine Position als Haltestelle hinzuzufügen         |
| `Config.Admin.MaxRoutes`        | `100`                 | Maximale Anzahl an Linien                                      |
| `Config.Admin.MaxStopsPerRoute` | `40`                  | Maximale Haltestellen pro Linie                                |

{% hint style="warning" %}
Benenne Fahrzeug-`key`s oder Challenge-`id`s nach dem Livegang nicht mehr um – sie werden in der Datenbank gespeichert.
{% endhint %}

### Spielablauf & Linien-Editor

#### Schicht beginnen

1. Fahr zum **Busbetriebshof** (Bus-Symbol auf der Karte) und drück `E` am Terminal.
2. Wähle einen freigeschalteten Bus – er erscheint auf einem freien Parkplatz.
3. Kein ESX-Job nötig – jeder Spieler kann fahren.

#### Linie wählen

* Öffne das Tablet (`F7`) und such dir selbst eine Linie aus. Gesperrte Linien zeigen den Grund (Level, Reputation, Uhrzeit, falscher Bus).
* Wenn der Server die Leitstelle aktiviert (`Config.Dispatch.Enabled`), bekommst du zusätzlich Linienangebote – annehmen mit `Y`, ablehnen mit `N`. Linien, die länger niemand gefahren ist, bringen einen Bonus.

#### Linie fahren

{% stepper %}
{% step %}
**An der Haltestelle halten**

Halte innerhalb des Haltestellenradius (unter ca. 5 km/h). Die Türen öffnen sich automatisch.
{% endstep %}

{% step %}
**Ein- & Aussteigen**

Fahrgäste steigen aus und ein. Das HUD zeigt die Haltezeit („Türen offen“) – wer zu früh abfährt, lässt Fahrgäste stehen.
{% endstep %}

{% step %}
**Fahrplan einhalten**

Die Fahrplanzeiten beginnen mit der ersten Abfahrt. Die Pünktlichkeit siehst du live im HUD, und jede pünktliche Haltestelle bringt einen Bonus.
{% endstep %}

{% step %}
**Endhaltestelle**

An der letzten Haltestelle bekommst du dein Ergebnis: Sterne, Auszahlung, XP und Reputation.
{% endstep %}
{% endstepper %}

#### Linientypen & Fahrgäste

**10 Linientypen:** Shuttle, Stadtlinie, Schulbus, Flughafen, Nachtlinie, Stadtrundfahrt, Express, Überland, Event-Shuttle und Party-Charter.

**9 Fahrgasttypen** (z. B. Pendler, Schüler, Senioren, Touristen, Reisende, Partygäste) mit eigenem Fahrpreis, Tempo und Komfortansprüchen.

#### Busse

| Bus             | Klasse       | Plätze |
| --------------- | ------------ | ------ |
| Shuttlebus      | Shuttle      | 9      |
| Stadtbus        | Stadtbus     | 16     |
| Flughafenbus    | Flughafenbus | 16     |
| Sightseeing-Bus | Rundfahrt    | 10     |
| Reisebus        | Reisebus     | 16     |
| Festival-Bus    | Eventbus     | 12     |

#### Bewertung & Karriere

* **Sterne (1–5)** aus Pünktlichkeit, sanfter Fahrweise, Geschwindigkeit, Kollisionen und Schaden – mit Begründung
* **50 Level** mit Titeln und Level-Belohnungen, **Reputation** Bronze → Legende
* **Challenges** täglich und wöchentlich (Linien, Fahrgäste, Haltestellen, Pünktlichkeit, km, Verdienst)
* **Sonderfahrten** für Spieler: keine Linienangebote und keine Script-Auszahlung während der Fahrt

#### Busunternehmen

| Modus                     | Beschreibung                                                                                                                                      |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Öffentlich** (Standard) | Niemandem gehört das Unternehmen – alle fahren und bekommen die volle Auszahlung.                                                                 |
| **Spielerfirma**          | Nur Inhaber und Mitarbeiter fahren. Auszahlungen gehen an das Unternehmen, Fahrer erhalten ihren Anteil, Gehälter werden vom Firmenkonto gezahlt. |

#### Linien-Editor (Admins)

Tablet (`F7`) → **Admin → Linien-Editor**.

{% stepper %}
{% step %}
**Neue Linie**

Gib Nummer, Name, Linientyp und optional ein Mindestlevel ein.
{% endstep %}

{% step %}
**Haltestellen hinzufügen**

Fahr die Strecke mit einem Bus ab und drück an jeder Haltestelle **„Haltestelle an meiner Position“** – oder tipp `/busstop`, ohne das Tablet zu öffnen (der offene Entwurf bleibt erhalten).
{% endstep %}

{% step %}
**Feinschliff**

Benenne Haltestellen um (der Straßenname wird vorgeschlagen), sortiere sie, erfasse die Position neu, füge Haltestellen ein und lege Radius, Fahrgastaufkommen (0,2–3,0) und zusätzliche Haltezeit fest.
{% endstep %}

{% step %}
**Vorschau & Speichern**

**Auf Karte anzeigen** zeigt alle Haltestellen nummeriert für 5 Minuten. **Speichern** macht die Linie sofort für alle Fahrer verfügbar (wenn aktiv). **Testfahrt** fährt die Linie ohne Voraussetzungen und ohne Belohnungen. **Kopieren** / **Gegenrichtung** erstellen eine inaktive Kopie.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Eine Linie braucht mindestens 2 und höchstens `Config.Admin.MaxStopsPerRoute` Haltestellen. Laufende Fahrten nutzen eine Kopie der Linie – Änderungen gelten ab der nächsten Fahrt. **„Standardlinien“** legt fehlende Linien aus `config/routes.lua` neu an, ohne bestehende zu verändern.
{% endhint %}

#### Adminpanel

Tablet → **Admin**: Spieler suchen (auch offline), XP, Level, Reputation, Statistiken, Challenges und Freischaltungen bearbeiten, das Unternehmen verwalten – jede Änderung wird im Audit-Log festgehalten.

### Befehle & Exports

#### Befehle & Tasten

| Befehl        | Taste | Funktion                                                                       |
| ------------- | ----- | ------------------------------------------------------------------------------ |
| `/bustablet`  | `F7`  | Tablet öffnen (im Dienst oder als Admin überall, sonst am Betriebshof)         |
| `/busaccept`  | `Y`   | Angebot der Leitstelle annehmen                                                |
| `/busdecline` | `N`   | Angebot der Leitstelle ablehnen                                                |
| `/busstop`    | –     | Admin: aktuelle Position als Haltestelle zum offenen Editor-Entwurf hinzufügen |

{% hint style="info" %}
Spieler können die Tasten in den GTA-Einstellungen → Tastenbelegung → FiveM ändern.
{% endhint %}

#### Exports (Server)

| Export                                     | Rückgabe / Beschreibung                                                                     |
| ------------------------------------------ | ------------------------------------------------------------------------------------------- |
| `GetBusPlayerData(source)`                 | Karriere und Statistiken                                                                    |
| `IsBusDriverOnDuty(source)`                | `boolean`                                                                                   |
| `GetBusDriverStatus(source)`               | Status, z. B. `'OFF_DUTY'`, `'AVAILABLE'`, `'AT_STOP'`, `'ON_ROUTE'`                        |
| `GetBusDriverLine(source)`                 | Aktuelle Linie (Nummer, Bezeichnung, Abschnitt, Haltestellen, Fahrgäste an Bord) oder `nil` |
| `SetPlayerCharterActive(source, active)`   | Sonderfahrt ein-/ausschalten – gibt `ok, reason` zurück                                     |
| `GetOnDutyDrivers()`                       | Liste der Fahrer im Dienst mit ihrer Linie                                                  |
| `GetBusRoutes()`                           | Alle Linien inkl. Haltestellen (z. B. für eine Fahrplan-App)                                |
| `GetBusCompany()`                          | Unternehmensinfos (Bezeichnung, Modus, Kontostand, Mitarbeiter, Inhaber)                    |
| `IsBusCompanyEmployee(sourceOrIdentifier)` | Prüfung auf Mitarbeiter                                                                     |

Beispiel:

```lua
local line = exports.pepper_bus:GetBusDriverLine(source)
```

{% hint style="info" %}
Es gibt bewusst **keinen** Export, mit dem andere Ressourcen Geld, XP oder Reputation erzeugen können.
{% endhint %}

### FAQ

| Problem                        | Lösung                                                                                                         |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| Tabellen fehlen                | `sql/install.sql` importieren oder `Config.Database.AutoInstall = true` setzen.                                |
| Keine Linien                   | Admin → Linien-Editor → „Standardlinien“, oder eine eigene Linie anlegen und aktiv setzen.                     |
| Linie gesperrt                 | Der Grund steht auf der Karte (Level, Reputation, Tageszeit, falscher Bus).                                    |
| Haltestelle wird nicht erkannt | Innerhalb des Radius **anhalten** (unter ca. 5 km/h). Radius im Editor vergrößern oder Haltestelle neu setzen. |
| Fahrgäste bleiben stehen       | Du bist zu früh abgefahren – das HUD zeigt die Haltezeit („Türen offen“).                                      |
| „Fahrt war nicht plausibel“    | Teleport oder Abkürzung zwischen Haltestellen erkannt (siehe Serverkonsole).                                   |
| Adminbereich fehlt             | ESX-Gruppe in `Config.Admin.Groups` oder ACE `pepper_bus.admin`.                                               |

<details>

<summary>Brauchen Spieler einen ESX-Job?</summary>

Nein. Jeder kann am Betriebshof in den Dienst gehen.

</details>

<details>

<summary>Überschreibt ein Update meine Linien?</summary>

Nein. Linien liegen in der Datenbank und werden von Updates nie überschrieben.

</details>

<details>

<summary>Warum bekomme ich keine Linienangebote von der Leitstelle?</summary>

Standardmäßig wählen Fahrer ihre Linien selbst im Tablet (`Config.Dispatch.Enabled = false`). Setz den Wert auf `true`, um zusätzlich Angebote zu erhalten.

</details>

<details>

<summary>Kommt sich F7 mit Pepper Taxi oder Pepper Trucking in die Quere?</summary>

Nein – Taxi nutzt F6 und Trucking F9. Außerdem kann jeder Spieler die Taste neu belegen.

</details>

### Changelog

#### Nächstes Update

**Geändert**

* Fahrer wählen ihre Linien selbst im Tablet – standardmäßig vergibt die Leitstelle keine Linien mehr (`Config.Dispatch.Enabled = false`, lässt sich wieder einschalten)

**Behoben**

* An Haltestellen öffnen sich nur noch die Fahrgasttüren – nicht mehr Motorhaube, Kofferraum und Fahrertür (pro Bus über `doors` einstellbar)
* Absturz beim Firmenkonto und verschobenes Challenge-Popup
* Linien-Editor: breitere Haltestellenliste, abgeschnittene Spalten und Buttons

#### 1.0.0 – 2026-09-26

**Erste Version**

* Busfahrer-Karriere mit 50 Leveln, Reputation und 6 Bussen vom Shuttlebus bis zum Festival-Bus
* Echter Linienbetrieb: Haltestellen, Türen, Ein- und Aussteigen, Mindesthaltezeit, Fahrplan mit Pünktlichkeit
* 14 Standardlinien, 10 Linientypen, 9 Fahrgasttypen, Angebote der Leitstelle mit Nachfragebonus
* 1–5 Sterne Bewertung, tägliche und wöchentliche Challenges, Dienstbonus, Sonderfahrten für Spieler
* Busunternehmen (öffentlich oder als Spielerfirma) mit Mitarbeitern, Rängen, Gehältern und Firmenkonto
* Linien-Editor im Spiel (inkl. `/busstop`, Vorschau, Testfahrt, Kopieren, Gegenrichtung), Adminpanel mit Offline-Bearbeitung und Audit-Log
* Fahrer-Tablet, HUD, Sounds; Deutsch und Englisch
