Roblox Battle Royale cuenta con un sistema de construcción que permite a los usuarios crear sus propias estructuras para alcanzar terrenos más altos para un mejor ángulo de disparo, o para proporcionar cobertura durante el combate. Usando un menú, el usuario puede seleccionar entre varios tipos de baldosas y colocarlas en el mundo.

Para mantener un sistema ordenado y estructurado:
- Cada baldosa debe conectarse a otra baldosa existente o al suelo.
- Coloca todas las baldosas de construcción dentro de una cuadrícula coordinada con el mundo 3D para que las baldosas se conecten correctamente y no se superpongan.
Composición de baldosas
Para que los usuarios puedan construir nuevas baldosas de manera rápida y sencilla, el sistema de construcción necesita entender qué baldosas están conectadas entre sí y dónde se pueden colocar nuevas baldosas en la cuadrícula.
Las baldosas utilizan 3 componentes: el activo visual que se usa como objeto de baldosa, información sobre el espacio que ocupa la baldosa en referencia a otros objetos del mundo, y los puntos de conexión de una baldosa que permiten que baldosas adicionales se conecten a bordes disponibles.
Activo
Un activo es un BasePart (Part, MeshPart, etc.) colocado en ReplicatedStorage/BuildingSystem/Assets que representa cómo se ve la baldosa en el mundo 3D. Este BasePart debe tener dos hijos:
- StartingRotation — Un NumberValue con un Value de la rotación inicial de la baldosa cuando un usuario la coloca en el mundo.
Ocupación
Asegurar que una baldosa ocupe la ubicación correcta en un sistema de cuadrícula es importante y se puede hacer utilizando una máscara de bits. Una máscara de bits representa el espacio físico que ocupa el tipo de baldosa dentro de una sección básica del espacio del mundo, o celda. Cada baldosa/objeto del sistema de construcción puede ocupar cualquier número de caras de una celda de cuadrícula (frente, izquierda, atrás, derecha, arriba y abajo) y cualquier número de octantes en una celda de cuadrícula. Un usuario solo puede colocar un objeto del sistema de construcción en una celda si todas las caras y octantes que el objeto ocupa están disponibles en esa celda. La ocupación para un objeto del sistema de construcción se define de la siguiente manera:
| Índice de bit | Significado |
|---|---|
| 0 | Cara inferior de la celda |
| 1 | Cara superior de la celda |
| 2 | Cara derecha de la celda |
| 3 | Cara trasera de la celda |
| 4 | Cara izquierda de la celda |
| 5 | Cara frontal de la celda |
| 6 | +X, –Y, +Z octante de la celda con origen en el centro de la celda |
| 7 | +X, +Y, +Z octante de la celda con origen en el centro de la celda |
| 8 | –X, –Y, +Z octante de la celda con origen en el centro de la celda |
| 9 | –X, +Y, +Z octante de la celda con origen en el centro de la celda |
| 10 | –X, –Y, –Z octante de la celda con origen en el centro de la celda |
| 11 | –X, +Y, –Z octante de la celda con origen en el centro de la celda |
| 12 | +X, –Y, –Z octante de la celda con origen en el centro de la celda |
| 13 | +X, +Y, –Z octante de la celda con origen en el centro de la celda |
Conectividad
Las baldosas deben conectarse entre sí para crear una estructura. Se puede usar una máscara de bits que representa qué porciones de las caras/bordes de la celda toca el tipo de baldosa. La conectividad de una baldosa/objeto del sistema de construcción está representada por una serie de puntos de conexión, bits, en la superficie de una celda. Se organizan de la siguiente manera en las caras de la celda:

Un objeto del sistema de construcción se considera conectado a otro objeto del sistema de construcción en la cuadrícula si comparten al menos 2 puntos de conexión en la superficie de una celda.
Crear nuevos tipos de baldosas
Para crear un nuevo tipo de baldosa:
Coloca el activo en ReplicatedStorage/BuildingSystem/Assets. Recuerda que debe contener hijos ObjectType y StartingRotation según lo definido anteriormente.

Define la Ocupación y Conectividad para tu nuevo tipo de baldosa en ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations:

Por ejemplo, el tipo de baldosa Wall se expresa de la siguiente manera:
ObjectTypeConfigurations.Wall = {ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0}
Trabajar con terreno
Si deseas crear un mapa con terreno de forma libre terrain que se alinee perfectamente con el sistema de construcción, te recomendamos que utilices el sistema de importación de heightmap como se detalla en Terreno Ambiental y que observes los siguientes detalles:
El terreno en Roblox se representa mediante un arreglo tridimensional de vóxeles, cada uno de los cuales ocupa un cubo de 4×4×4 studs en el mundo. Debido a esto, Roblox Battle Royale utiliza un tamaño de celda de cuadrícula de 20×16×20 studs, con baldosas de pared que son de 20×16×1 studs y baldosas de suelo/techo que son de 20×1×20 studs de tamaño. Esto permite que las baldosas de construcción y el terreno se alineen correctamente.
Cada píxel en tu imagen de heightmap debe representar un vóxel de terreno en el plano X/Z, por lo que un área de 5×5 píxeles representa una celda de cuadrícula del sistema de construcción que ocupa un área de 20×20 studs.
En tu imagen de heightmap, asegúrate de que el valor del canal rojo o del canal gris para cada píxel sea divisible por la altura de tu celda de cuadrícula del sistema de construcción para que las baldosas de suelo se sienten bien sobre el terreno.
Cuando importes tu heightmap, configura:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4