Modelo de datos

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


Cada lugar está representado por un modelo de datos, una jerarquía de objetos que describe todo sobre el lugar. El modelo de datos contiene todos los objetos que componen el mundo 3D, como partes, terreno, iluminación y otros elementos ambientales. También contiene objetos que pueden controlar el comportamiento en tiempo de ejecución, como scripts que modifican propiedades, llaman a métodos y funciones, y responden a eventos que permiten un comportamiento dinámico e interactividad.

El motor de Roblox utiliza el modelo de datos como fuente de verdad para el estado de un lugar, de modo que puede simularlo y renderizarlo en los dispositivos del cliente. Para obtener más información sobre cómo el motor de Roblox interpreta el modelo de datos, consulta Ejecutar Cliente-Servidor.

Objetos


Colocas y organizas objetos en el modelo de datos para describir un lugar en Roblox. Cada objeto en Roblox hereda de la clase Instance, que define propiedades, métodos y eventos genéricos que son comunes a todos los objetos. Los objetos también definen sus propias características dependiendo de la funcionalidad que proporcionan. Hay muchas categorías de objetos con una amplia variedad de usos, pero trabajarás con frecuencia con objetos BasePart y LuaSourceContainer, comúnmente conocidos como partes y scripts.

Para obtener una lista completa de todas las características del motor de Roblox, consulta la documentación de referencia.

Bloques de construcción 3D

BasePart es la clase central para bloques de construcción 3D simulados físicamente en el mundo. Define las propiedades y métodos comunes a todos los objetos físicos con propiedades como posición, tamaño y orientación.

ObjetoDescripción
PartUna parte primitiva parte que puede adoptar la forma de un bloque, bola, cilindro, cuña o cuña de esquina.
MeshPartUna malla importada de software de modelado 3D como Maya o Blender.
TrussPartUna viga de truss que los personajes pueden escalar como una escalera.

Aunque teóricamente puedes crear un juego de Roblox completamente funcional utilizando solo partes simples, es muy probable que importes mallas y combines partes primitivas en objetos y estructuras más complejos a través de modelado sólido.

Scripts

Puedes agregar interactividad y comportamiento al mundo 3D de tu lugar y definir lógica con scripts. Escribes scripts en el lenguaje de programación Luau para hacer cosas como mover partes, llamar a otros scripts y responder a eventos. Como Roblox funciona en un modelo cliente-servidor, puedes ejecutar scripts en el servidor, en el cliente, o hacer que se comuniquen a través del límite de red.

  • Un objeto Script representa un script que solo puede ejecutarse en el servidor.
  • Un objeto LocalScript representa un script que solo puede ejecutarse en el cliente.
  • Un objeto ModuleScript representa un script reutilizable que puedes require() tanto desde scripts del servidor como del cliente.

Para que los scripts se comporten correctamente, debes colocarlos en los contenedores correctos en el modelo de datos. Para obtener más información, consulta las secciones Servidor y Cliente.

Organización de objetos

Si bien tienes mucha flexibilidad en cómo organizas tu modelo de datos, el motor de Roblox espera que ciertos objetos estén en ciertos servicios contenedores, que son objetos que tienen comportamientos específicos y pueden afectar los comportamientos de los objetos que contienen. Las principales categorías de servicios contenedores incluyen:

Además, puedes organizar aún más tus objetos con los siguientes objetos:

  • Carpetas — Una Folder es para fines organizativos y no define ningún comportamiento. Por ejemplo, puedes usar carpetas para agrupar objetos similares, como un conjunto de scripts en el almacenamiento del servidor.
  • Modelos — Un Model está principalmente destinado a agrupaciones geométricas de partes, como agrupar un conjunto de escritorio que incluye una silla, una mesa y una lámpara. Para organizar conjuntos más complejos, incluso puedes anidar modelos dentro de modelos.

Espacio de trabajo

