Modelo de dados

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.


Cada lugar é representado por um modelo de dados, uma hierarquia de objetos que descrevem tudo sobre o lugar. O modelo de dados contém todos os objetos que compõem o mundo 3D, como partes, terreno, iluminação e outros elementos ambientais. Ele também contém objetos que podem controlar o comportamento em tempo de execução, como scripts que modificam propriedades, chamam métodos e funções, e respondem a eventos que possibilitam comportamento dinâmico e interatividade.

O Engine Roblox usa o modelo de dados como uma fonte de verdade para o estado de um lugar, para que possa simular e renderizá-lo em dispositivos de cliente. Para mais informações sobre como o Engine Roblox interpreta o modelo de dados, veja Execução Cliente-Servidor.

Objetos


Você coloca e organiza objetos no modelo de dados para descrever um lugar no Roblox. Cada objeto no Roblox herda da classe Instance, que define propriedades, métodos e eventos genéricos que são comuns a todos os objetos. Os objetos também definem suas próprias características dependendo da funcionalidade que o objeto fornece. Existem muitas categorias de objetos com uma ampla variedade de usos, mas você frequentemente trabalhará com objetos BasePart e LuaSourceContainer, comumente chamados de partes e scripts.

Para uma lista abrangente de todos os recursos do Engine Roblox, veja a documentação de referência.

Blocos de construção 3D

BasePart é a classe principal para blocos de construção 3D fisicamente simulados no mundo. Ela define as propriedades e métodos comuns a todos os objetos físicos, com propriedades como posição, tamanho e orientação.

ObjetoDescrição
PartUma parte primitiva que pode ter a forma de um bloco, bola, cilindro, cunha ou cunha de canto.
MeshPartUma malha importada de softwares de modelagem 3D como Maya ou Blender.
TrussPartUma viga de treliça que personagens podem escalar como uma escada.

Embora você consiga teoricamente criar um jogo totalmente funcional no Roblox apenas com partes simples, é mais provável que você importe malhas e combine partes primitivas em objetos e estruturas mais complexas por meio da modelagem sólida.

Scripts

Você pode adicionar interatividade e comportamento ao mundo 3D do seu lugar e definir lógica com scripts. Você escreve scripts na linguagem de programação Luau para fazer coisas como mover partes, chamar outros scripts e responder a eventos. Como o Roblox funciona em um modelo cliente-servidor, você pode executar scripts no servidor, cliente ou fazer com que eles se comuniquem através do limite da rede.

  • Um objeto Script representa um script que pode ser executado apenas no servidor.
  • Um objeto LocalScript representa um script que pode ser executado apenas no cliente.
  • Um objeto ModuleScript representa um script reutilizável que você pode require() tanto de scripts do servidor quanto do cliente.

Para que os scripts se comportem corretamente, você deve colocá-los nos contêineres corretos no modelo de dados. Para mais informações, veja as seções Servidor e Cliente.

Organização de objetos

Embora você tenha muita flexibilidade em como organizar seu modelo de dados, o Engine Roblox espera que certos objetos estejam em certos serviços de contêiner que são objetos que têm comportamentos específicos e podem afetar os comportamentos dos objetos que contêm. As principais categorias de serviços de contêiner incluem:

Além disso, você pode organizar ainda mais seus objetos com os seguintes objetos:

  • Pastas — Uma Folder é para fins organizacionais e não define nenhum comportamento. Por exemplo, você pode usar pastas para agrupar objetos semelhantes, como um conjunto de scripts no armazenamento do servidor.
  • Modelos — Um Model é principalmente destinado a agrupamentos geométricos de partes, como agrupar um conjunto de mesa que inclui uma cadeira, mesa e uma lâmpada. Para organizar conjuntos mais complexos, você pode até aninhar modelos dentro de modelos.

Espaço de Trabalho

