Usuários e jogadores

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

Quando um usuário do Roblox entra em um jogo, ele é representado como um Player no DataModel. Este objeto Player contém informações sobre o usuário que são universais entre os jogos, como seu nome de usuário, lista de amigos e personagem de avatar salvo, além de propriedades, métodos e eventos que afetam o ciclo de vida do usuário entre entrar e sair do jogo. Cada objeto Player também possui como pais quatro contenedores importantes que você pode usar para personalizar a experiência de um usuário: Backpack, StarterGear, PlayerGui e PlayerScripts.

Cada Player também expõe uma propriedade Player.User, que é um valor User representando a identidade do jogador dentro do escopo do domínio na experiência atual. Para mais informações sobre como a identificação do usuário funciona, incluindo IDs de usuários escopados por domínio e o tipo User, veja Usuários e IDs de usuários escopados por domínio.

Ciclo de Vida

O serviço Players contém todas as instâncias de Player em um jogo. Scripts no lado do cliente e do servidor podem se conectar aos eventos Players.PlayerAdded e Players.PlayerRemoved para realizar ações em resposta ao ciclo de vida de um objeto Player. Scripts também podem se conectar aos eventos Player.CharacterAdded e Player.CharacterRemoving para realizar ações relacionadas ao jogo quando o personagem aparece ou desaparece.

Entrada do usuário

Quando um cliente de usuário se conecta a um jogo, o evento Players.PlayerAdded é acionado e passa o objeto Player do usuário que se juntou; você pode usar este objeto para vários propósitos, como carregar dados do usuário de um banco de dados ou atribuir o jogador a um time.

Por exemplo, para carregar os dados de um usuário quando ele entra em um jogo, use o evento PlayerAdded em um Script para recuperar os dados do usuário armazenados em um banco de dados sob seu ID de usuário:

Script no ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Ler a chave do banco de dados
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Fazer ações adicionais com currentData
end)

Aparição do personagem

Por padrão, o modelo Player.Character de um usuário representa seu avatar de plataforma e Players.CharacterAutoLoads é true, o que significa que o modelo do personagem aparece automaticamente quando o usuário entra em um jogo.

Quando o Player.Character de um usuário aparece, Scripts e LocalScripts em StarterCharacterScripts são clonados para o modelo do personagem e o evento Player.CharacterAdded é acionado. Este evento passa o novo modelo do personagem para seus ouvintes, que você pode usar para encontrar o objeto Humanoid do personagem e modificar seu comportamento. Por exemplo, você pode usar Humanoid:ApplyDescription() para alterar a roupa do avatar.

Desaparecimento do personagem

Quando o Humanoid do jogador morre, o servidor remove automaticamente o modelo do personagem após o tempo especificado por Players.RespawnTime. Você pode então usar o evento Player.CharacterRemoving para redefinir outros objetos ou atualizar dados associados ao personagem.

Saída do usuário

Quando um cliente de usuário se desconecta de um jogo, o servidor destrói seu objeto Player associado dentro do serviço Players. Neste momento, o evento Players.PlayerRemoving é acionado e passa o objeto Player do usuário que se desconectou. Você pode usar isso para vários propósitos, como salvar dados do usuário, remover estatísticas do jogador de um placar ou destruir modelos criados pelo jogador no jogo.

O seguinte exemplo de Script escuta o evento PlayerRemoving e tenta salvar os dados do usuário em um banco de dados sob seu ID de usuário:

Script no ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Obter o estado dos dados do jogador no jogo
local currentData = getCurrentData(player)
-- Salvar no banco de dados
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

Contenedores

Cada objeto Player representando o cliente de um usuário armazena vários contenedores importantes: Backpack, StarterGear, PlayerGui e PlayerScripts. Durante a execução do jogo, vários contenedores no modelo de dados "edição" copiam seu conteúdo para esses contenedores Player, incluindo StarterGui para PlayerGui, StarterPack para Backpack e StarterPlayerScripts para PlayerScripts.

