Installation & Einrichtung
Folge dieser Anleitung, um HM_Notrufsaeulen auf deinem FiveM-Server zu installieren und einzurichten.
Schnellinstallation
Abschnitt betitelt „Schnellinstallation“-
Dateien kopieren:
Kopiere den Ordner[hm_Notrufsaeulen-Pack]vollständig in dasresources/-Verzeichnis deines FiveM-Servers.
Dieser Ordner enthält zwei voneinander getrennte Resourcen:hm_Notrufsaeulen(Logik, UI, Daten & Adapter)hm_Notrufsaeulen_stream(3D-Prop & Archetype)
-
In der server.cfg eintragen:
Füge die Resourcen in der folgenden Startreihenfolge in deineserver.cfgein:ensure ox_libensure hm_Notrufsaeulen_streamensure hm_Notrufsaeulen -
Schreibrechte für
data/prüfen:
Stelle sicher, dass der FiveM-Serverprozess Schreibrechte auf den Ordnerhm_Notrufsaeulen/data/besitzt.Terminal-Fenster chmod -R 775 resources/[hm_Notrufsaeulen-Pack]/hm_Notrufsaeulen/data/(Siehe auch unsere Anleitung zu Dateiberechtigungen).
-
Admin-Rechte vergeben:
Führe in der Serverkonsole folgenden Befehl aus, um dir selbst die Administratorrechte zu geben:Terminal-Fenster notruf_grant <Deine-Server-ID> admin(Beispiel:
notruf_grant 1 admin) -
Ingame testen & Säule setzen:
Verbinde dich auf den Server und öffne das Tablet über den Chatbefehl:/notruf_configKlicke auf Neue Notrufsäule platzieren, um den 3D-Placer zu starten.
3D-Model & Streaming
Abschnitt betitelt „3D-Model & Streaming“Prop und Archetype liegen in der eigenen Resource hm_Notrufsaeulen_stream:
stream/hm_notrufsaeule.ydr(3D-Mesh & Texturen)stream/hm_notrufsaeule.ytyp(Archetype-Definition)
Die Einbindung in der fxmanifest.lua erfolgt über data_file 'DLC_ITYP_REQUEST' 'stream/hm_notrufsaeule.ytyp'. Der Model-Name entspricht dem Dateinamen: hm_notrufsaeule (in Config.Prop.default).
Warum liegt das Model in einer eigenen Resource?
Abschnitt betitelt „Warum liegt das Model in einer eigenen Resource?“Zusätzlich räumt die Logik-Resource beim Stoppen automatisch auf: Alle gespawnten Säulen-Objekte sowie temporäre Vorschauobjekte aus Placer und Prop-Editor werden gelöscht und die Model-Hashes freigegeben.
Archetype-Werte
Abschnitt betitelt „Archetype-Werte“Der mitgelieferte Archetype besitzt folgende Messwerte:
| Feld | Wert |
|---|---|
name / assetName | hm_notrufsaeule (Hash 0xF8F41D63) |
assetType | 2 = ASSET_TYPE_DRAWABLE |
bbMin | -0.2580, -0.6670, -0.7949 |
bbMax | 0.2669, 0.0048, 1.9344 |
bsCentre | 0.0044, -0.3311, 0.5698 |
bsRadius | 1.4297 |
lodDist | 200 |
flags | 32 |
Das Model ist 0,53 × 0,67 × 2,73 m groß. Der Ursprung (Origin) liegt 0,79 m über der Modellunterkante – beim Platzieren steckt dieser Fundament-Teil im Boden (bei einem Betonfundament gewollt). In Y sitzt die Geometrie auf einer Seite des Ursprungs (−0,67 bis 0,00), das Model steht also rund 0,33 m versetzt zum Platzierungspunkt.
Fehlersuche: „Model ist nicht geladen oder ungültig“
Abschnitt betitelt „Fehlersuche: „Model ist nicht geladen oder ungültig““Neue Dateien in stream/ kommen erst nach einem vollständigen Serverneustart beim Client an, und der Client muss sich neu verbinden (ein reines restart genügt FiveM bei Stream-Assets nicht).
Prüfe den Status im Spiel mit:
/notruf_model hm_notrufsaeule- Meldet der Befehl
IsModelInCdimage: false, ist der Prop noch nicht im Spielclient geladen. - Bis zum Neustart weicht das Script automatisch auf
Config.Prop.fallbackaus (Standard:prop_parknmeter_02), damit der Placer und bereits platzierte Säulen ohne Absturz bedienbar bleiben.
Möchtest du weitere eigene Props hinzufügen, lege die Dateien in stream/, trage sie in Config.Prop.list ein und sorge dafür, dass die Kollision im .ydr eingebettet ist.
Tablet als Inventar-Item (optional)
Abschnitt betitelt „Tablet als Inventar-Item (optional)“Standardmäßig öffnet sich das Tablet per Chatbefehl /notruf_config. Du kannst es jedoch auch an ein Item koppeln:
Setze in config/config.lua:
Config.Tablet.item = 'nrs_tablet'Config.Tablet.itemRequired = true -- Tablet öffnet NUR über das ItemFüge das Item in ox_inventory/data/items.lua ein:
['nrs_tablet'] = { label = 'Notrufsäulen-Tablet', weight = 800, stack = false, server = { export = 'hm_Notrufsaeulen.useTablet' },},Wenn Config.Tablet.item gesetzt ist, registriert das Script das Item bei ESX bzw. QBCore automatisch als benutzbar. Du musst das Item lediglich in deiner Gegenstands-Tabelle bzw. Items-Config anlegen.
Berechtigungen & Administration
Abschnitt betitelt „Berechtigungen & Administration“Das Script unterscheidet zwei Berechtigungsstufen:
editor: Säulen anlegen, bearbeiten, versetzen und löschen.admin: Volle Rechte – darf zusätzlich Notrufdienste bearbeiten, Ingame-Einstellungen anpassen und Rechte verwalten.
Welches Level welche Aktionen ausführen darf, ist in Config.Permissions.actions definiert.
Über Config.Permissions.mode kannst du festlegen, wie Rechte geprüft werden:
'ace': Nur über FiveM-ACE-Permissions in derserver.cfg.'json': Nur über die interne Dateidata/permissions.json.'both'(Standard): Beides aktiv – Spieler haben Zugriff, wenn sie in ACE oder in der JSON stehen.
1. Berechtigungen über ACE (server.cfg)
Abschnitt betitelt „1. Berechtigungen über ACE (server.cfg)“# Volle Adminrechte (Dienste, Säulen, Settings, Rechte)add_ace group.admin hm_notrufsaeule.admin allow
# Bearbeiter-Rechte (nur Säulen aufstellen/bearbeiten)add_ace group.mod hm_notrufsaeule.manage allow
# Oder direkt für eine bestimmte FiveM-Lizenz:add_ace identifier.license:0a1b2c3d4e5f hm_notrufsaeule.admin allow2. Berechtigungen über JSON (data/permissions.json)
Abschnitt betitelt „2. Berechtigungen über JSON (data/permissions.json)“Die JSON-Liste wird komfortabel direkt im Spiel über das Tablet gepflegt (Reiter „Rechte“ → Online-Spieler auswählen oder Identifier eingeben):
{ "entries": [ { "identifier": "license:0a1b2c...", "label": "Max", "level": "admin" } ]}Sich selbst eintragen (erster Admin)
Abschnitt betitelt „Sich selbst eintragen (erster Admin)“Der sicherste Weg für die Erst-Einrichtung führt über die Serverkonsole – diese besitzt immer uneingeschränkte Admin-Rechte:
notruf_grant 1 admin(wobei 1 die aktuelle Server-ID deines Spielers ist).
Alternativ kannst du den Identifier direkt angeben:
notruf_grant license:0a1b2c3d4e5f... adminDen eigenen Identifier erfährst du ingame mit dem Befehl /notruf_id. Er wird dir im Chat angezeigt und gleichzeitig in die Serverkonsole geschrieben.
Schutz gegen unberechtigten Zugriff
Abschnitt betitelt „Schutz gegen unberechtigten Zugriff“Öffnet ein Spieler ohne Berechtigung das Tablet, sieht er ein informatives Fenster „Zugriff verweigert“. Dieses Fenster enthält fertige Zeilen zum Kopieren für die Administratoren:
- Der Konsolenbefehl
notruf_grantmit der eigenen ID. - Das fertige ACE-Recht für den eigenen Identifier.
- Vorschläge für bekannte Gruppen (
Config.Permissions.knownGroups, z. B.group.admin).
Befehle zur Rechteverwaltung
Abschnitt betitelt „Befehle zur Rechteverwaltung“| Befehl | Berechtigung | Beschreibung |
|---|---|---|
notruf_grant <ID|identifier> [level] | Admin / Konsole | Vergibt Rechte (admin oder editor). |
notruf_revoke <ID|identifier> | Admin / Konsole | Entzieht vergebene Rechte. |
notruf_perms | Admin / Konsole | Listet alle aktuell in der JSON hinterlegten Rechte auf. |
/notruf_id | Jeder | Zeigt die eigenen Identifier zum Kopieren an. |