Installing Lumo Apartments
What you get
- Five apartment buildings that work on every server, with no map to buy: South Rockford Drive, Morningwood Blvd, Integrity Way, Tinsel Towers and Fantastic Plaza. Each has a street entrance with a map blip. Inside, every apartment is a private copy of the Del Perro Heights interior.
- Walk-in buildings (optional): Starlite Motel, Little Seoul and La Puerta. They only appear when you run their paid maps (see Walk-in buildings). Without those maps, nothing about them shows and nothing breaks.
1. Remove what it replaces
Run only one starter-apartment script. Remove the one your framework ships before you start Lumo Apartments:
| Framework | Remove | Keep |
|---|---|---|
| QBCore | qb-apartments (delete the folder or its ensure line) | qb-spawn, qb-multicharacter (one manifest edit, step 3) |
| Qbox | qbx_properties or turn its starter apartment off (step 3) | qbx_core |
| ESX Legacy | any starter-apartment script you added (ESX has none by default). esx_property is for houses and can stay. | es_extended, esx_multicharacter |
| Standalone | nothing |
2. server.cfg
Start Lumo Apartments after oxmysql, your framework, your inventory, your target or interact resource and any walk-in maps:
cfg
ensure oxmysql
ensure ox_lib # optional, recommended
ensure qb-core # or qbx_core / es_extended / nothing
ensure ox_inventory # your inventory
ensure ox_target # optional: lumo-interact, qb-target or ox_target
ensure lumo-clothing # optional: wardrobe
ensure zydrec-starlitemotel # optional walk-in maps
ensure lumo-apartments- The database tables are created on first start.
sql/install.sqlis the same schema if you prefer to import it. - Restart the whole server the first time, not just the resource, so spawn menus see it from the start.
3. Your framework
QBCore
- Remove
qb-apartments(step 1). Your apartments, their storage and theapartmentstable carry over. The stockapartment1toapartment5rows are moved to the five buildings at the same street entrances. - Spawn and character menus:
- lumo-spawn 1.0.2+ with lumo-multicharacter 1.0.2+: nothing to change.
- qb-spawn and qb-multicharacter: open each one's
fxmanifest.luaand change'@qb-apartments/config.lua'to'@lumo-apartments/config.lua'.
- Storage: lumo-inventory, qb-inventory (2.x and 1.x), ps-inventory and lj-inventory are detected.
- Logging out from the bed uses QBCore's logout and reopens qb-multicharacter.
Lumo Apartments answers to the qb-apartments name (provide), so phones, housing and other scripts that call qb-apartments keep working.
Qbox
- Pick one starter-apartment system:
- remove
qbx_properties, or - keep it for houses and set
startingApartment = falsein qbx_core's config, or - keep its apartments and set
Config.Starter.enabled = falsehere.
- remove
- Storage uses ox_inventory.
- New characters:
- with lumo-spawn: they pick a starter building there;
- with Qbox's own flow (no spawn menu): they get a flat in
Config.Starter.defaultand spawn inside it.
- Logging out from the bed uses
qbx_core's logout, which opens Qbox's character menu.
ESX Legacy
ESX has no apartments of its own, so there is nothing to remove unless you added a starter-apartment script.
- Storage needs ox_inventory. ESX's default inventory has no stashes.
- Wardrobe:
Config.Wardrobe = 'auto'uses lumo-clothing or illenium-appearance. esx_skin alone has no saved outfits; with it, setConfig.Wardrobe = 'custom'and fillConfig.Hooks.openWardrobe. - New characters (esx_multicharacter, no spawn menu): each new character gets a flat in
Config.Starter.default(Integrity Way). It shows as a house blip on the map. ESX spawns them at its normal spawn point; they walk to the entrance and press E (or use the target eye) to go in. - With lumo-spawn: new characters pick a starter building there, as on QBCore.
- Relogging inside: ESX spawns players where they were saved. About 10 seconds after loading, anyone standing in the apartment interior is put back into their own flat properly, or walked out to the street if they no longer live there. Players can also type /aptleave at any time.
- Log out from the bed needs esx_multicharacter (it uses its relog).
Standalone (no framework)
- Players are identified by their Rockstar licence.
- Every price is free, and there is no logout.
- Storage needs an inventory with stashes. If yours is not listed, set
Config.Inventory = 'custom'and fillConfig.Hooks.openStash.
4. Check it in game
- Open the map. You should see five apartment blips (and your own home blip once you have one).
- Walk to an entrance and interact:
- lumo-interact or no target script: press E at the entrance;
- ox_target / qb-target: aim the eye at the entrance door.
- The lobby opens:
- No home yet: "Get an apartment here". Your first apartment is free.
- You live here: "Enter my apartment".
- You live elsewhere: "Move my home here" for the building's
price. - Doorbell: ring residents who are home.
- Inside:
- front door: E leave, G door panel (visitors, guests);
- storage, wardrobe, bed (log out): E at each.
- Commands:
- /apartment: opens the apartment panel, or marks your walk-in room on the map;
- /aptleave: leave from anywhere inside, or get out when stuck.
Interaction
Detected in this order:
- lumo-interact
- a real qb-target
- ox_target
- a built-in prompt: E, G and H at doors
Force one with Config.Target. ox_target provides qb-target, which is detected correctly.
Walk-in buildings
Starlite Motel, Little Seoul and La Puerta are presets. Each turns on by itself when its map resource is started. The maps are sold by their creators and are not included.
- Doors: the game only locks a door it knows the exact model of. If a door stays open, stand next to it, run
/aptdoorand send us the output. - La Puerta: admins can recalibrate a flat. Aim at its door, run
/aptmap lapuerta <1-98>, step inside and run/aptmap save. - Every room taken (or the map was removed): residents get a private flat in
Config.WalkIn.fallbackInterioruntil a room frees up.
Troubleshooting
| Problem | Fix |
|---|---|
| No apartment blips | Every building in Config.Buildings with enabled = false is hidden. Remove that line. |
| No prompt at the entrance | With ox_target or qb-target, aim the eye at the door. No target script: walk within 2 m and press E. |
| Stuck in the apartment with no exit | Type /aptleave. |
| "You do not have an apartment yet" in the lobby | Use "Get an apartment here", or turn on Config.Starter.autoAssign. |
| Storage does not open | ESX: install ox_inventory. Others: check Config.Inventory. |
Adding your own
- An instanced building: copy one of the five entries in
Config.Buildings, give it a new key and its street entrance (vector4). Key, label and price are up to you. - Another interior:
- Set
Config.Debug = true. - Stand on each spot (arrival, exit, storage, wardrobe, bed) and run
/aptcoords. - Add the results as a new entry in
Config.Interiors. - Point a building's
interiorat it.
- Set
- Another walk-in building:
- Add a
type = 'walkin'entry with its mapresourceandoffices. - Add its rooms to
data/walkin.luawith new, unused ids.
- Add a