Um diagrama que mapeia objetos entre modelos de dados 'edição' e 'tempo de execução'.

Os objetos Tool na Backpack compõem o inventário do jogador e são exibidos como botões de ícone na parte inferior da tela. Veja ferramentas em jogo para mais informações.

Como ilustrado acima, o conteúdo de StarterPack e os StarterGear do jogador são clonados para Backpack quando o Character de um jogador aparece. Quando o personagem morre, o cliente destrói a Backpack e a substitui por uma nova.

Para desativar a interface do usuário padrão de inventário do Roblox e substituí-la pela sua, chame StarterGui:SetCoreGuiEnabled() em um LocalScript como descrito em desativar UI padrão.

Banir usuários

Para garantir civilidade e jogo justo em suas experiências, você pode banir usuários que violam regras ou diretrizes da comunidade. Você pode modificar as durações de banimento, mensagens de banimento e até mesmo estender os banimentos para contas alternativas potenciais. Ao usar este recurso, você deve seguir as orientações e mensagens de banimento.

Você tem várias opções para trabalhar com banimentos:

Bloqueio de dispositivo

Além de banir uma conta, Players:BanAsync() suporta bloqueio de dispositivo através do campo ApplyDeviceBlock em sua tabela de configuração. Quando você bane um usuário que está atualmente conectado ao seu jogo com ApplyDeviceBlock definido como true, o dispositivo associado a esse usuário também é bloqueado para reentrar por 24 horas. Esta opção acrescenta atrito contra a evasão de banimento; jogadores banidos não podem reentrar imediatamente no jogo de uma nova conta no mesmo dispositivo.

  • O bloqueio de dispositivo atualmente se aplica apenas a jogadores em desktop (Windows e macOS). Não se aplica a dispositivos móveis ou consoles.
  • O bloqueio de dispositivo não se propaga como um banimento para quaisquer outras contas que tenham usado o dispositivo.
  • Chamar a API de desbloqueio no usuário afetado remove imediatamente qualquer bloqueio de dispositivo ativo associado ao dispositivo desse usuário, permitindo que ele reentre no jogo.

Diretrizes de banimento

Ao implementar banimentos em sua experiência, adira às seguintes diretrizes:

  • As regras da experiência não devem contradizer os Padrões da Comunidade e Termos de Uso do Roblox. Por exemplo, você não pode criar uma regra de experiência que exclua alguém por causa de seu gênero, pois isso viola a política de Discriminação, Ofensas e Discurso de Ódio do Roblox.
  • Os criadores devem declarar claramente suas regras de experiência em algum lugar acessível a todos os usuários.
  • Os criadores devem aplicar suas regras de experiência de forma justa e não visar arbitrariamente certos usuários.
  • Os usuários podem apelar diretamente aos criadores se acreditarem que seu banimento foi incorreto. O Roblox não mediará esses apelos, a menos que o usuário acredite que as regras de experiência do criador ou a aplicação de suas regras violem os Padrões da Comunidade.
  • O Roblox pode moderar uma experiência se houver motivo para acreditar que as regras de experiência de um criador ou a aplicação de suas regras violem os Padrões da Comunidade.

Diretrizes de mensagem

Quando um usuário é banido, ele recebe um modal de erro exibindo informações como a duração do banimento e o motivo. Na mensagem filtrada por texto, você pode incluir informações adicionais, como informações de apelação ou contato, desde que atenda aos Padrões da Comunidade do Roblox.

Por exemplo, nas suas mensagens de banimento, você pode referenciar marcas registradas e plataformas:

  • "Visite o Discord em minha página de grupo/experiência"
  • "Mande uma mensagem para mim no Twitter ou X"

Menções a informações pessoais ou links diretos não são permitidos neste campo de mensagem. Isso inclui postar um nome de usuário ou identificador específico, ou fornecer um link direto para um servidor Discord ou conta X.

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