Before You Begin#
Before installing Backrooms, make sure your server meets the minimum requirements. Four things are mandatory; everything else is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
OneSync | Required | Every run lives in its own routing bucket. |
| Required | Database access. |
| Required | Callbacks, dialogs and notifications. |
| Required | Ships in the same download: the level interiors, the monsters and the entrance props. |
Framework | Optional |
|
Inventory | Optional |
|
Target | Optional |
|
Extras | Optional |
|
Each layer is picked by looking at what is already running when the resource starts:
Layer | Detected from |
|---|---|
Framework |
|
Inventory |
|
Target |
|
Every optional integration degrades silently: if a resource is missing, that part falls back to the built-in one and nothing errors. Run only one inventory and one target — with two of the same kind started, which one is picked is not guaranteed. Integrations has the details.
GitHubReleases · overextended/oxmysqlMySQL resource for FXServer.GitHubReleases · overextended/ox_libA FiveM library and resource implementing reusable modules, methods, and UI elements.Downloading Backrooms#
After purchasing Backrooms, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Backrooms.
After extracting the download, you should have the following folders:
[backrooms]/
├── qs-backrooms/ -- the script
│ ├── config/ -- detection and developer tools (editable)
│ ├── custom/ -- framework bridges (editable)
│ ├── client/custom/ -- notifications, HUD, inventory and target (editable)
│ ├── server/custom/ -- items, Discord logs, quests (editable)
│ ├── locales/ -- 41 languages
│ ├── sounds/ -- every sound a run plays
│ ├── items/ -- the item list for each inventory
│ ├── database/sql.sql -- the tables and the level layouts
│ └── web/build/ -- the interface, ready to use
├── backrooms-assets/ -- interiors, monsters and entrance props
├── [items]/ -- the same item lists
├── [images]/ -- the twelve item pictures
└── [sql]/ -- the same sql.sqlKeep the folder named
qs-backrooms. Other scripts reach it asexports['qs-backrooms'], and the ox_inventory item list uses its items throughqs-backrooms.<item>exports, so a renamed copy stops items working.
Installing the Resource#
Move qs-backrooms and backrooms-assets into your server's resources directory. They can live anywhere inside it, including a category folder:
resources/
└── [qs]/
├── backrooms-assets/
└── qs-backrooms/Then open your server.cfg and make sure every dependency — and everything it should detect — starts before Backrooms:
# OneSync must be enabled (txAdmin enables it by default)
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory, target and extras
ensure ox_inventory
ensure ox_target
ensure backrooms-assets
ensure qs-backroomsThe loading order matters. Detection only sees resources that are already started, so an inventory or target that starts after Backrooms is not found and that part falls back to the built-in one. backrooms-assets must start before qs-backrooms, or the levels are empty space.
The Database#
Backrooms keeps everything in six tables, all prefixed backrooms_. They create themselves on first start — but the level layouts, where every exit, container, locker, prop and monster path of the five levels stands, ship as data. Import qs-backrooms/database/sql.sql into your database once, with HeidiSQL, phpMyAdmin or any client, before the first start.
Table | Holds |
|---|---|
| The level layouts: spawns, exits, loot containers, lockers, props, safe rooms and the nodes monsters walk along — over 400 points across the five levels. |
| The entrances placed with the creator. |
| Everything saved in the settings panel. |
| Players inside a run right now — their level, items, sanity and battery — so a disconnect can be restored or pulled out. |
| One row per finished run: player, level, outcome, time and loot value. |
| Each player's totals: runs, escapes, deaths, deepest level, best and total time, items found. |
Adding the Items#
Runs use twelve items. Register them in your inventory so players can carry them out and use them. The lists are ready in qs-backrooms/items/ (and [items]/), and the pictures are in [images]/.
Paste the contents of items/ox_inventory.lua into ox_inventory/data/items.lua, and copy the pictures from [images]/ into ox_inventory/web/images/. Each usable item calls a qs-backrooms export, so it works from the normal inventory. This list also covers Qbox.
Paste the contents of items/qs-inventory.lua into qs-inventory/shared/items.lua, and copy the pictures from [images]/ into qs-inventory's images folder.
Paste the contents of items/qb-core.lua into qb-core/shared/items.lua, and copy the pictures into your inventory's images folder — qb-inventory/html/images/ for qb-inventory.
Run items/esx_inventory.sql on your database. It adds the twelve rows to the items table, and updates them if they already exist.
With ox_inventory or qs-inventory, what a player finds goes straight into their own inventory. With any other inventory, a run uses its own bag — 12 slots, 18 kg — and only what they escape with is handed to your framework's inventory.
Claiming Admin Access#
The settings panel, the statistics and the entrance creator are behind permissions. Either of these routes gives access:
The usual route. Add these lines to server.cfg and restart:
add_ace group.admin command.backroomsconfig allow # settings panel and statistics
add_ace group.admin command.backroomscreator allow # entrance creator
add_ace group.admin command.sendbackrooms allow # /sendbackrooms
add_ace group.admin command.leavebackrooms allow # /leavebackroomsThe two window permissions can be renamed later in the settings panel, under Commands and access.
On by default (Framework admins in the settings panel). The admin, superadmin and god groups of ESX and QBCore, and anyone with the command ace — txAdmin's admins — open both windows without an extra ace.
Configuring the Resource#
Almost nothing is configured in files. Language, getting in, groups, rewards, survival, the HUD, restrictions, saving and commands all live in the in-game settings panel (/backroomsconfig), saved to the database and applied to every player at once. The files are for plumbing:
File | Contents |
|---|---|
| The developer tools switch, and the framework, inventory and target detection. |
| Money, items, revives, metadata and who counts as an admin, per framework. |
| Notifications, 3D labels, and hiding your server HUD during a run. |
| The inventory and target bridges. |
| Giving and taking items, notifications, Discord logs, qs-inventory quests and usable items. |
| Every text, in 41 languages. |
The one value worth changing before you open the server:
-- config/config.lua
Config.Debug = {
enabled = false, -- developer tools: /brdeveloper, /brdebug, /brnav and the test commands
command = 'brdebug',
navCommand = 'brnav',
showNodes = false,
showEntityState = false,
}To set the default language of every Quasar resource at once, add setr qs:locale "es" to server.cfg. A language chosen in the settings panel still wins over it.
Verifying the Installation#
Restart your server and read the console. Each line says what was picked or loaded:
[qs-backrooms:INFO] Server framework loaded: esx
[qs-backrooms:INFO] Started - framework: esx | inventory: ox_inventory | target: ox_target
[qs-backrooms:INFO] Database schema verified
[qs-backrooms:INFO] Creator points loaded: 438
[qs-backrooms:INFO] Backrooms doors loaded: 0
[qs-backrooms:INFO] Backrooms settings loaded: 0 saved, 45 in total
[qs-backrooms:INFO] Registered 11 usable items with ox_inventorystandalone next to the inventory or false next to the target means none was running when Backrooms started — if you do have one, move it above ensure qs-backrooms. Creator points loaded: 0 means sql.sql was not imported, and the levels have no exits, containers or lockers.
Then join your server and work through the first loop:
Send yourself in
Type
/sendbackrooms <your id>in chat. The screen fades and you drop onto Level 0 with a flashlight and a battery. PressFfor light.Find a way out
Hold
Eon a few boxes, open the bag withF2, and look for a door. HoldEon it: it may take you deeper, back home, or nowhere good./leavebackroomspulls you out at any time.Place an entrance
/backroomscreatoropens the entrance creator. Press +, pick a level and a look, place it on a wall and save. Usage covers it in detail.
Nothing needs a restart from here on except renaming the two commands. Every other setting applies the moment it is saved.



