Configure Banner Apartments
Choose framework and wardrobe integrations, tune room assignment, and preserve character storage.
On this page
Framework and staff access
Edit the supplied config.lua. Config.Framework.Mode accepts auto, qb, or qbx. QbResource and QbxResource specify the resource names; the QBX path still requires the QB core-object bridge. Preserve the framework's normal QB player-loaded and player-unloaded events for lifecycle handling.
Configure Config.Admin.Ace, QbPermission, and AdditionalAces for your own staff roles. Use AdditionalAces = {} if you do not need additional ACE aliases. Permission labels in the configuration must correspond to permissions granted by your server; changing the string alone does not grant a player access.
Door synchronization on stock ox_doorlock also needs an online player with command.doorlock access. The legacy BypassAccess field does not grant general access to other characters' storage.
Room assignment and reconnects
- Config.Assignment.Enabled and AssignOnPlayerLoaded enable automatic assignment when a character loads.
- Strategy defaults to random; lowest is available if you prefer allocation from the lowest available room.
- RequireCapturedRoom defaults to true, so rooms must have the required captured interaction data.
- HeartbeatSeconds defaults to 60 and StaleLeaseMinutes to 10. Stale disconnected leases are released during periodic cleanup.
- ReleaseOnPlayerUnload and ReleaseOnPlayerDropped default to false, preserving the reconnect grace window.
- ReassignOnResourceStart defaults to true to handle online players when the resource initializes.
The ten-minute setting is a stale-lease threshold checked by the periodic sweep, not an exact countdown timer. Room availability and personal stash persistence are separate: releasing a room does not delete its character's storage with the default cleanup settings.
Personal storage and optional bonuses
Personal storage defaults to 50 slots and 650000 weight in ox_inventory units. Config.Stash.Prefix participates in the character's storage identity. Keep that prefix and your character identifiers stable across upgrades so existing inventories remain associated with the same character.
DeletePersonalStashesOnRelease and ArchivePersonalStashesOnRelease are false by default. Keep those defaults to retain items when a temporary room lease ends. Released lease records are pruned after seven days by the default cleanup configuration; this is separate from deleting stash contents.
Supporter bonuses are optional. Disable Config.Supporter.Enabled when you have no provider. A custom provider's check export receives a citizen ID and returns a truthy supporter result; its bonus export returns a table containing slots and weight. Resource and export names are configurable. The optional provider is not bundled, and its absence does not prevent ordinary storage.
Choose a saved-outfit provider
Config.Clothing.Provider = 'sn_appearance'
-- Or use the supported illenium saved-outfit adapter:
-- Config.Clothing.Provider = 'illenium-appearance'sn_appearance opens its outfitMenu. The illenium-appearance entry calls qb-clothing:client:openOutfitMenu, targeting the v5.7.0 QB compatibility implementation. It opens saved outfits; it does not require qb-clothing or open the clothing shop or character editor.
Config.Clothing.Providers exposes each provider's resource check, client event, and positional arguments. Select a provider explicitly and start it before XSC_BannerHotel. Avoid running multiple appearance resources that handle the same compatibility event.
Saved-outfit behavior is controlled by the appearance resource. Legacy fields such as Categories, Charge, NoCamera, and CanLeave do not change the provider's saved-outfit menu.
Interactions, elevators, and room data
- Config.Target controls interaction distances and zone sizes. Wardrobe interaction uses ox_target by default; the configured proximity mode supports the E key when target mode is disabled.
- Config.Lobby.RoomFinderZones is empty by default. Add verified lobby coordinates if you want a Find My Room interaction in addition to /room.
- TeleportToLobbyOnAssignment defaults to false. Set and test the correct LobbySpawn before enabling it.
- Config.Elevators defines the lobby and floors. Verify destinations against the installed Riot map before changing them.
- Config.Import uses data/rooms.json. AutoImportOnStart is enabled, while AutoImportOverwrite is false.
- Config.Timecycle controls the optional area lighting modifier. Disable it if you prefer your server's own visual setup.
Player and staff commands
- /room: player room finder.
- /banner_admin: staff menu for room capture, import, door synchronization, occupancy, and lease management.
- /banner_syncdoors: request creation and synchronization of missing room doorlocks.
- /banner_import [file] [overwrite]: import resource-relative room JSON. The optional overwrite argument must be true to request replacement.
- /banner_debug and /banner_doordebug: staff diagnostics for the current lease and nearby door setup.
- /banner_refresh: staff command to request refreshed lease data.
- /banner_capture and /banner_cancel: advance or cancel an active capture workflow; default keys are G and Backspace.
Use staff tools in game with the configured permissions. Before importing with overwrite or releasing leases, confirm the intended room or character and preserve a database backup.