Cuando un usuario de Roblox se une a un juego, se le representa como un Player en el DataModel. Este objeto Player contiene información sobre el usuario que es universal en todos los juegos, como su nombre de usuario, lista de amigos y personaje avatar guardado, así como propiedades, métodos y eventos que afectan el ciclo de vida del usuario entre unirse y abandonar el juego. Cada objeto Player también tiene como padre cuatro importantes contenedores que puedes usar para personalizar la experiencia del usuario: Backpack, StarterGear, PlayerGui y PlayerScripts.
Cada Player también expone una propiedad Player.User, que es un valor de User que representa la identidad del jugador dentro del dominio del juego actual. Para más información sobre cómo funciona la identificación de usuarios, incluidos los IDs de usuario de dominio y el tipo User, consulta Usuarios e IDs de usuario de dominio.

Ciclo de vida
El servicio Players contiene todas las instancias de Player en un juego. Los scripts del cliente y del servidor pueden conectarse a los eventos Players.PlayerAdded y Players.PlayerRemoved para realizar acciones en respuesta al ciclo de vida de un objeto Player. Los scripts también pueden conectarse a los eventos Player.CharacterAdded y Player.CharacterRemoving para realizar acciones relacionadas con el juego cuando el personaje aparece o desaparece.
Unirse como usuario
Cuando un cliente de usuario se conecta a un juego, se activa el evento Players.PlayerAdded y se pasa el objeto Player del usuario que se une; puedes usar este objeto para numerosos propósitos, como cargar datos del usuario desde una base de datos o asignar al jugador a un equipo.
Por ejemplo, para cargar los datos de un usuario cuando se une a un juego, usa el evento PlayerAdded en un Script para recuperar los datos del usuario almacenados en una base de datos bajo su ID de usuario:
Script en 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
-- Leer la clave de la base de datos
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Realizar más acciones con currentData
end)
Aparición del personaje
Por defecto, el modelo Player.Character de un usuario representa su avatar de plataforma y Players.CharacterAutoLoads es true, lo que significa que el modelo del personaje aparece automáticamente cuando el usuario se une a un juego.
Cuando se genera el Player.Character de un usuario, los Scripts y LocalScripts en StarterCharacterScripts se clonarán en el modelo del personaje y se activa el evento Player.CharacterAdded. Este evento pasa el nuevo modelo de personaje a sus oyentes, que puedes usar para encontrar el objeto Humanoid del personaje y modificar su comportamiento. Por ejemplo, puedes usar Humanoid:ApplyDescription() para cambiar el atuendo del avatar.
Desaparición del personaje
Cuando el Humanoid del jugador muere, el servidor elimina automáticamente el modelo del personaje después del tiempo especificado por Players.RespawnTime. Luego puedes usar el evento Player.CharacterRemoving para restablecer otros objetos o actualizar datos asociados con el personaje.
Salida del usuario
Cuando un cliente de usuario se desconecta de un juego, el servidor destruye su objeto Player asociado dentro del servicio Players. En este momento, se activa el evento Players.PlayerRemoving y se pasa el objeto Player del usuario que se desconectó. Puedes usar esto para numerosos propósitos como guardar datos del usuario, eliminar estadísticas del jugador de un marcador, o destruir modelos creados por el jugador en el juego.
El siguiente ejemplo de Script escucha el evento PlayerRemoving e intenta guardar los datos del usuario en una base de datos bajo su ID de usuario:
Script en 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
-- Obtener el estado de datos del jugador en el juego
local currentData = getCurrentData(player)
-- Guardar en la base de datos
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)
Contenedores
Cada objeto Player que representa el cliente de un usuario almacena varios contenedores importantes: Backpack, StarterGear, PlayerGui y PlayerScripts. En tiempo de ejecución del juego, varios contenedores en el modelo de datos de "edición" copian su contenido a estos contenedores Player, incluyendo StarterGui a PlayerGui, StarterPack a Backpack, y StarterPlayerScripts a PlayerScripts.

