Zum Inhalt springen

Anpassung

Die Einstellungen befinden sich in config.lua. Die Dateien, die mit deinem Framework, deinem Inventar und deiner Target-Ressource kommunizieren, sind offen gelassen, sodass Server mit individuellen Setups Anpassungen vornehmen können, ohne den Escrow-Kern zu berühren.


Datei oder OrdnerWas sie bestimmtOffen?
config.luaJede Einstellung auf dieser Seite, die Benachrichtigungsfunktion, Items und GeschmacksrichtungenOffen
locales/*.luaAlle Texte: Menü, Target-Labels, Nachrichten. Eine Datei pro SpracheOffen
server_functions.luaSpieler abrufen, Items geben, entfernen und prüfen, Registrierung benutzbarer Items, der Callback für Geschmäcker und ReduceStressOffen
client/client_functions.luaAuslesen von Spielerdaten und Job-Prüfung für das EinrichtungsmenüOffen
target/target.luaAlle Target-Optionen für Shishas und Möbel, für ox_target und qb-targetOffen
client/client.lua, server/server.lua, locale.luaPlatzierung, Schlauch, Rauch, Besitz und VerbrauchsgüterVerschlüsselt (Escrow)
html/Das Einrichtungsmenü: index.html, style.css, script.jsUnverschlüsselte Dateien
inventory_items/Fertige Item-Definitionen für ESX, ox_inventory und QBCoreReferenz
inventory_images/Ein Icon pro ItemAssets
mic_hookah_prop/stream/Die zehn Shisha-ModelleAssets, eigene Ressource

OptionWas sie machtStandard
Config.LocaleSpracheen
Config.Frameworkesx, qbcore oder qboxesx
Config.ESXResourceNameOrdnername von ESXes_extended
Config.QBResourceNameOrdnername von QBCoreqb-core
Config.QBoxResourceNameOrdnername von QBoxqbx_core
Config.Targetox_target oder qb-targetox_target
Config.QBTargetResourceNameOrdnername von qb-targetqb-target
Config.InventoryImagePathPfad, aus dem das Menü Geschmacks-Icons lädtnui://ox_inventory/web/images/

OptionWas sie machtStandard
Config.AdminGroupsGruppen, die das Menü jeder Shisha und jedes Möbels öffnen und einpacken dürfen. false bedeutet, dass jeder als Admin giltfalse
Config.AllowedJobsJobs, die das Einrichtungsmenü öffnen dürfen. false erlaubt jeden Jobfalse

Im Auslieferungszustand kann jeder Spieler jede Shisha bedienen und verwalten. Um sicherzustellen, dass jede Shisha dem Spieler gehört, der sie aufgestellt hat, trage deine Team-Gruppen in Config.AdminGroups ein — zum Beispiel admin und superadmin. Unter ESX wird dies mit der Gruppe des Spielers abgeglichen; unter QBCore und QBox mit dem Feld permission des Spielers.

Mit konfigurierter Liste:

WerOpen Setup MenuEinpackenGrab Hose
Der Spieler, der sie platziert hatja (sofern Job erlaubt)jaja
Eine Admin-Gruppeja (sofern Job erlaubt)jaja
Alle anderenneinneinja

Config.AllowedJobs sichert nur das Einrichtungsmenü ab. Jeder Spieler kann den Schlauch nehmen und an einer brennenden Shisha ziehen.


OptionWas sie machtStandard
Config.MaxActiveTimeWas “voll” für Kohle und Wasser bedeutet. Ein hookah_coal oder hookah_water füllt auf diesen Wert1800
Config.ConsumptionPerPuffWie viel jeder Zug von charcoal und water abzieht10 und 10
Config.MaxPuffsPerSessionErgibt sich aus den beiden Werten oben (1800 ÷ 10 = 180). Nur zur Orientierung; wird nicht eingelesen180
Config.MaxHoseDistanceReichweite des Schlauchs in Metern, bevor er abreißt3.5
Config.MaxSimultaneousUsersVorgesehene Maximalzahl an Personen, die gleichzeitig an derselben Shisha rauchen4
Config.StressRuft bei jedem Zug ReduceStress auftrue

Die Shisha verbraucht sich nicht nach Zeit: Kohle und Wasser sinken nur, wenn jemand an ihr zieht. Sobald eines von beiden null erreicht, erlischt die Shisha und muss nachgefüllt werden.

ReduceStress in server_functions.lua erhält bei jedem Zug die Server-ID des Spielers, wenn Config.Stress aktiviert ist. Die Funktion wird leer ausgeliefert, enthält jedoch auskommentierte Beispiele: ein Client-Event, ein Export oder ein Server-Event deiner Stress- oder HUD-Ressource. Füge deinen Aufruf dort ein.


OptionWas sie machtStandard
Config.ParticleWelches Partikel verwendet wird: ein dict und namescr_recartheft / scr_wheel_burnout
Config.VapeExhaleGröße der Rauchwolke0.5

In der Config sind diese beiden Optionen mit „nur ändern, wenn du genau weißt, was du tust“ markiert. Jede Wolke bleibt drei Sekunden sichtbar und wird Spielern im Umkreis von 150 Metern angezeigt.


Die kompletten Listen findest du unter 🎒 Items.

Config.HookahItems — Item-Name → Modell. Um eine Shisha hinzuzufügen, muss das Modell gestreamt werden (z. B. in mic_hookah_prop/stream/ mit einem Eintrag in der .ytyp), danach trägst du die Zeile hier ein und registrierst das Item in deinem Inventar.

Config.PlaceableProps — Item-Name → propModel, type (furniture) und isChair. Jedes Prop aus dem Basisspiel funktioniert. Setze isChair = true für alles, was die Option Sit Down anbieten soll.

Config.Flavors — Item-Name → Einstellungen:

FeldWas es macht
LabelIm Einrichtungsmenü angezeigter Name
SmokeColorFarbe R, G, B des Rauchs
ScreenEffectName eines GTA-Bildschirmeffekts für den Raucher, oder false für keinen
EffectDurationDauer des Bildschirmeffekts in Sekunden

Die Config verlinkt neben Config.Flavors eine Liste mit Bildschirmeffekt-Namen. Um einen Geschmack hinzuzufügen, kopiere einen Eintrag, vergib einen neuen Item-Namen und füge das Item samt Icon deinem Inventar hinzu.


Config.Notify in config.lua wickelt alle Nachrichten ab: ShowNotification unter ESX, Functions.Notify unter QBCore und QBox, andernfalls die Konsole. Passe den Inhalt der Funktion an, wenn du dein eigenes Benachrichtigungssystem verwenden möchtest.


Elf Sprachdateien werden in locales/ mitgeliefert: en, es, fr, de, it, pt, ru, cn, nl, pl, tr. Wähle eine mit Config.Locale.

Der Kommentar über Config.Locale erwähnt auch jp, eine japanische Datei wird jedoch nicht mitgeliefert; wird dies eingestellt, erscheint die Meldung „Locale [jp] does not exist“.

Jede Datei deckt das Einrichtungsmenü, die Target-Labels und alle Nachrichten ab. Einige wenige Wörter sind fest im Lua-Code verankert: die Platzierungshinweise (Rotate Right, Rotate Left, Height Up, Height Down, Place Prop, Cancel), „You are already placing an object“ und „None“ für eine leere Sorte.

Neue Sprache hinzufügen: Kopiere locales/en.lua, ändere den Schlüssel ganz oben auf dein Sprachkürzel und übersetze die Texte. Das Manifest lädt automatisch alle Dateien im locales/-Ordner, es muss also nichts extra registriert werden. Stelle Config.Locale ein, führe refresh aus und starte die Ressource neu.


AnforderungDatei / Stelle
Eigenes FrameworkDas Framework-Objekt am Ende von config.lua sowie die Funktionen in server_functions.lua und client/client_functions.lua
Anderes InventarAddItem, RemoveItem und HasItem in server_functions.lua sowie die Registrierung der benutzbaren Items darunter
Anderes Target-Systemtarget/target.lua — die Optionen sind identisch, nur die beiden Aufrufe addModel / AddTargetModel unterscheiden sich
Target-Labels, Icons oder Distanztarget/target.lua für Icons und Distanz, locales/ für Labels
Job-RegelnCheckJobAccess in client/client_functions.lua

Unter QBCore und QBox mit gestartetem ox_inventory registriert server_functions.lua zudem jedes Shisha- und Möbel-Item über den internen Use-Hook von ox_inventory — als Absicherung für Setups, bei denen die QBCore-Itembridge das Benutzen nicht weiterreicht.


Taste oder BefehlSituationWas passiert
EShisha in der HandStartet das Platzieren
XShisha in der HandSteckt die Shisha weg, ohne zu platzieren
MausradBeim PlatzierenDreht die Vorschau
Pfeil hoch / runterBeim PlatzierenHebt oder senkt die Vorschau
EBeim PlatzierenStellt das Objekt ab
XBeim PlatzierenBricht ab
ESchlauch einer brennenden Shisha haltenNimmt einen Zug
X (“Hookah - Stand Up X”)SitzendSteht auf. In den FiveM-Tastenbelegungen anpassbar
/hookah:chair:stand_upSitzendDas Gleiche als Chat-Befehl