Workspace contém todos os objetos que compõem o mundo 3D de um lugar. Você pode adicionar objetos ao espaço de trabalho para personalizar seu mundo 3D, como partes base, partes de malha e modelos. Clientes renderizam tudo que aparece neste contêiner e nada fora dele, então você pode controlar o que os usuários veem e interagem no seu lugar. Embora não sejam realmente renderizados, você também pode adicionar scripts que são parentados às partes e modelos com os quais estão associados. Por padrão, o espaço de trabalho é pré-populado com um objeto Terrain e Camera.

Câmera

Camera determina como o cliente vê o mundo 3D. Por padrão, há uma câmera no espaço de trabalho, mas você pode adicionar múltiplos objetos de câmera para criar diferentes perspectivas e visões. Cada cliente pega essas configurações e cria sua própria visão da câmera que o servidor não pode modificar diretamente.

Por exemplo, você pode configurar uma câmera para seguir os movimentos do usuário ou permanecer fixada em um local específico. Você também pode ajustar o campo de visão, distância e ângulo para criar diferentes efeitos visuais de como os usuários veem seu mundo 3D.

Para mais informações, veja personalizar a câmera.

Terreno

Terrain permite que você crie paisagens para seu lugar. Você pode aplicar um material ao terreno para simular ambientes naturais desejados, como grama, água, areia ou um material personalizado. Embora você só possa ter um objeto de terreno para seu mundo 3D e aplicar um material a esse terreno, você pode usar o Editor de Terreno para editar regiões do seu terreno.

Para mais informações, veja terreno ambiental.

Ambiente

Iluminação personalizada pode tornar seu mundo 3D muito mais imersivo e realista. O serviço Lighting contém objetos que controlam as configurações de iluminação global do seu lugar, como Atmosphere para simular efeitos atmosféricos ou Sky para alterar o sol, a lua e as estrelas em seus ambientes. Além disso, você pode usar fontes de luz para emitir luz de objetos específicos.

Adicionar áudio aos seus jogos também é crucial para elevar seus jogos a novos patamares. Ao usar estrategicamente áudio posicional e não posicional, você pode imergir os jogadores em seus mundos, fornecer feedback útil para suas ações e direcionar sua atenção para o que precisam fazer para ter sucesso em seus objetivos.

Replicação

Replicação é o processo em que o servidor sincroniza o estado do seu lugar com todos os clientes conectados. O Engine Roblox replica inteligentemente e automaticamente dados, física e mensagens de chat entre o servidor e o cliente para muitos casos, mas você também pode especificar certos objetos para replicar colocando-os em contêineres específicos.

ReplicatedFirst

ReplicatedFirst contém objetos que você deseja replicar para um cliente quando ele entra no seu lugar. Geralmente contém objetos que são essenciais para inicializar um jogador, como objetos LocalScript do lado do cliente e os objetos associados aos scripts. Todo o conteúdo neste contêiner é replicado do servidor para o cliente apenas uma vez.

ReplicatedStorage

ReplicatedStorage contém objetos que estão disponíveis tanto para o servidor quanto para os clientes conectados. Quaisquer mudanças que ocorram no cliente persistem, mas não serão replicadas para o servidor. O servidor pode sobrescrever alterações no cliente para manter a consistência. Este contêiner é geralmente usado para objetos ModuleScript que precisam ser compartilhados e acessados tanto por objetos Script (lado do servidor) quanto por objetos LocalScript (lado do cliente). Além disso, você pode usar este contêiner para replicar quaisquer objetos que não precisam existir no mundo 3D até serem necessários, como um ParticleEmitter para clonagem e parentização a todos os modelos de personagem que entram.

Para mais informações sobre como a replicação funciona, veja execução cliente-servidor.

Servidor

O modelo de dados define contêineres dedicados para objetos apenas do lado do servidor que nunca são replicados para o cliente. Isso permite que o servidor afete o comportamento e o estado do cliente sem expor os objetos e lógica do servidor ao cliente.

ServerScriptService

ServerScriptService contém objetos Script, objetos ModuleScript que são necessários por scripts do servidor, e outros objetos relacionados a scripts que são destinados apenas ao uso do servidor. Se seus scripts precisarem de outros objetos que não são de scripting, você deve colocá-los em ServerStorage. Scripts neste contêiner nunca são replicados para os clientes, o que permite que você tenha lógica segura do lado do servidor.

