Dokumentation
Offizielle Installations- und Konfigurationsanleitung für die aktuell erhältlichen Nebula Scripts: nebula_core, nebula_fuel, nebula_pricechecker und nebula_scoreboard.
Was ist enthalten?
Der Nebula Store bietet aktuell vier Ressourcen an. nebula_core ist das gemeinsame Fundament, die übrigen drei sind eigenständige Scripts, die sich optional darauf aufsetzen.
Voraussetzungen
Je nachdem, welche Scripts du einsetzt, brauchst du unterschiedliche Abhängigkeiten. Die folgende Tabelle zeigt, welches Script was voraussetzt.
| Ressource | Zweck | Benötigt von |
|---|---|---|
| oxmysql | Datenbankanbindung | nebula_core, nebula_scoreboard |
| es_extended | ESX Framework — Geld, Inventar, Player | nebula_scoreboard (Pflicht), core/fuel/pricechecker (eine von mehreren Optionen) |
| qb-core | QBCore Framework — Alternative zu ESX | core/fuel/pricechecker (optional) |
| qbx_core | QBox Framework — weitere Alternative | core/fuel/pricechecker (optional) |
| ox_core | ox_core Framework — weitere Alternative | nebula_core (optional) |
| ox_inventory | Inventarsystem (wird bevorzugt erkannt) | fuel/pricechecker (optional) |
| qs-inventory / qb-inventory / codem-inventory | Alternative Inventarsysteme | fuel/pricechecker (optional) |
| nebula_notify | Interaktionshinweise & Benachrichtigungen | fuel (Dependency), pricechecker (optional mit Fallback) |
Config.UseNebulaNotify). nebula_fuel deklariert nebula_notify dagegen als feste Dependency in seiner fxmanifest.lua.Startreihenfolge
nebula_core sollte immer zuerst starten, danach die Datenbank/Framework-Abhängigkeiten der jeweiligen Scripts.
# Datenbank & Framework (nur das, was du verwendest) ensure oxmysql ensure es_extended # oder qb-core / qbx_core # Optional: ox_inventory, qs-inventory, etc. ensure ox_inventory # Nebula Core zuerst ensure nebula_core ensure nebula_notify # Danach die gewünschten Scripts ensure nebula_fuel ensure nebula_pricechecker ensure nebula_scoreboard # unabhängig, braucht nur ESX + oxmysql
nebula_core
Das Fundament des Nebula-Ökosystems. Verwaltet die Datenbank, die dynamische Preis-Engine, ein mehrstufiges Anti-Tamper-System (Registry, Heartbeat, Crypto-Challenge) und stellt Exports für alle anderen Nebula-Scripts bereit.
Installation
/resources/[nebula]/nebula_core/ ├── config.lua ├── fxmanifest.lua ├── migration_fix_shopid.sql ├── server/ │ ├── adapters.lua ← Framework/Inventory Auto-Detection │ ├── db.lua ← Database layer │ ├── logger.lua ← Discord Webhook Logging │ ├── pricing.lua ← Dynamische Preis-Engine │ ├── registry.lua ← Anti-Tamper: erlaubte Resourcen │ ├── challenge.lua ← Crypto-Challenge (Heartbeat) │ ├── banner.lua │ ├── admin.lua │ ├── utils.lua │ └── main.lua └── shared/ └── api.lua ← Event-Namen für andere Scripts
NebulaCore.Bundle.AllowedScripts stehen alle Resourcen, die sich mit dem Core verbinden dürfen. Eigene Erweiterungen musst du hier eintragen, sonst schlägt die Crypto-Challenge fehl.StrictMode = true lehnt unbekannte Resourcen ab. Zum Testen von Custom-Erweiterungen temporär auf false setzen.ensure nebula_core
nebula_fuel
Tankstellen-System mit realistischem Verbrauch basierend auf Drehzahl und Geschwindigkeit, Kanister-Mechanik und automatischer Erkennung von Zapfsäulen — auch bei eigenen MLOs, ohne manuelle Konfiguration.
Features
| Bereich | Beschreibung |
|---|---|
| Auto-Detection | Erkennt Framework (ESX/QBCore/QBox/Standalone) und Inventory (ox_inventory, qb-inventory, qs-inventory, codem-inventory) automatisch |
| Verbrauch | Realistischer Verbrauch abhängig von Drehzahl & Speed, Motor schaltet bei leerem Tank ab |
| Kanister | Leer kaufen, an der Zapfsäule befüllen, am Fahrzeug benutzen |
| Tankstellen | 22 vordefinierte Tankstellen, zusätzliche MLO/Custom-Pumpen werden per Prop-Scan automatisch erkannt |
| Sprachen | Deutsch & Englisch, leicht erweiterbar |
| Anti-Cheat | Server-seitige Distanz- und Plausibilitätsprüfung beim Bezahlen |
Installation
jerrycan_empty und jerrycan_full. Bei ox_inventory ist jerrycan_full als usable Item mit Export nebula_fuel.useJerryCan zu hinterlegen, bei QBCore/QBox wird das usable Item automatisch beim Start registriert.ensure nebula_fuel
[nebula_fuel] loaded | Framework: esx | Inventory: ox_inventory | Pump-Models: 8Neue Tankstellen bekannt machen
Der Server akzeptiert Tankvorgänge nur an Stationen, die er kennt (Config.StaticStations oder zur Laufzeit synchronisiert). Bei einer neuen MLO-Tankstelle: hinfahren, im Chat /fuelsync eingeben — der Client meldet alle sichtbaren Zapfsäulen an den Server, neue werden übernommen und bei Config.SyncCommand.persist = true dauerhaft gespeichert. Zurücksetzen per Konsole: fuelsync_clear.
Konfiguration
| Variable | Beschreibung |
|---|---|
| Config.PricePerLiter | Preis pro Liter |
| Config.JerryCanPrice / JerryCanFillPrice | Preis für leeren Kanister / Befüllen |
| Config.TankSizes | Tankgröße pro GTA-Fahrzeugklasse |
| Config.ConsumptionEnabled | Verbrauchssimulation an/aus |
| Config.PumpModels | Erkannte Zapfsäulen-Props |
| Config.ServerDistanceCheck / ServerCheckRadius | Server-seitige Distanzprüfung (Standard: 60m) |
| Config.Framework / Config.Inventory | Manuelles Override, falls Auto-Detection nicht greift (statt 'auto') |
Steuerung
| Taste | Aktion |
|---|---|
| E | Tankstelle / Zapfsäule öffnen |
| ESC | Menü schließen |
nebula_pricechecker
Zeigt Marktpreise an mehreren Standorten in einer NUI-Oberfläche im Nebula-Design an — mit Trend-Pfeilen, Kategorien und automatischer Preisrotation, die sich stündlich am eingestellten Bereich orientiert.
Features
| Bereich | Beschreibung |
|---|---|
| Marktplätze | 4 vorkonfigurierte Standorte (Hauptmarkt, Rohstoffmarkt, Essensmarkt, Metallmarkt), jeweils mit eigenem Item-Filter |
| Kategorien | Rohstoffe, Essen, Metall, Elektronik, Chemie, Textilien — insgesamt 24 vordefinierte Items mit Basis-, Min- und Max-Preis |
| Trend-Anzeige | Preiskarten zeigen einen Auf-/Ab-Pfeil, sobald sich der Preis um mehr als 6% der Preisspanne verändert hat, Sortierung standardmäßig nach Trend |
| Inventar-Icons | Erkennt automatisch ox_inventory, qb-inventory, lj-inventory, qs-inventory, ps-inventory, codem-inventory, origen_inventory, core_inventory, tgiann-inventory für passende Item-Bilder |
| Notify-Fallback | Nutzt nebula_notify für Interaktionshinweise, fällt bei Bedarf automatisch auf die native GTA-Hilfe zurück |
Installation
Config.Shops definiert (id, label, category, coords, blip), Items unter Config.Items mit basePrice/min/max je Kategorie.ensure nebula_pricechecker
Konfiguration
| Variable | Beschreibung |
|---|---|
| Config.PriceUpdateInterval | Sekunden zwischen Preisänderungen (Standard: 3600) |
| Config.MaxChangePercent / MinChangePercent | Max./min. Änderung pro Update als Anteil der Preisspanne (max-min) |
| Config.UseNebulaNotify | Nutzung von nebula_notify für Hinweise/Fehler an/aus |
| Config.InventoryImgPath | Manueller Pfad zu Item-Bildern, falls das Inventory nicht automatisch erkannt wird, oder false zum Deaktivieren |
| Config.Shops | Marktplätze mit Standort, Kategorie-Filter und optionalem Blip |
| Config.Items | Item-Liste mit id, name, category, icon, basePrice, min, max |
Steuerung
| Taste | Aktion |
|---|---|
| E | Marktpreise am Marker öffnen |
nebula_scoreboard
Scoreboard mit Server-Stats für ESX. Statt exakter Zahlen pro Kategorie zeigt es je nach Schwellenwert entweder ✓ / ✕ oder die tatsächliche Anzahl an — praktisch, um Diensthabende sichtbar zu machen, ohne genaue Personalstärken preiszugeben.
Anzeige-Logik
Config.Thresholds): Wert = 0 → ✕ (rot), 0 < Wert < Threshold → die genaue Zahl, Wert ≥ Threshold → ✓ (grün). Beispiel bei Threshold=10 für Polizei: 0 Polizisten → ✕, 3 Polizisten → 3, 10+ Polizisten → ✓.Angezeigte Kategorien
| Icon | Bedeutung |
|---|---|
| 👮 | Polizei im Dienst |
| 🚑 | Sanitäter im Dienst |
| ⚖️ | Justiz / Richter online |
| ⚖️ | Anwälte im Dienst |
| 🔧 | Mechaniker im Dienst |
| 🛡️ | Gesucht / Wanted (aus user_wanteds) |
| ⚙️ | Admins online (ESX-Gruppen aus Config.AdminGroups) |
Installation
Config.Jobs und Config.AdminGroups deine Job- und Gruppennamen eintragen, ebenso die DB-Tabellen für owned_vehicles / owned_properties / user_wanteds unter Config.DB.ensure nebula_scoreboard
Steuerung
| Taste / Befehl | Aktion |
|---|---|
| F10 (Standard) | Scoreboard öffnen/schließen — Config.ToggleMode: 'hold' zum Halten oder 'toggle' zum Umschalten |
| /scoreboard | Scoreboard per Befehl umschalten |
Exports & API
nebula_core stellt Event-Namen für Preis-Abfragen und Logging bereit, nebula_fuel exportiert Framework/Inventory-Infos für eigene Erweiterungen.
Nebula.API.GetPrice = 'nebula_core:getPrice' Nebula.API.CalcPrice = 'nebula_core:calcPrice' Nebula.API.Log = 'nebula_core:log'
-- Server-seitig exports.nebula_fuel:GetFramework() -- 'esx' / 'qbcore' / 'qbox' / 'standalone' exports.nebula_fuel:GetInventory() -- 'ox_inventory' / etc. -- Client-seitig (wird von ox_inventory als usable Item aufgerufen) exports.nebula_fuel:useJerryCan(data, slot)
nebula_pricechecker und nebula_scoreboard bieten keine öffentlichen Exports für eigene Erweiterungen — beide sind als eigenständige NUI-Anzeigen konzipiert.
FAQ
Config.UseNebulaNotify = false./fuelsync im Chat eingeben, oder Koordinaten manuell in Config.StaticStations eintragen.