sh_housing
Housing-System mit Häusern, Motels & Apartments, physischen Schlüssel-Items, Kauf-/Miet-Logik und ED-Banking-Anbindung. Unterstützt MLO-Walk-ins und instanzierte IPL-/Shell-Interiors.
Überblick
Kaufen, Mieten, Verkaufen und Betreten laufen nicht über Befehle, sondern über das ox_target-Menü am Hauseingang. Befehle braucht man nur zum Anlegen der Häuser (Admin/Creator).
Voraussetzungen
Harte Abhängigkeiten – ohne diese startet sh_housing nicht:
| Ressource | Pflicht | Wofür |
|---|---|---|
es_extended | Ja | ESX-Framework |
oxmysql | Ja | Datenbank |
ox_lib | Ja | Menüs / Callbacks / UI |
ox_target | Ja | Interaktion am Eingang |
core_inventory | Empfohlen | Schlüssel- & Keycard-Items |
ED-BANKING | Optional | Konten für Kauf/Miete |
core_inventory muss vor sh_housing gestartet werden.
Ohne core_inventory greift der Testmodus (Schlüssel werden nur angezeigt, nicht real ausgegeben).
1 · SQL installieren
Das Schema vor dem ersten Start einspielen:
mysql -u DEIN_USER -p DEINE_DB < sh_housing/sql/install.sql
Angelegt werden u. a. housing_properties, housing_occupancy
und housing_mail.
2 · server.cfg
ensure oxmysql ensure es_extended ensure ox_lib ensure ox_target ensure core_inventory # vor sh_housing! ensure sh_housing # ----- Rechte (siehe config/permissions.lua) ----- add_ace group.admin admin.manage allow add_ace group.admin house.manage allow
3 · Schlüssel-Items (core_inventory)
Die Item-Namen müssen zur config.lua passen (Config.KeyItem,
Config.MotelKeyItem). Wichtig: unique = true, damit Schlüssel mit
unterschiedlicher Metadata nicht stapeln.
['house_key'] = { name = 'house_key', label = 'Hausschlüssel', weight = 50, type = 'item', image = 'house_key.png', unique = true, -- jeder Schlüssel eigenständig useable = false, shouldClose = false, description = 'Schlüssel für ein Haus', }, ['motel_keycard'] = { name = 'motel_keycard', label = 'Schlüsselkarte', weight = 10, type = 'item', image = 'motel_keycard.png', unique = true, useable = false, shouldClose = false, description = 'Zugangskarte für ein Motel-/Hotelzimmer', },
property, version, label)
beim Ausgeben automatisch. Beim „Schloss neu machen" wird key_version erhöht →
alte Schlüssel werden ungültig.
4 · Wichtige Config-Werte
In config/config.lua – die wichtigsten Stellschrauben:
| Key | Standard | Bedeutung |
|---|---|---|
Config.IncomeAccount | '7000000006' | Konto für Kaufpreis + Miete |
Config.StateAccount | '0000000001' | Staatskonto für Steuern |
Config.PurchaseTaxRate | 0.10 | Grunderwerbsteuer (10 %) |
Config.ResaleRate | 0.50 | Rückerstattung beim Wiederverkauf |
Config.RentInterval | 7d | Miet-Intervall (Default wöchentlich) |
Config.RentMaxMissed | 3 | Ausfälle bis zur Räumung |
Config.InventoryBackend | 'auto' | auto / core / test |
Config.KeyItem | 'house_key' | Schlüssel-Item |
Config.KeysOnBuy | 3 | Schlüssel beim Kauf |
Config.MotelKeyItem | 'motel_keycard' | Keycard-Item |
Config.MotelDefaultPrice | 500 | Standard-Zimmerpreis / Nacht |
config/properties.lua (Haus-Vorlagen),
config/motels.lua (Motel-Vorlagen), config/interiors_gta.lua
(Interior-Definitionen) und config/permissions.lua (Rechte).
5 · Erstes Haus anlegen
/createhouse <vorlage> <preis> [mietpreis]
Vorlage stammt aus config/properties.lua. Mietpreis ist optional.
/setentrance <id> # Eingangspunkt (aktuelle Position/Heading) /setspawn <id> # Teleportziel im Interior /setstash <id> # Lager-/Stash-Punkt im Interior
Freie Häuser bekommen automatisch ein Verkaufsschild. Der Spieler kauft/mietet über das ox_target-Menü am Eingang – kein Befehl nötig.
Befehlsliste
Admin/Creator – Recht: admin.manage oder house.manage.
Häuser
| Befehl | Wirkung |
|---|---|
/createhouse <vorlage> <preis> [miete] | Haus an aktueller Position anlegen |
/setentrance <id> | Eingangspunkt setzen |
/setspawn <id> | Teleportziel im Interior setzen |
/setstash <id> | Stash-Punkt im Interior setzen |
/sethousedoor <id> | (MLO) anvisierte Tür als Haustür speichern |
/setprice <id> <preis> | Kaufpreis ändern |
/setrent <id> <preis> | Mietpreis setzen (0 = nicht mietbar) |
/deletehouse <id> | Property löschen (Haus oder Motel) |
Motels
| Befehl | Wirkung |
|---|---|
/createmotel <vorlage> | Motel anlegen, Rezeption = aktuelle Position |
/addmotelrooms <motelId> <anzahl> | Mehrere instanzierte IPL-Zimmer anlegen |
/addmotelroom <motelId> | Einzelnes MLO-Zimmer mit eigenem Bucket |
/setreception <motelId> | Rezeptions-Position neu setzen |
/setkeycardfee <motelId> <faktor> | Gebühr für neue Keycard = Tagesmiete × Faktor |
Spieler & Debug
| Befehl | Wirkung |
|---|---|
/leavehouse | Notausstieg, falls man im Interior festhängt |
/door | Betretenes Haus von innen ab-/aufschließen |
/housedev | Marker an allen Eingängen/Rezeptionen anzeigen |
/housingdebug [on|off] | Debug-Logs umschalten (Konsole + Marker) |
MLO- / Walk-in-Häuser
Wird /createhouse mit einer MLO-Vorlage
(type = 'mlo' in properties.lua) genutzt, ist das Haus ein
Walk-in: kein Teleport, man geht durch die echte Tür.
/createhouse <mlo-vorlage> <preis>
Direkt vor die Tür stellen, draufschauen, /sethousedoor <id> – nötig, damit das Schloss greift.
Über das Eingangs-Auge ab-/aufschließen. Bei abgeschlossener Tür kommt niemand ohne Eigentümer/Schlüssel rein.