prp-lombank-tower
prp-lombank-tower is an apartment shell / map resource. It streams the Lombank towers, related IPLs, elevators, and apartment door registration. It is not a full housing script — pair it with your own housing system (ownership, furnishing, stash, keys, etc.).
What is included
This resource ships interior shells only. Each apartment is an empty shell ready to be wired into your housing script.
| Building | Location | Floors | Rooms per floor | Total units |
|---|---|---|---|---|
| Lombank Tower 1 | -1572, -571 area | 18 | 14 | 252 |
| Lombank Tower 2 | -1018, -425 area | 18 | 14 | 252 |
| Eclipse Tower | -784, 329 area | 5 | 14 | 70 |
| Tinsel Tower | -602, 54 area | 5 | 14 | 70 |
644 apartments total, defined in apartments.json (room IDs like 101, 214, 1801, etc.).
Also included:
- Garage / lobby / tower shell geometry and audio
- Vanilla IPL blocker (prevents default GTA interiors from conflicting)
- Automatic IPL loader — loads the correct floor IPLs when a player enters a zone
- Elevators — ox_lib TextUI + context menu between garage, lobby, and floors
- Apartment doors — registers door entities in the door system (locked by default; wire locks in your housing script)
Requirements
ox_lib
Installation
Installation steps
prp-lombank-tower from the apartments pack into your resources folder.ensure ox_lib
ensure prp-lombank-towerShell only
Like the rest of the Housing Pack, this is a developer asset. You still need a housing script (or custom code) for renting, buying, furnishing, stashes, and door access.
How it works
Everything runs automatically on the client when prp-lombank-tower is started:
default_ipl_blocker_lombank.lua— disables conflicting vanilla interiors (Lombank, Eclipse, Tinsel areas).lombank_loader.lua— ox_lib box zones per floor/building. On enter: requests that floor's IPLs and callsGenerateApartments. On exit: removes IPLs.apartments_data.lua— loadsapartments.jsonand buildsApartmentFloors(coords per building/floor/room).apartment.lua— registers apartment doors in the GTA door system when a floor loads.elevator.lua— elevator points, menu, and teleport animation between floors.
You do not need to manually RequestIpl for each unit — the loader handles it by zone.
Customization
Locales
Strings live in locales/en.json. Language follows ox_lib (setr ox:locale en).
Editable client scripts are listed in escrow_ignore inside fxmanifest.lua.
Door locks
Doors are registered locked (DoorSystemSetDoorState state 4). To control access, hook into your housing script using the door hashes door_apartment_<apartmentId> or the coords from apartments.json.
Debug loader zones
In client/lombank_loader.lua, set debugMode = true at the top to visualize IPL loader zones in-game.
File reference
| File | Role |
|---|---|
apartments.json | All 644 apartment coords, floor, room, building |
client/apartments_data.lua | Parses JSON into ApartmentFloors |
client/apartment.lua | Door registration, GenerateApartments() |
client/lombank_loader.lua | Zone IPL streaming |
client/default_ipl_blocker_lombank.lua | Vanilla IPL blocker |
client/elevator.lua | Elevator system |
locales/*.json | UI strings (elevators) |