Los objetos Tool en el Backpack constituyen el inventario del jugador y se muestran como botones de icono en la parte inferior de la pantalla. Consulta herramientas en el juego para más información.
Como se ilustra arriba, el contenido de StarterPack y el StarterGear del jugador se clonan en Backpack cuando el Character de un jugador se genera. Cuando el personaje muere, el cliente destruye el Backpack y lo reemplaza con uno nuevo.
Para desactivar la interfaz gráfica de inventario predeterminada de Roblox y reemplazarla por la tuya, llama a StarterGui:SetCoreGuiEnabled() en un LocalScript como se describe en desactivar UI predeterminada.
Prohibir usuarios
Para garantizar la civilidad y el juego limpio en tus juegos, puedes prohibir a los usuarios que violen las reglas o directrices de la comunidad. Puedes modificar las duraciones de las prohibiciones, los mensajes de prohibición e incluso extender las prohibiciones a posibles cuentas alternativas. Cuando uses esta función, debes seguir las directrices y mensajes de prohibición.
Tienes varias opciones para trabajar con prohibiciones:
- Cada página de juego en el Hub de Creadores tiene un panel de Prohibiciones.
- Para uso programático con la API del motor, consulta Players:BanAsync().
- Para Open Cloud, consulta prohibiciones y bloqueos.
Bloqueo de dispositivos
Además de prohibir una cuenta, Players:BanAsync() admite bloqueo de dispositivos a través del campo ApplyDeviceBlock en su tabla de configuración. Cuando prohíbes a un usuario que actualmente está conectado a tu juego con ApplyDeviceBlock configurado en true, el dispositivo asociado a ese usuario también se bloquea para reingresar durante 24 horas. Esta opción agrega fricción contra la evasión de la prohibición; los jugadores prohibidos no pueden volver a unirse al juego inmediatamente desde una nueva cuenta en el mismo dispositivo.
- El bloqueo de dispositivos actualmente solo se aplica a los jugadores en desktop (Windows y macOS). No se aplica a dispositivos móviles ni a consolas.
- El bloqueo de dispositivos no se propaga como una prohibición a otras cuentas que han utilizado el dispositivo.
- Llamar a la API de desbloqueo para el usuario afectado elimina inmediatamente cualquier bloqueo de dispositivo activo asociado con el dispositivo de ese usuario, permitiéndoles volver a unirse al juego.
Directrices de prohibición
Al implementar prohibiciones en tu juego, sigue las siguientes directrices:
- Las reglas del juego no deben contradecir los Estándares de la Comunidad y los Términos de Uso de Roblox. Por ejemplo, no puedes crear una regla de juego que excluya a alguien debido a su género, ya que esto viola la política de Discriminación, Insultos y Discurso de Odio de Roblox.
- Los creadores deben declarar claramente sus reglas de juego en algún lugar accesible para todos los usuarios.
- Los creadores deben aplicar sus reglas de juego de manera justa y no apuntar arbitrariamente a ciertos usuarios.
- Los usuarios pueden apelar directamente a los creadores si creen que su prohibición fue incorrecta. Roblox no mediará estas apelaciones, a menos que el usuario crea que las reglas del creador o la ejecución de sus reglas violan los Estándares de la Comunidad.
- Roblox puede moderar un juego si hay razones para creer que las reglas del creador o la ejecución de sus reglas violan los Estándares de la Comunidad.
Directrices de mensajes
Cuando un usuario es prohibido, recibe un modal de error que muestra información como la duración y el motivo de la prohibición. En el mensaje filtrado por texto, puedes incluir información adicional como información de apelación o contacto siempre que cumplas con los Estándares de la Comunidad de Roblox.
Por ejemplo, en tus mensajes de prohibición, tienes permitido hacer referencia a marcas y plataformas:
- "Visita el Discord en la página de mi grupo/juego"
- "Mándame un mensaje en Twitter o X"
No se permiten menciones de información personal ni enlaces directos en este campo de mensaje. Esto incluye publicar un nombre de usuario o identificador específico, o proporcionar un enlace directo a un servidor de Discord o cuenta de X.