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 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 contém quatro contêineres importantes que você pode usar para personalizar a experiência do 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 no escopo do domínio dentro do jogo atual. Para mais informações sobre como a identificação de usuários funciona, incluindo IDs de usuários no escopo do domínio e o tipo User, veja Usuários e IDs de usuários no escopo do domínio.

Ciclo de Vida

O serviço Players contém todas as instâncias de Player em um jogo. Scripts do 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. Os 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 entrou; você pode usar este objeto para diversos propósitos, como carregar dados do usuário de um armazenamento 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 armazenamento de dados sob seu ID de usuário:

Script em 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 chave do armazenamento de dados
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Realizar outras ações 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 de 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 mudar 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 ponto, o evento Players.PlayerRemoving é acionado e passa o objeto Player do usuário que se desconectou. Você pode usar isso para diversos 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 armazenamento de dados sob seu ID de usuário:

Script em 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 armazenamento de dados
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

Contêineres

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

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

Os objetos Tool no 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 o StarterGear do jogador são clonados para Backpack quando o Character de um jogador aparece. Quando o personagem morre, o cliente destrói o Backpack e o substitui por um novo.

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

Banir usuários

Para garantir civilidade e jogo justo em seus jogos, você pode banir usuários que violam regras ou diretrizes da comunidade. Você pode modificar a duração das proibições, mensagens de proibição e até mesmo estender proibições para contas alternativas potenciais. Ao usar este recurso, você deve seguir as diretrizes e mensagens de proibição.

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

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 de se reconectar por 24 horas. Esta opção adiciona fricção contra a evasão de proibição; jogadores banidos não podem se reconectar imediatamente ao jogo a partir 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 uma proibição 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 se reconecte ao jogo.

Diretrizes de proibição

Ao implementar proibições em seu jogo, siga as seguintes diretrizes:

  • As regras do jogo não devem contradizer os Padrões da Comunidade e os Termos de Uso do Roblox. Por exemplo, você não pode criar uma regra de jogo que exclua alguém por causa de seu gênero, pois isso viola a política de Discriminação, Insultos e Discurso de Ódio do Roblox.
  • Os criadores devem declarar claramente suas regras de jogo em algum lugar acessível a todos os usuários.
  • Os criadores devem aplicar suas regras de jogo de forma justa e não direcionar arbitrariamente certos usuários.
  • Os usuários podem apelar diretamente aos criadores se acreditarem que sua proibição foi incorreta. O Roblox não mediará esses apelos, a menos que o usuário acredite que as regras de jogo do criador ou a aplicação de suas regras violem os Padrões da Comunidade.
  • O Roblox pode moderar um jogo se houver motivos para acreditar que as regras de jogo 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 da proibição e o motivo. Na mensagem filtrada por texto, você pode incluir informações adicionais, como apelação ou informações de contato, desde que atenda aos Padrões da Comunidade do Roblox.

Por exemplo, em suas mensagens de proibição, você pode fazer referência a marcas e plataformas:

  • "Visite o Discord no meu grupo/página do jogo"
  • "Me mande uma mensagem 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.