Comandos#
Backrooms registra cuatro comandos de administración. Las dos ventanas comprueban los permisos definidos en el panel de ajustes; los dos comandos de jugador los restringe el propio FiveM y también funcionan desde la consola del servidor.
Comando | Permiso | Descripción |
|---|---|---|
|
| Abre el panel de ajustes, con las pestañas Statistics y Creator. Su nombre se define en el panel. |
|
| Abre el creador de entradas. Su nombre se define en el panel. |
|
| Envía a un jugador a una partida propia. |
|
| Saca a un jugador y lo devuelve a donde entró. Sin id, a ti mismo. |
<id> es el id de servidor del jugador — el número junto a su nombre en la lista de jugadores. Los ids de nivel son:
Id | Nivel |
|---|---|
| Level 0 — The Lobby |
| Level 1 — Habitable Zone |
| Level 2 — Pipe Dreams |
| Level 3 — Electrical Station |
| Level X — The Sublevel |
Herramientas de desarrollo#
Con Config.Debug.enabled = true en config/config.lua, se registran estas herramientas. Existen para construir niveles y probar partidas.
Comando | Quién | Descripción |
|---|---|---|
| Administradores | El editor de niveles. Consulta Uso. |
| Cualquiera | Muestra tu partida en la consola F8: el framework, el inventario y el target detectados, el nivel, la cordura, la resistencia, la batería, el ruido, los monstruos vivos y cazando, tu bolsa y tus coordenadas exactas. |
| Cualquiera | Muestra u oculta los nodos por los que caminan los monstruos. |
| Cualquiera | Fija tu cordura. |
| Cualquiera | Genera un monstruo 12 m delante: |
| Cualquiera | Reproduce un presagio: |
| Cualquiera | Un apagón — 14 segundos por defecto, hasta dos minutos. |
| Cualquiera | Mueve tu partida a otro nivel, por id. |
| Cualquiera | Muestra una etiqueta 3D de prueba durante 15 segundos, delante de ti o en las coordenadas indicadas. |
| Consola o administradores | Cada partida activa: su nivel, routing bucket, semilla, supervivientes, contenedores registrados y monstruos vivos. |
| Consola o administradores | Fuerza una señal del director a todos los de la partida de ese jugador: |
| Consola o administradores | Da a un jugador un ítem de Backrooms. |
Exports de cliente#
Para mantener tu propio teléfono, HUD o menús fuera de una partida, y para leer el estado del jugador.
¿Está el jugador dentro?
local inside = exports['qs-backrooms']:IsInBackrooms() -- true while in a run
local level = exports['qs-backrooms']:GetLevel() -- 'lv_01' to 'lv_05', or nil
if inside then
return -- no phone down here
endCordura, resistencia y batería
local sanity = exports['qs-backrooms']:GetSanity() -- 0 to 100
local stamina = exports['qs-backrooms']:GetStamina() -- 0 to 100
local battery = exports['qs-backrooms']:GetBattery() -- 0 to 100, the flashlightExports de servidor#
Cómo otro recurso controla los Backrooms — un ítem maldito, un ritual, una misión, un castigo.
SendPlayerToBackrooms
Envía a un jugador a una partida propia. El nivel es opcional y por defecto es el Level 0.
local ok = exports['qs-backrooms']:SendPlayerToBackrooms(source, 'lv_01')
-- Bring them back somewhere specific, and let them quit from the exit panel
exports['qs-backrooms']:SendPlayerToBackrooms(source, 'lv_03', {
returnCoords = vector3(-1037.2, -2737.5, 20.2),
anchorReturn = true, -- escapes land on returnCoords instead of a random spot
})Devuelve false cuando el jugador no está conectado, ya está dentro o el id de nivel no existe. Sin returnCoords vuelve a donde estaba. Se registra en Discord como entrada de administrador y cuenta para la misión de qs-inventory.
RemovePlayerFromBackrooms
local removed = exports['qs-backrooms']:RemovePlayerFromBackrooms(source)Saca a un jugador y lo devuelve a donde entró. Devuelve false si no estaba dentro.
Leer un jugador
local inside = exports['qs-backrooms']:IsPlayerInBackrooms(source)
local level = exports['qs-backrooms']:GetPlayerLevel(source) -- 'lv_02', or nil
local stats = exports['qs-backrooms']:GetPlayerStats(source)
-- { runs, escapes, deaths, deepest, deepestLabel, bestTimeMs, totalTimeMs, itemsFound }GetActiveInstances
for id, run in pairs(exports['qs-backrooms']:GetActiveInstances()) do
print(id, run.level, run.bucket, run.memberCount)
-- run.members = { serverId, ... }, run.seed, run.startedAt
endCada partida abierta ahora mismo, indexada por su id.
Eventos de servidor#
Se lanzan en el servidor para cada partida — para un pago de trabajo, un logro, tus propios logs:
AddEventHandler('qs-backrooms:playerEntered', function(source, levelId, instanceId)
end)
AddEventHandler('qs-backrooms:levelChanged', function(instanceId, levelId, reason, members)
-- reason: 'descend' or 'trap'; members: the server ids in that run
end)
AddEventHandler('qs-backrooms:playerDied', function(source, levelId, cause, timeMs)
-- cause: 'entity', 'sanity', 'fall' or 'unknown'
end)
AddEventHandler('qs-backrooms:playerLeft', function(source, reason, reward, summary)
-- reason: 'escape', 'death', 'leave', 'skyfall' or 'admin'
-- reward: the cash paid on an escape
-- summary: { outcome, timeMs, depth, depthLabel, itemsFound, lootValue, reward, ... } or false
end)Una desconexión no lanza playerLeft — la partida se mantiene o se cierra según los ajustes de Disconnects and ranking. En el cliente, qs-backrooms:client:blockResource marca el inicio y el final de una partida — consulta Integraciones.
Sobre los errores#
Los callbacks del servidor responden con una clave de idioma en lugar de una frase — notify.too_far, notify.exit_locked, general.no_permission — para que el mismo fallo se lea en el idioma de cada jugador. Tradúcelas con los textos de locales/, y consulta Errores comunes para saber qué significan los habituales.