Workspace contiene todos los objetos que componen el mundo 3D de un lugar. Puedes agregar objetos al espacio de trabajo para personalizar tu mundo 3D, como partes base, partes de malla y modelos. Los clientes renderizan todo lo que aparece en este contenedor y nada fuera de él, por lo que puedes controlar lo que los usuarios ven e interactúan en tu lugar. Aunque no se representan realmente, también puedes agregar scripts que están padre de las partes y modelos con los que están asociados. Por defecto, el espacio de trabajo está pre-poblado con un objeto Terrain y Camera.

Cámara

Camera determina cómo el cliente ve el mundo 3D. Por defecto, hay una cámara en el espacio de trabajo, pero puedes agregar múltiples objetos de cámara para crear diferentes perspectivas y vistas. Cada cliente toma estas configuraciones y crea su propia vista de cámara que el servidor no puede modificar directamente.

Por ejemplo, puedes configurar una cámara para seguir los movimientos del usuario o permanecer fija en una ubicación particular. También puedes ajustar el campo de visión, distancia y ángulo para crear diferentes efectos visuales de cómo los usuarios ven tu mundo 3D.

Para más información, consulta personalizar la cámara.

Terreno

Terrain te permite crear paisajes para tu lugar. Puedes aplicar un material al terreno para simular entornos naturales deseados, como hierba, agua, arena o un material personalizado. Aunque solo puedes tener un objeto de terreno para tu mundo 3D y aplicar un material a ese terreno, puedes usar el Editor de Terreno para editar regiones de tu terreno.

Para más información, consulta terreno ambiental.

Entorno

La iluminación personalizada puede hacer que tu mundo 3D sea mucho más inmersivo y realista. El servicio Lighting contiene objetos que controlan la configuración de iluminación global de tu lugar, como Atmosphere para simular efectos atmosféricos o Sky para alterar el sol, la luna y las estrellas en tus entornos. Además, puedes usar fuentes de luz para emitir luz desde objetos específicos.

Agregar audio a tus juegos también es crucial para elevar tus juegos a nuevas alturas. Mediante el uso estratégico de audio posicional y no posicional, puedes sumergir a los jugadores en tus mundos, proporcionarles retroalimentación útil para sus acciones y dirigir su atención a lo que necesitan hacer para tener éxito en sus objetivos.

Replicación

Replicación es el proceso mediante el cual el servidor sincroniza el estado de tu lugar con todos los clientes conectados. El motor de Roblox replica automáticamente y de forma inteligente datos, físicas y mensajes de chat entre el servidor y el cliente en muchos casos, pero también puedes especificar ciertos objetos para replicar colocándolos en contenedores específicos.

ReplicatedFirst

ReplicatedFirst contiene objetos que deseas replicar a un cliente cuando se une a tu lugar. Típicamente, contiene objetos que son esenciales para inicializar a un jugador, como objetos LocalScript del lado del cliente y los objetos asociados con los scripts. Todo el contenido en este contenedor se replica desde el servidor al cliente solo una vez.

ReplicatedStorage

ReplicatedStorage contiene objetos que están disponibles tanto para el servidor como para los clientes conectados. Cualquier cambio que ocurra en el cliente persiste, pero no se replicará al servidor. El servidor puede sobrescribir cambios en el cliente para mantener la consistencia. Este contenedor se usa típicamente para objetos ModuleScript que necesitan ser compartidos y accedidos tanto por objetos Script (del lado del servidor) como por objetos LocalScript (del lado del cliente). Además, puedes usar este contenedor para replicar cualquier objeto que no necesite existir en el mundo 3D hasta que sea necesario, como un ParticleEmitter para clonar y parentar a todos los modelos de personajes entrantes.

Para más información sobre cómo funciona la replicación, consulta ejecución cliente-servidor.

Servidor

El modelo de datos define contenedores dedicados para objetos solo del lado del servidor que nunca se replican al cliente. Esto permite que el servidor afecte el comportamiento y el estado del cliente sin exponer los objetos y la lógica del servidor al cliente.

ServerScriptService

