Serviços

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

Em Reutilizar código, você pode ter notado o uso frequente do método game:GetService(). Os serviços do Roblox permitem acessar os recursos integrados do motor, como vender itens do jogo, habilitar chat, tocar sons, animar objetos e gerenciar instâncias.

Na verdade, os serviços são o primeiro passo no padrão fundamental e comum de desenvolvimento do Roblox:

  1. Obter serviços.
  2. Requerer scripts de módulo.
  3. Adicionar funções locais.
  4. Adicionar os eventos que disparam essas funções.

Por exemplo, você pode querer salvar as posições dos jogadores no mundo quando eles saem do seu jogo:


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Função local que chama uma função reutilizável no script de módulo.
local function saveProgress(character)
-- Obter a posição do personagem do jogador.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Usar a função saveData no script de módulo, que grava no
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Outra função local que chama saveProgress() quando um personagem é removido
-- do jogo (neste caso, quando o jogador sai).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Chama onPlayerAdded quando um jogador se conecta ao jogo pela primeira vez.
Players.PlayerAdded:Connect(onPlayerAdded)

Alguns detalhes importantes incluem:

  • Como você deve recuperar um serviço apenas uma vez por script, a convenção é dar à variável o mesmo nome que o serviço. Essa convenção se aplica também aos scripts de módulo.
  • Você recupera serviços com a variável global game, uma referência à raiz do modelo de dados.
  • O Roblox não garante uma ordem de carregamento (e streaming de instâncias complica ainda mais o que está e o que não está carregado em um determinado momento), então o uso de Instance:WaitForChild() é uma medida de segurança importante.

Em vez de comparar bibliotecas padrão, funções e variáveis globais, ou bibliotecas de terceiros, uma grande parte do desenvolvimento no Roblox é identificar quais dos muitos serviços disponíveis podem ajudá-lo a adicionar a funcionalidade desejada aos seus jogos. No exemplo acima, em vez de usar uma biblioteca de I/O padrão para gravar no disco, você usa serviços em nuvem para armazenar dados.

Serviços de contêiner

Os serviços de contêiner podem conter e influenciar outros objetos. Esses serviços de contêiner residem na raiz do modelo de dados e são visíveis na janela Explorer do Studio. Coletivamente, esses serviços de contêiner formam uma hierarquia estruturada para o modelo de dados, para que o Roblox Engine possa interpretar e renderizar seu lugar adequadamente. A tabela a seguir inclui alguns serviços de contêiner comuns.

ServiçoDescrição
WorkspaceContém todos os objetos que são renderizados no mundo 3D, como partes e terrenos.
LightingContém objetos para definir efeitos de iluminação universal, como Atmosphere e Sky.
ReplicatedStorage e ReplicatedFirstContêm conteúdo e lógica que se replicam entre o servidor e o cliente.

Para examinar mais a fundo o modelo de dados, você pode usar esses métodos:

  • game:FindService() busca a instância do serviço especificado.
  • game:GetChildren() retorna um array de todos os filhos raiz do modelo de dados, que são os serviços de contêiner de nível superior.
  • game:GetDescendants() retorna um array de todos os descendentes do modelo de dados, incluindo todos os serviços de contêiner e seus filhos.

Para mais informações sobre serviços de contêiner, consulte a documentação do modelo de dados.

Serviços de script

Os serviços de script fornecem funcionalidade padrão no Roblox Engine que você chama dentro de scripts. A tabela a seguir inclui alguns serviços de script comuns.

ServiçoDescrição
TweenServiceUsado para interpolar propriedades numéricas de outras instâncias de um valor inicial a um valor final, com opções para direção e estilo de suavização, repetição e atraso.
MarketplaceServiceO serviço responsável por transações no jogo, como solicitar ao jogador que compre um produto do desenvolvedor, assinatura, passe, Roblox Premium, etc.
RunServiceContém métodos e eventos para gerenciamento de tempo quadro a quadro, bem como para verificar o contexto (servidor, cliente, modo Studio) em que o jogo está sendo executado. Útil para executar qualquer processo ou atualização em cada quadro de execução.
SoundServiceControla vários aspectos globais de como o áudio toca em um jogo, como a escala doppler e áudio volumétrico. Também pode conter grupos de som para controlar as propriedades de volume e efeitos dinâmicos de múltiplos sinais de áudio ao mesmo tempo.
CollectionServiceGerencia grupos (coleções) de instâncias com tags que se replicam do servidor para o cliente, permitindo que você atribua e trabalhe mais facilmente com grupos de instâncias relacionadas.

Serviços em nuvem

O Roblox também possui serviços em nuvem especiais para lidar com tarefas e processos que ocorrem na nuvem do Roblox. A tabela a seguir inclui alguns serviços em nuvem comuns.

ServiçoDescrição
DataStoreServicePara armazenar dados persistentes entre sessões.
MemoryStoreServicePara armazenar dados frequentes e efêmeros que mudam rapidamente.
MessagingServicePara comunicar entre vários servidores durante sessões ao vivo.

Os serviços em nuvem também têm APIs web correspondentes; elas são acessíveis a partir de scripts ou ferramentas externas. Para mais informações, consulte Open Cloud.

©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.