Las dos ventanas#
Casi todo en Apartments ocurre donde está el jugador: un aviso en una puerta, un pequeño menú, un teclado numérico. Existen dos ventanas completas, y conviene saber cuál es cuál:
Ventana | Se abre con | Para qué sirve |
|---|---|---|
El menú de decoración |
| Comprar, colocar, guardar y vender muebles. |
El Furniture Creator |
| Añadir nuevas piezas al catálogo de muebles dentro del juego, con su propia miniatura. |
Todo lo que contiene un apartamento (quién es su propietario, sus puntos, códigos de bóveda y muebles) se guarda en la base de datos en el momento en que cambia. Los edificios, shells, precios y comportamiento se configuran en
config/main.luayconfig/furniture.lua.
Con qué arranca un servidor nuevo#
Cinco edificios, cada uno con una puerta principal en la ciudad, su propio blip y su propio nivel de interior:
Edificio | Clave | Interior | Precio |
|---|---|---|---|
South Rockford Drive |
| Nivel 1 · | $5,000 |
Morningwood Blvd |
| Nivel 2 · | $5,000 |
Integrity Way |
| Nivel 3 · | $5,000 |
Tinsel Towers |
| Nivel 4 · | $5,000 |
Fantastic Plaza |
| Nivel 1 · | $5,000 |
Un jugador posee un apartamento a la vez. Una vez que tiene uno, todos los edificios aparecen en su mapa, el suyo con un icono distinto al del resto. Cada apartamento recibe un ID formado por su edificio y un número, como sr_drive_a4821, y una etiqueta como South Rockford Drive 4821.
Conseguir un apartamento#
Forma | Cómo funciona |
|---|---|
Al aparecer | Un personaje nuevo elige un edificio en Multicharacter, qb-spawn o el menú de Qbox, obtiene el apartamento gratis y entra directamente, donde se abre el creador de personajes. Consulta Integraciones. |
| Abre el Apartment Menu para un jugador que aún no tiene apartamento. Elegir un edificio se lo asigna y cobra su precio del banco. A un jugador que ya tiene uno se le indica You already have an apartment. |
En la puerta | Move Apartment en el menú de entrada de un edificio cobra el precio de ese edificio del banco, ya sea para comprar un primer apartamento o para mudar allí uno existente. |
Los apartamentos siempre se pagan desde el banco. Config.MoneyType solo decide desde dónde se pagan los muebles.
Mudarse#
En cualquier edificio que no sea el suyo, un jugador ve Move Apartment — Move your apartment to another house. Mudarse cobra el precio de ese edificio y lleva el apartamento allí, con el mismo ID.
La entrada#
Acércate a la puerta de un edificio y aparece el aviso Press [E] to open entrance menu. El Entrance Menu ofrece:
Opción | Visible para | Hace |
|---|---|---|
Enter Apartment | El propietario de un apartamento en este edificio | Entra. |
Move Apartment | Todos los demás | Compra un apartamento aquí o muda el suyo aquí. |
Ring Doorbell | Todos | Muestra quién está en casa en este edificio; consulta Visitantes más abajo. |
Con Config.UseTarget = true las mismas opciones están en la puerta como entradas de target, dimensionadas según el area de cada edificio.
Dentro del apartamento#
Al entrar, la pantalla se funde, se construye el interior para esa visita y el jugador queda junto a su puerta. Cada apartamento tiene su propio routing bucket, así que la calle y sus jugadores no están en tu mundo mientras estás en casa. La sincronización del clima y la hora se pausa dentro y vuelve al salir. Un jugador que se desconecta en casa vuelve a conectarse en casa.
Aviso | Dónde | Hace |
|---|---|---|
| En la puerta | Vuelve a la calle, en la entrada del edificio. |
| En la puerta, después de que suene el timbre | Deja entrar al visitante. |
| En el stash o en un mueble de almacenamiento | Lo abre o gestiona su código de bóveda. |
| En el armario o en un mueble armario | Abre los atuendos del jugador. |
| En un trozo de basura | La barre. |
Con Config.InteractInDoor = true, el propietario también tiene un atajo en la puerta, con H, al menú de puntos descrito a continuación.
El stash, el armario y el cargador#
Un apartamento nuevo no tiene ninguno de los tres: el propietario coloca cada uno donde quiere. /ApartmentLocation abre Apartments Location; elige un punto, camina hasta el lugar y pulsa G — Press G to set the location. Ejecutarlo de nuevo mueve el punto.
Punto | Qué abre |
|---|---|
Stash | El stash del apartamento, a través de tu inventario: 30 espacios y 1,000,000 de peso por defecto ( |
Armario | Los atuendos guardados del jugador, a través del script de ropa detectado. |
Carga | Un punto de carga del teléfono, gestionado por tu script de teléfono; consulta Integraciones. |
Códigos de bóveda#
Cualquier stash, ya sea el del propio apartamento o un mueble de almacenamiento, puede bloquearse con un código de bóveda. En el stash pulsa G (Set Vault Code con un target) para abrir Vault Management:
Set Vault Code — escribe cuatro dígitos en el teclado y pulsa Confirm. El teclado también acepta las teclas numéricas,
BACKSPACE,ENTERyESC.Remove Code — lo desbloquea de nuevo. Aparece en gris mientras no hay código.
A partir de entonces, a quien abra ese stash se le pide primero el código, y uno incorrecto se rechaza con Invalid vault code. Un apartamento admite hasta 10 códigos entre todos sus stashes; añade Config.MaxVaultCodes = 20 a config/main.lua para permitir más.
Nombres de los stashes, para las herramientas de administración de tu inventario: el stash del apartamento lleva el nombre del ID del apartamento (
sr_drive_a4821); un mueble de almacenamiento esapartment_objectseguido de su ID de mueble. Los guiones se convierten en guiones bajos.
Visitantes#
Tocar el timbre
En la entrada, Ring Doorbell muestra cada apartamento de ese edificio con alguien dentro, por etiqueta. Elige uno para tocar el timbre. Si no hay nadie en casa: Nobody is home.
Abrir la puerta
Todos los que están dentro oyen el timbre y leen Bell rang. Un residente va hasta la puerta y pulsa
G, o elige Doorbell con un target.Pasa
El visitante entra, siempre que siga a menos de 5 metros de la entrada.
Un visitante está en el mismo apartamento que el residente: todo lo que no tenga código de bóveda está abierto para él. Para eso sirven los códigos.
Decorar#
Pulsa F9 dentro de un apartamento, o escribe /ApartmentDecoration. La cámara se separa del jugador y se abre el menú de decoración, con música. Los jugadores pueden reasignar la tecla en Settings → Key Bindings → FiveM del juego.
Solo una persona decora un apartamento a la vez. A cualquier otra se le indica Decoration is not available, someone using it.
No se abre mientras un robot de limpieza esté fuera de su base.
Las tres pestañas#
Pestaña | Qué muestra |
|---|---|
Dynamic | Una imagen de cada habitación (cocina, baño, dormitorio, sala de estar, jardín) con sus categorías de muebles dibujadas en su lugar. Haz clic en una categoría para ver sus piezas. |
Objects | Las 40 categorías en una cuadrícula. Selecciona varias a la vez, o ninguna para verlo todo, y fíltralas con Search category. |
Stash | Todo lo que posees en este apartamento, colocado o guardado. Selecciona una pieza en la lista, o haz clic en ella en la habitación, para gestionarla. |
La barra de búsqueda superior, Search Furniture Items, busca coincidencias en nombres, descripciones, colores y nombres de modelo. Las piezas marcadas como Interactive hacen algo una vez colocadas. El botón ⓘ abre Controls and Help.
Comprar una pieza#
Haz clic en una pieza y aparece una vista previa a unos cinco metros delante de la cámara. Elige un color en Select Color, muévela adonde quieras y pulsa Buy - $price (o ENTER) y Confirm. El dinero se cobra del efectivo, o del banco con Config.MoneyType = 'bank', y la pieza se guarda donde está. Si te falta dinero, la vista previa se elimina con You don't have enough money!.
Mover piezas#
Hay dos formas de mover una pieza, que se alternan con M: modo ratón, el predeterminado, en el que la pieza sigue al cursor mientras mantienes pulsado el botón izquierdo; y el gizmo, flechas y anillos sobre la pieza que arrastras: Translate o Rotate en Edit Mode.
Tecla | Hace |
|---|---|
Botón izquierdo del ratón, mantenido | Modo ratón: arrastra la pieza por suelos y paredes. |
| Alterna entre el modo ratón y el gizmo. |
| Gizmo: alterna entre Translate y Rotate. |
| Gizmo: alterna entre ejes globales y locales. |
| Coloca la pieza en el suelo. |
| Muestra u oculta el cursor. |
| Oculta el menú para tener una vista despejada y devuelve las teclas al juego. |
| Activa o desactiva la cámara libre. |
| Gizmo con la cámara libre: mantiene la cámara sobre la pieza seleccionada. |
| Compra la pieza que sostienes. |
| Cierra el menú. Una pieza que no hayas comprado se descarta. |
Gestionar lo que posees#
En la pestaña Stash, selecciona una pieza y se abre Furniture Management encima de la lista:
Botón | Hace |
|---|---|
Put in Stash | Saca la pieza de la habitación y la guarda; pulsa de nuevo para traerla de vuelta. Indica In Stash o Not In Stash. Este almacén de muebles es independiente del stash de ítems. |
Sell Furniture | Vende la pieza por el 30% de su precio ( |
Save Location | Guarda la posición a la que has movido tus piezas. |
Muebles interactivos#
Tipo | Una vez colocado |
|---|---|
Almacenamiento | Neveras, muebles de cocina, armarios colgantes, mesitas de noche, lavadoras y algunas mesas abren un stash propio, con su propio tamaño y su propio código de bóveda. |
Armarios | Abren los atuendos del jugador, como el punto de armario. |
Luces | El Spotlight de la categoría Light ilumina hacia donde apunta, a |
Puertas | Se abren y cierran con |
Robot de limpieza | Limpia el apartamento por sí solo; consulta más abajo. |
Los tuyos | Una pieza a la que se le asigna un |
Los muebles se generan para los jugadores dentro de Config.SpawnDistance (100 metros) y aparecen gradualmente a medida que llegan.
La basura y el robot de limpieza#
Con Config.Cleaning = true, un apartamento se ensucia mientras hay alguien dentro. Cada 10 minutos aparece un poco de polvo o basura cerca de la puerta, hasta 10 a la vez. El reloj solo corre mientras haya al menos un jugador dentro, la basura se queda donde cayó entre visitas, y el servidor elimina todo lo que tenga más de siete días.
El propietario limpia cada trozo acercándose y pulsando E — [E] - Clean. Sale una escoba y tres segundos después desaparece: You cleaned the junk.
Config.Cleaning = true
Config.JunkObjects = { 'qs_dust_prop_01', 'qs_garbage_prop_01', 'qs_garbage_prop_02', 'qs_garbage_prop_03' }
Config.JunkObjectTime = 10 * 60 * 1000 -- how often a new piece appears, in ms
Config.MaxJunkPerHouse = 10 -- the most an apartment holds at onceEl robot de limpieza#
El Cleaning Robot ($550, cinco colores) está entre los muebles de la sala de estar. Colócalo dentro del apartamento y se queda en su base. En la base pulsa E — [E] Start Robot, o Start Cleaning Robot con un target, y se pone en marcha: sigue las paredes, se gira hacia cualquier basura que vea y la barre. Vuelve a su base cuando lo detienes ([E] Stop Robot) o tras cinco minutos.
Todos en el apartamento lo ven moverse; solo el jugador que lo puso en marcha lo controla, y a cualquier otro se le indica This robot is already being used by someone.
La decoración espera hasta que vuelva a su base.
Vuelve a su base cuando el jugador que lo puso en marcha sale del apartamento o se desconecta.
Config.CleanerRobot = {
moveSpeed = 0.012, -- base speed
maxSpeed = 0.024, -- top speed
junkDetectRadius = 1.0, -- how close it must get to pick something up
maxDistanceFromDock = 12.0, -- keeps it inside the apartment
cleaningTimeout = 5 * 60 * 1000, -- back to the dock after this long
wobbleEnabled = true, -- a slight wobble, for realism
}El Furniture Creator#
Los administradores añaden muebles sin tocar config/furniture.lua. Escribe /apartmentfurniture: a la izquierda se listan las categorías con sus totales, y cada una tiene un + que crea una pieza nueva en ella. Las piezas ya creadas en el juego aparecen en su categoría para editarlas.
Pestaña | Campos |
|---|---|
Basic Info | Object Name (el modelo; debe existir en tu juego), Label, Description, Price, Color Label, con una Live Preview de la tarjeta que verán los jugadores. |
Advanced | Image (una URL, o el botón de cámara), Stash con Slots y Max Weight, o Wardrobe (uno u otro) y Position Offset, donde se sitúa el aviso sobre la pieza. |
Colors | Color Variations: cada una con su propio modelo, etiqueta, precio y stash o armario. |
Create la guarda en la base de datos y todos los jugadores la tienen en el menú de decoración al instante, sin reiniciar. Un modelo solo puede estar una vez en una categoría, y solo las piezas creadas en el juego pueden eliminarse aquí; las piezas de config/furniture.lua se editan en ese archivo. Las categorías nuevas también se añaden en el archivo.
El fotomatón#
El botón de cámara junto a Image toma la miniatura por ti. La ventana se cierra y ves la pieza en un estudio verde:
Tecla | Hace |
|---|---|
| Mueve la pieza. |
| La sube y la baja. |
| La gira. |
Rueda del ratón | Zoom. |
| Toma la foto. |
| Cancela. |
La imagen se sube a FiveManage con el token de config/fivemanage.lua, y el creador se vuelve a abrir con su dirección ya rellenada. Necesita screenshot-basic; en equipos lentos, aumenta Config.FurniCreator.interval (milisegundos antes de la captura).
Añadir un edificio#
Los edificios son entradas de Config.ApartmentCatalog en config/main.lua. La clave es el ID del edificio: en minúsculas, sin espacios y sin renombrarla nunca una vez que haya jugadores con apartamentos allí. Colócate en la nueva puerta dentro del juego para tomar tus propias coordenadas; las de abajo son solo un ejemplo.
['vespucci_canals_f'] = {
name = 'vespucci_canals_f', -- the same as the key
label = 'Vespucci Canals', -- menus and the blip
image = 'https://...', -- shown by spawn selectors
description = 'A quiet flat by the water.',
price = 7500, -- charged to the bank
tier = 2, -- which entry of Config.Shells
coords = { enter = vector4(-1086.0, -1270.0, 5.6, 210.0) }, -- the street door
area = { heading = 210, minZ = 4.5, maxZ = 7.5, debug = false, length = 1, width = 2, distance = 2.0, created = false },
},area es la caja a la que apuntan los jugadores con un target; created debe seguir siendo false. Reinicia el recurso y el edificio estará en el mapa, en /Apartment y en los selectores de aparición.
Shells y puertas de salida#
Un interior es un modelo de shell de Config.Shells, elegido según el tier del edificio. Cada copia se genera en Config.ShellSpawnCoords, fuera de la vista, una vez por visita.
Config.Shells = {
[1] = { model = 'shell_v16low' },
[2] = { model = 'shell_office1' },
[3] = { model = 'shell_v16low' },
[4] = { model = 'shell_v16mid' },
[5] = { model = 'shell_michael' }, -- a new tier
}El pack K4MB1 Starter Shells incluye 16 modelos que puedes usar: container_shell, furnitured_midapart, modernhotel_shell, shell_frankaunt, shell_garagem, shell_lester, shell_michael, shell_office1, shell_ranch, shell_store1, shell_trailer, shell_trevor, shell_v16low, shell_v16mid, shell_warehouse1, standardmotel_shell. Cualquier otra shell funciona igual una vez que se carga. El valor stash junto a cada shell en el archivo incluido no se lee; el stash del apartamento es Config.DefaultStashData.
Colocar una puerta de salida#
Cada nivel necesita saber dónde está su puerta. Eso se guarda en shell_offsets.json, y los niveles 1 a 4 ya incluyen la suya. Para un nivel nuevo, la primera persona que entre en un edificio de ese nivel ve No exit coords found y una cámara sobre la shell vacía, así que hazlo tú antes de que lleguen los jugadores:
Apunta al lugar
Vuela con
WASD,Q/Ey el ratón. Un fantasma de tu personaje aparece donde apunta la cámara, dentro de la shell junto a la puerta.Oriéntalo correctamente
Z/Xgiran el fantasma: esa es la dirección hacia la que miran los jugadores al llegar.Guárdalo
ENTERlo guarda (el punto debe estar dentro de la shell) yBACKSPACEcancela. Se escribe enshell_offsets.jsony se envía a todos los jugadores al instante. Vuelve a entrar y llegarás a la puerta.
Para mover una puerta existente, elimina la entrada de ese nivel de shell_offsets.json, reinicia y colócala de nuevo.
La configuración#
El resto de config/main.lua, con los valores incluidos. Un cambio requiere restart qs-apartments.
Ajuste | Predeterminado | Efecto |
|---|---|---|
| false | Entradas de target en lugar de avisos. |
| true | qb-spawn ofrece los edificios a un personaje sin apartamento. |
| 'money' | Desde dónde se pagan los muebles: |
| 0.3 | Parte del precio que se devuelve al vender una pieza. |
| 30 espacios, 1,000,000 | El stash del apartamento y cualquier mueble de almacenamiento sin tamaño propio. |
| 'decorate' · 0.05 | Música en el menú de decoración. |
| 'F9' | Tecla predeterminada del menú de decoración. Los jugadores que ya se conectaron conservan su propia asignación. |
| 100.0 | Distancia a la que debe estar un jugador para que aparezcan los muebles. |
| 20.0 | Brillo de los focos colocados. |
| true | Las puertas colocadas se abren. Requiere |
| false | Un atajo al menú de puntos en la puerta del apartamento. |
| vec4(279.46, 335.1, 98.57, 67.26) | Dónde se construyen los interiores. Cámbialo solo junto con |
| en-US, USD | Cómo se escriben los precios en los menús: configuración regional, moneda, decimales. |
| look 500, move 10 | Velocidades de la cámara libre al decorar y al colocar puertas. |
| — | Los códigos de control del juego detrás de cada tecla anterior, por si necesitas cambiar alguna. |
HideRadarInDecorate,ModernDecorateModeyFreeModeKeysenconfig/main.lua, yFurnitureShopsyIllegalFurnituresenconfig/furniture.lua, Apartments no los lee. Cambiarlos no tiene ningún efecto.