ServerScriptService contiene objetos Script, objetos ModuleScript que son requeridos por scripts del servidor y otros objetos relacionados con scripting que son solo para uso del servidor. Si tus scripts requieren otros objetos que no son de scripting, debes colocarlos en ServerStorage. Los scripts en este contenedor nunca se replican a los clientes, lo que te permite tener lógica segura del lado del servidor.

ServerStorage

ServerStorage contiene objetos que son solo para uso del servidor. Puedes usar este contenedor para almacenar objetos que deseas clonar y parentar al espacio de trabajo u otros contenedores en tiempo de ejecución. Por ejemplo, puedes almacenar objetos grandes como mapas en este contenedor hasta que sean necesarios y moverlos al espacio de trabajo solo cuando se requiera. Esto te permite disminuir el tráfico de red del cliente al unirse inicialmente.

Cliente

Los servicios contenedores del cliente están destinados para objetos que se replican a cada cliente conectado. Esta categoría de contenedores se replica a cada cliente conectado y generalmente contiene objetos 3D y objetos LocalScript asociados. Todos los objetos que almacenes en estos contenedores no son persistentes entre sesiones y se reinician cada vez que un cliente vuelve a unirse. Puedes colocar objetos en estos contenedores como GUIs de jugador, scripts del lado del cliente y otros objetos que son solo relevantes para el cliente.

Cuando un cliente se conecta a un servidor, el servicio contenedor Players escucha a los usuarios que se unen a tu lugar y crea un objeto Player para cada cliente. El servidor copia los objetos de los contenedores del cliente en el modelo de datos de edición a la ubicación correspondiente en el modelo de datos de ejecución dentro del objeto Players. La siguiente tabla describe el contenedor original en el que reside en el contenedor y el contenedor resultante al que se copian en el cliente:

Modelo de datos de ediciónModelo de datos de ejecuciónNotas
StarterPackPlayer.BackpackScripts que configuran el inventario del jugador y generalmente contienen objetos Tool, pero a menudo también contienen scripts locales.
StarterGuiPlayer.PlayerGuiScripts que pueden gestionar la GUI local del jugador. Cuando un jugador respawnea, los contenidos de PlayerGui se vacían. El servidor copia los objetos dentro de StarterGui en el PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsScripts de propósito general para el cliente. Por ejemplo, si deseas crear efectos especiales en el cliente cuando se cumplen ciertas condiciones, puedes colocar un script local en este contenedor para hacerlo. El servidor no puede acceder a este contenedor.
StarterCharacterScriptsPlayer.CharacterScripts que se copian al cliente cuando se generan. Estos scripts no persisten cuando el jugador respawnea.
ReplicatedFirstEl contenido de este contenedor se replica a todos los clientes (pero no de vuelta al servidor) primero, antes de cualquier otra cosa.

Chat

TextChatService

TextChatService representa el servicio que maneja diversas tareas de chat de texto en el juego, como gestionar canales, decorar mensajes, filtrar texto, crear comandos y desarrollar interfaces de chat personalizadas.

Para más información, consulta visión general del chat de texto.

VoiceChatService

VoiceChatService representa la función de chat de voz por proximidad que simula una comunicación realista según qué tan cerca estés de otros usuarios. Puedes usar este servicio para activar y desactivar la función.

Para más información, consulta chat de voz.

Carpetas y modelos

Hay dos métodos principales para agrupar objetos en el modelo de datos: carpetas y modelos. Ambos son contenedores para objetos, pero tienen diferentes propósitos.

  • Carpetas son las mejores para almacenar secciones de un entorno, como el vestíbulo o una arena de combate.
  • Modelos se utilizan para conjuntos de objetos, como un conjunto de escritorio que incluye una silla, una mesa y una lámpara. Para organizar conjuntos más complejos, anida modelos dentro de modelos.

Siempre debes nombrar tus objetos de manera descriptiva. Esto facilita encontrar y modificar objetos más adelante si es necesario.

La ventana Explorer con una demostración de una estructura de organización de carpetas.
Objetos organizados en Folders
La ventana Explorer con una demostración de una estructura de organización de modelos en varios servicios.
Varios modelos "mapa" para intercambiar entre Workspace y ServerStorage
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.