FiveM
Standalone
Lua 5.4
JSON-Storage
sh_elevator
Leichtgewichtiges Aufzugssystem für FiveM. Komplett standalone – keine Datenbank notwendig. Alle Daten liegen in JSON-Dateien. Mit Etagen, PIN-Sperren und interaktivem Admin-Menü.
Überblick & Features
Standalone
Keine MySQL/oxmysql-Abhängigkeit, alles in
data/elevators.json.Interaktion
ox_target und E-Taste (frei wählbar).
PIN-Sperre
Pro Etage oder pro Aufzug (Master-PIN) – oder beides.
Admin-Menü
Verwalten, sperren, sortieren, löschen via
/elevatoradmin.Voraussetzungen
| Ressource | Wofür |
|---|---|
ox_lib | Menüs, Dialoge, Kontextmenüs |
ox_target | Interaktion am Aufzug (Auge) |
Keine Datenbank nötig. Aufzüge & Etagen werden in
data/elevators.json, dauerhafte PIN-Zugänge in data/access.json gespeichert.
1 · Installation
Ordner kopieren
Den Ordner nach resources/[local]/sh_elevator legen.
server.cfg eintragen
ensure ox_lib ensure ox_target ensure sh_elevator add_ace group.admin command.elevator allow
(Optional) config.lua anpassen
Sprache, PIN-Längen, Teleport-Verhalten und ACE-Recht nach Bedarf.
2 · Konfiguration
| Option | Standard | Beschreibung |
|---|---|---|
Config.AdminAce | 'command.elevator' | ACE-Berechtigung für Admin-Befehle |
Config.AllowAdminsAllFloors | true | Admins ignorieren PIN-Sperren |
Config.UseKeybind | true | E-Taste aktivieren |
Config.KeybindRadius | 2.5 | Max. Abstand für E-Prompt |
Config.FadeTime | 800 | Fade-Dauer beim Teleport (ms) |
Config.TeleportZOffset | -1.0 | Z-Versatz (negativ = tiefer absetzen) |
Config.PinMinLength | 3 | Minimale PIN-Länge |
Config.PinMaxLength | 12 | Maximale PIN-Länge |
Config.PinMemoryMode | 'persistent' | persistent / session / never |
Config.IdentifierType | 'license' | license / steam / discord / fivem |
Config.Locale | 'de' | Sprache (siehe locales/) |
3 · Typischer Workflow
Aufzug installieren
/elevatorinstall HQ-Aufzug # → gibt ElevatorID zurück (z.B. 1)
Etagen anlegen
Jeweils zuerst an die gewünschte Position stellen:
/elevatoraddfloor 1 Erdgeschoss
/elevatoraddfloor 1 Etage1
/elevatoraddfloor 1 Dach # → FloorIDs z.B. 1, 2, 3
Etage(n) mit PIN sichern
/elevatorlock 3 1234 # Dach sperren /elevatorpin 1 9999 # optionaler Master-PIN für den ganzen Aufzug
Status prüfen
/elevatorlist
Befehlsreferenz
Alle Admin-Befehle benötigen die ACE-Berechtigung
command.elevator (siehe Config.AdminAce).
Anlegen
| Befehl | Wirkung |
|---|---|
/elevatorinstall [Name] | Neuen Aufzug an aktueller Position erstellen |
/elevatoraddfloor <ElevatorID> <Name> | Etage an aktueller Position hinzufügen |
PIN & Sperren
| Befehl | Wirkung |
|---|---|
/elevatorlock <FloorID> <PIN> | Etage sperren + PIN setzen (erneut = PIN ändern) |
/elevatorunlock <FloorID> | Etage entsperren (löscht PIN + persistente Zugänge) |
/elevatorpin <ElevatorID> <PIN|clear> | Master-PIN für alle gesperrten Etagen setzen/entfernen |
Sortierung & Verwaltung
| Befehl | Wirkung |
|---|---|
/elevatorsort <FloorID> <Position> | Etage an konkrete Position verschieben (0-basiert) |
/elevatorautosort <ElevatorID> [asc|desc] | Alle Etagen automatisch nach Höhe sortieren |
/elevatoradmin | Interaktives Admin-Menü öffnen |
/elevatorlist | Alle Aufzüge & Etagen auflisten |
Löschen, Reset & Refresh
| Befehl | Wirkung |
|---|---|
/elevatorremove <ElevatorID> | Aufzug inkl. aller Etagen löschen (Alias: /elevatordel) |
/elevatorremovefloor <FloorID> | Einzelne Etage löschen (Alias: /elevatordelfloor) |
/elevatorreset | Alle dauerhaften PIN-Zugänge löschen |
/elevatortest | Admin-Test-Modus (PIN gilt auch für dich) |
/elevatorrefresh | (Spieler) Client-Daten neu laden |
Spieler-Bedienung
- In der Nähe eines Aufzugs erscheint der 3D-Text
[E] Aufzug benutzen. - E drücken oder per ox_target (Auge) auf den Aufzug zielen → Menü öffnet sich.
- Etage wählen: nicht gesperrt → Teleport; gesperrt 🔒 → PIN-Eingabe.
- Bei korrektem PIN wird der Zugang dauerhaft gespeichert (
PinMemoryMode = persistent).
Dateistruktur
sh_elevator/
├── fxmanifest.lua
├── config.lua
├── client.lua
├── server.lua
├── locales/
│ └── de.lua
└── data/
├── elevators.json ← Aufzüge & Etagen
└── access.json ← PIN-Zugänge
data/elevators.json kann manuell editiert werden – danach Server neustarten
oder /elevatorrefresh ausführen.