ServerStorage

ServerStorage contém objetos que são destinados apenas para uso do servidor. Você pode usar este contêiner para armazenar objetos que deseja clonar e parentizar ao espaço de trabalho ou a outros contêineres em tempo de execução. Por exemplo, você pode armazenar objetos grandes, como mapas, neste contêiner até serem necessários e movê-los para o espaço de trabalho apenas quando necessário. Isso permite que você diminua o tráfego de rede do cliente na entrada inicial.

Cliente

Os serviços de contêiner do cliente são destinados a objetos que são replicados para cada cliente conectado. Esta categoria de contêineres se replica para cada cliente conectado e geralmente contém objetos 3D e objetos LocalScript associados. Todos os objetos que você armazena nesses contêineres não são persistentes entre sessões e são redefinidos toda vez que um cliente se reconecta. Você pode colocar objetos nesses contêineres, como GUIs de jogadores, scripts do lado do cliente e outros objetos que são apenas relevantes para o cliente.

Quando um cliente se conecta a um servidor, o serviço de contêiner Players escuta por usuários entrando no seu lugar e cria um objeto Player para cada cliente. O servidor copia os objetos dos contêineres do cliente no modelo de dados de edição para o local correspondente no modelo de dados em tempo de execução dentro do objeto Players. A tabela a seguir descreve o contêiner original em que reside no contêiner e o contêiner resultante para o qual são copiados no cliente:

Modelo de dados de ediçãoModelo de dados em tempo de execuçãoNotas
StarterPackPlayer.BackpackScripts que configuram o inventário do jogador e geralmente contêm objetos Tool, mas frequentemente contém scripts locais também.
StarterGuiPlayer.PlayerGuiScripts que podem gerenciar o GUI local do jogador. Quando um jogador renasce, o conteúdo de PlayerGui é esvaziado. O servidor copia os objetos dentro de StarterGui para o PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsScripts de propósito geral para o cliente. Por exemplo, se você quiser criar efeitos especiais no cliente quando certas condições forem atendidas, pode colocar um script local neste contêiner para isso. O servidor não pode acessar este contêiner.
StarterCharacterScriptsPlayer.CharacterScripts que são copiados para o cliente quando eles surgem. Esses scripts não persistem quando o jogador renasce.
ReplicatedFirstO conteúdo deste contêiner é replicado para todos os clientes (mas não de volta para o servidor) primeiro, antes de qualquer outra coisa.

Chat

TextChatService

TextChatService representa o serviço que lida com várias tarefas de chat de texto no jogo, como gerenciar canais, decorar mensagens, filtrar texto, criar comandos e desenvolver interfaces de chat personalizadas.

Para mais informações, veja visão geral do chat de texto.

VoiceChatService

VoiceChatService representa o recurso de chat de voz baseado em proximidade que simula comunicação realista com base em quão perto você está de outros usuários. Você pode usar este serviço para ativar e desativar o recurso.

Para mais informações, veja chat de voz.

Pastas e modelos

Existem dois métodos principais para agrupar objetos no modelo de dados: pastas e modelos. Ambos são contêineres para objetos, mas têm propósitos diferentes.

  • Pastas são melhores para armazenar seções de um ambiente, como o saguão ou uma arena de combate.
  • Modelos são usados para conjuntos de objetos, como um conjunto de mesa que inclui uma cadeira, mesa e uma lâmpada. Para organizar conjuntos mais complexos, aninhe modelos dentro de modelos.

Você deve sempre nomear seus objetos de forma descritiva. Isso facilita encontrar e modificar objetos mais tarde, se necessário.

A janela do Explorer com uma demonstração de uma estrutura de organização de pastas.
Objetos organizados em Pastas
A janela do Explorer com uma demonstração de uma estrutura de organização de modelos em vários serviços.
Diversos modelos de "mapa" para alternar entre Workspace e ServerStorage
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.