Skip to content

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:

FrameworkRemoveKeep
QBCoreqb-apartments (delete the folder or its ensure line)qb-spawn, qb-multicharacter (one manifest edit, step 3)
Qboxqbx_properties or turn its starter apartment off (step 3)qbx_core
ESX Legacyany starter-apartment script you added (ESX has none by default). esx_property is for houses and can stay.es_extended, esx_multicharacter
Standalonenothing

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.sql is 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 ​

  1. Remove qb-apartments (step 1). Your apartments, their storage and the apartments table carry over. The stock apartment1 to apartment5 rows are moved to the five buildings at the same street entrances.
  2. 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.lua and change '@qb-apartments/config.lua' to '@lumo-apartments/config.lua'.
  3. Storage: lumo-inventory, qb-inventory (2.x and 1.x), ps-inventory and lj-inventory are detected.
  4. 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 ​

  1. Pick one starter-apartment system:
    • remove qbx_properties, or
    • keep it for houses and set startingApartment = false in qbx_core's config, or
    • keep its apartments and set Config.Starter.enabled = false here.
  2. Storage uses ox_inventory.
  3. 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.default and spawn inside it.
  4. 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.

  1. Storage needs ox_inventory. ESX's default inventory has no stashes.
  2. Wardrobe: Config.Wardrobe = 'auto' uses lumo-clothing or illenium-appearance. esx_skin alone has no saved outfits; with it, set Config.Wardrobe = 'custom' and fill Config.Hooks.openWardrobe.
  3. 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.
  4. With lumo-spawn: new characters pick a starter building there, as on QBCore.
  5. 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.
  6. 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 fill Config.Hooks.openStash.

4. Check it in game ​

  1. Open the map. You should see five apartment blips (and your own home blip once you have one).
  2. 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.
  3. 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.
  4. Inside:
    • front door: E leave, G door panel (visitors, guests);
    • storage, wardrobe, bed (log out): E at each.
  5. 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:

  1. lumo-interact
  2. a real qb-target
  3. ox_target
  4. 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 /aptdoor and 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.fallbackInterior until a room frees up.

Troubleshooting ​

ProblemFix
No apartment blipsEvery building in Config.Buildings with enabled = false is hidden. Remove that line.
No prompt at the entranceWith 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 exitType /aptleave.
"You do not have an apartment yet" in the lobbyUse "Get an apartment here", or turn on Config.Starter.autoAssign.
Storage does not openESX: 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:
    1. Set Config.Debug = true.
    2. Stand on each spot (arrival, exit, storage, wardrobe, bed) and run /aptcoords.
    3. Add the results as a new entry in Config.Interiors.
    4. Point a building's interior at it.
  • Another walk-in building:
    1. Add a type = 'walkin' entry with its map resource and offices.
    2. Add its rooms to data/walkin.lua with new, unused ids.