Konfiguration
Die Grundkonfiguration befindet sich in der Datei config/config.lua.
1. Grundlegendes
Abschnitt betitelt „1. Grundlegendes“Config.Debug = falseConfig.Locale = 'de'Config.Framework = 'auto'| Schlüssel | Standard | Beschreibung |
|---|---|---|
Config.Debug | false | Aktiviert detaillierte Debug-Meldungen in der Serverkonsole. |
Config.Locale | 'de' | Sprache der Benutzeroberfläche und Meldungen (de oder en). |
Config.Framework | 'auto' | Framework-Erkennung: 'auto', 'esx', 'qb' oder 'standalone'. |
2. Interaktion an der Säule (Config.Interaction)
Abschnitt betitelt „2. Interaktion an der Säule (Config.Interaction)“Steuert, wie Spieler an der Säule interagieren können:
Config.Interaction = { mode = 'ox_target', targetDistance = 2.0, textUiDistance = 1.6, textUiKey = 38, textUiKeyLabel = 'E', textUiPosition = 'left-center', renderDistance = 150.0, icon = 'fa-solid fa-phone', label = 'Notrufsäule benutzen', edit = { enabled = true, editLabel = 'Säule bearbeiten', moveLabel = 'Säule versetzen', }}| Schlüssel | Standard | Beschreibung |
|---|---|---|
mode | 'ox_target' | Interaktionsmodus: 'ox_target' oder 'textui'. Fehlt ox_target, weicht das Script automatisch auf TextUI aus. |
targetDistance | 2.0 | Maximale Interaktionsdistanz für ox_target (in Metern). |
textUiDistance | 1.6 | Distanz, ab der die TextUI eingeblendet wird. |
textUiKey | 38 | Steuerungscode der Taste für TextUI (38 entspricht E). |
textUiKeyLabel | 'E' | Textbeschriftung der Taste in der Anzeige. |
textUiPosition | 'left-center' | Bildschirmlage der TextUI über ox_lib. |
renderDistance | 150.0 | Distanz, ab welcher der Säulen-Prop clientseitig gestreamt wird. |
icon / label | Telefon-Icon | Icon und Text für den Haupteintrag im Interaktionsmenü. |
edit.enabled | true | Blendet Zusatzoptionen (Bearbeiten / Versetzen) für berechtigte Spieler ein. |
edit.editLabel / moveLabel | Text | Beschriftungen der schnellen Bearbeitungsoptionen. |
3. Props & Startwerte (Config.Prop & Config.TemplateDefaults)
Abschnitt betitelt „3. Props & Startwerte (Config.Prop & Config.TemplateDefaults)“Config.Prop = { default = 'hm_notrufsaeule', fallback = 'prop_parknmeter_02', list = { 'hm_notrufsaeule' }, freeze = true, invincible = true,}| Schlüssel | Standard | Beschreibung |
|---|---|---|
Config.Prop.default | 'hm_notrufsaeule' | Standard-Model, falls ein Template keinen Prop definiert. |
Config.Prop.fallback | 'prop_parknmeter_02' | Notfall-Ersatzobjekt, falls das Custom-Model nicht gestreamt wird; false bricht ab. |
Config.Prop.list | {'hm_notrufsaeule'} | Liste verfügbarer Props zur Auswahl im Template-Dropdown. |
Config.Prop.freeze | true | Säulen-Prop physikalisch einfrieren (verhindert Wegrutschen bei Kollisionen). |
Config.Prop.invincible | true | Säulen-Prop unzerstörbar machen. |
Config.TemplateDefaults.offset | {0, 0, 0} | Standard-Offset (X, Y, Z) für neue Templates. |
Config.TemplateDefaults.rotation | {0, 0, 0} | Standard-Rotation (Pitch, Roll, Yaw). |
Config.TemplateDefaults.snapToGround | true | Automatisch am Boden einrasten. |
4. Config-Tablet (Config.Tablet)
Abschnitt betitelt „4. Config-Tablet (Config.Tablet)“Config.Tablet = { command = 'notruf_config', item = 'nrs_tablet', itemRequired = false, keybind = false, animation = true, iconMaxBytes = 48 * 1024,}| Schlüssel | Standard | Beschreibung |
|---|---|---|
command | 'notruf_config' | Chatbefehl zum Öffnen des Tablets; false deaktiviert den Befehl. |
item | 'nrs_tablet' | Name des Items (z. B. in ox_inventory); false schaltet die Item-Nutzung ab. |
itemRequired | false | Wenn true, lässt sich das Tablet nur über das Item öffnen (Befehl gesperrt). |
keybind | false | Optionaler Tastatur-Keybind (z. B. 'F7') über ox_lib. |
animation | true | Spielt beim Öffnen des Tablets eine Tablet-Animation am Charakter ab. |
iconMaxBytes | 49152 (48 KB) | Maximale Dateigröße für hochgeladene Behörden-SVGs. |
5. Konsolen- und Chatbefehle (Config.Commands)
Abschnitt betitelt „5. Konsolen- und Chatbefehle (Config.Commands)“Alle Befehle lassen sich über ein gemeinsames Präfix konfigurieren:
Config.Commands = { prefix = 'notruf_', -- Präfix (ergibt notruf_grant, notruf_perms, etc.; '' lässt es weg) grant = 'grant', revoke = 'revoke', perms = 'perms', id = 'id', map = 'map', duty = 'duty', reload = 'reload', seed = 'seed', model = 'model',}| Schlüssel | Standard | Funktion |
|---|---|---|
grant | 'grant' | Rechte vergeben (notruf_grant <ID> <level>). |
revoke | 'revoke' | Rechte entziehen (notruf_revoke <ID>). |
perms | 'perms' | Eingetragene Rechte auflisten (notruf_perms). |
id | 'id' | Eigene FiveM-Identifier im Chat ausgeben (/notruf_id). |
map | 'map' | Aktuelle Kartengrenzen für die config.lua in die Konsole drucken (notruf_map). |
duty | 'duty' | Zeigt das bei Emergency Dispatch eingeteilte Personal und gleicht Jobs ab (notruf_duty). |
reload | 'reload' | Lädt alle JSON-Dateien in data/ neu ein (notruf_reload). |
seed | 'seed' | Standarddienste aus config/services.lua erneut in data/ anlegen (notruf_seed). |
model | 'model' | Prüft auf dem Client, ob ein Model geladen und gültig ist (/notruf_model <name>). |
6. Berechtigungen (Config.Permissions)
Abschnitt betitelt „6. Berechtigungen (Config.Permissions)“Config.Permissions = { mode = 'both', ace = { admin = 'hm_notrufsaeule.admin', editor = 'hm_notrufsaeule.manage', }, actions = { open = { 'editor', 'admin' }, pillars = { 'editor', 'admin' }, services = { 'admin' }, permissions = { 'admin' }, settings = { 'admin' }, }, identifierTypes = { 'license', 'steam', 'discord', 'xbl', 'live', 'fivem' }, knownGroups = { 'admin', 'mod', 'superadmin' },}| Schlüssel | Standard | Beschreibung |
|---|---|---|
mode | 'both' | Berechtigungsmodus: 'ace', 'json' oder 'both' (beides gleichzeitig). |
ace.admin | 'hm_notrufsaeule.admin' | FiveM-ACE-Recht für volle Administrator-Rechte. |
ace.editor | 'hm_notrufsaeule.manage' | FiveM-ACE-Recht für Bearbeiter (nur Säulen platzieren/verändern). |
actions.* | Rollen-Array | Definiert, welche Berechtigungsstufe welche Aktion im Tablet durchführen darf. |
identifierTypes | Liste | Typen von Spieler-Identifiern, die beim Abgleich berücksichtigt werden. |
knownGroups | Liste | Gruppen, die im Fenster „Zugriff verweigert“ vorgeschlagen werden. |
7. Notruf & Gesprächsablauf (Config.Call)
Abschnitt betitelt „7. Notruf & Gesprächsablauf (Config.Call)“Config.Call = { maxDistance = 4.0, cooldownPlayer = 60, cooldownPillar = 20, connectTime = 6000, askMessage = true, messageMaxLength = 200, allowAnonymous = true, animation = { dict = 'cellphone@', clip = 'cellphone_call_listen_base' }, sound = true, showLabels = true,}| Schlüssel | Standard | Beschreibung |
|---|---|---|
maxDistance | 4.0 | Maximale Distanz zur Säule während des Anrufs (serverseitig geprüft). |
cooldownPlayer | 60 s | Cooldown-Zeitspanne zwischen zwei Notrufen desselben Spielers. |
cooldownPillar | 20 s | Sperrzeit nach einem Notruf an derselben Säule. |
connectTime | 6000 ms | Rufzeit (Klingeln), bevor die Leitstelle das Gespräch annimmt. |
askMessage | true | Blendet das Freitext-Eingabefeld im Bedienfeld ein. |
messageMaxLength | 200 | Maximal erlaubte Zeichenanzahl der Freitext-Notrufmeldung. |
allowAnonymous | true | Erlaubt dem Anrufer, den Notruf anonym abzusetzen. |
animation | Dict / Clip | Animation des Charakters während der Interaktion an der Säule. |
sound | true | Akustische Rückmeldung beim Betätigen der Tasten. |
showLabels | true | Zeigt Textbeschriftungen unter den Tasten des Säulen-Bedienfelds. |
8. Blips & Einsatzmarkierungen (Config.Blips & Config.ResponderBlip)
Abschnitt betitelt „8. Blips & Einsatzmarkierungen (Config.Blips & Config.ResponderBlip)“Config.Blips = { enabled = false, sprite = 459, color = 47, scale = 0.55, label = 'Notrufsäule', shortRange = true,}
Config.ResponderBlip = { enabled = true, duration = 120, flash = true,}| Schlüssel | Standard | Beschreibung |
|---|---|---|
Blips.enabled | false | Schaltet permanente Karten-Blips für alle Säulen auf der Hauptkarte ein/aus. |
Blips.sprite / color / scale | Verschieden | Aussehen des Säulen-Blips auf der Weltkarte. |
Blips.shortRange | true | Säulen-Blips werden nur angezeigt, wenn sich der Spieler in der Nähe befindet. |
ResponderBlip.enabled | true | Erzeugt bei einem Notruf einen temporären Einsatzort-Blip für Einsatzkräfte. |
ResponderBlip.duration | 120 s | Standzeit des Notruf-Blips bei alarmierten Einsatzkräften (in Sekunden). |
ResponderBlip.flash | true | Lässt den Einsatz-Blip auf der Minimap pulsieren. |
9. Dispatch-System (Config.Dispatch)
Abschnitt betitelt „9. Dispatch-System (Config.Dispatch)“Config.Dispatch = { default = 'emergencydispatch', fallback = true, adapters = { { value = 'emergencydispatch', label = 'Emergency Dispatch' }, },}| Schlüssel | Standard | Beschreibung |
|---|---|---|
default | 'emergencydispatch' | Standard-Adapter, falls bei einem Dienst kein spezifischer Adapter gewählt wurde. |
fallback | true | Redundanz: Benachrichtigt die im Dienst hinterlegten Jobs zusätzlich direkt ingame. |
adapters | Liste | Auswahlliste der Dispatch-Systeme im Notrufdienst-Formular des Tablets. |
Für Details zur Konfiguration von Emergency Dispatch, Telefon-Hooks und eigenen Adaptern siehe die Seite Dispatch & Erweiterung.
10. Karte & Speicherorte (Config.Map & Config.Files)
Abschnitt betitelt „10. Karte & Speicherorte (Config.Map & Config.Files)“Config.Map = { image = 'map.jpg', bounds = { minX = -5732.48, maxX = 6763.05, minY = -4086.21, maxY = 8409.32 },}
Config.Files = { pillars = 'data/pillars.json', templates = 'data/templates.json', services = 'data/services.json', permissions = 'data/permissions.json', settings = 'data/settings.json', map = 'data/map.json',}Config.Map.image: Dateiname des Satellitenbilds im Ordnerhtml/.Config.Map.bounds: Weltkoordinaten-Grenzen des Kartenbilds. (Wird durch eine Ingame-Kalibrierung automatisch indata/map.jsonüberschrieben).Config.Files.*: Relative Pfade zu den internen Speicherorten der JSON-Dateien.