Aprender
Clase de motor
Players
No creable
Servicio

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


Resumen
Métodos
BanAsync(config: Dictionary):()
Chat(message: string):()
getPlayers():{Player}
Obsoleto
playerFromCharacter(character: Model):Player
Obsoleto
players():{Player}
Obsoleto
TeamChat(message: string):()
Miembros heredados

Referencia API
Propiedades
BanningEnabled
No programable
Leer paralelo
Capacidades: Players
Players.BanningEnabled:boolean

BubbleChat
Solo lectura
No replicado
Leer paralelo
Capacidades: Chat, Players
Players.BubbleChat:boolean

CharacterAutoLoads
No replicado
Leer paralelo
Capacidades: Players
Players.CharacterAutoLoads:boolean
Muestras de código
Temporizador de Reaparición del Jugador
local Players = game:GetService("Players")
-- Establecer CharacterAutoLoads en falso
Players.CharacterAutoLoads = false
-- Eliminar el personaje del jugador del espacio de trabajo al morir
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Reaparición de todos los jugadores muertos cada 10 segundos
while true do
local players = Players:GetChildren()
-- Verificar si cada jugador está muerto comprobando si no tiene personaje; si está muerto, cargar el personaje de ese jugador
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacterAsync()
end
end
-- Espera 10 segundos hasta la siguiente comprobación de reaparición
task.wait(10)
end

ClassicChat
Solo lectura
No replicado
Leer paralelo
Capacidades: Chat, Players
Players.ClassicChat:boolean

LocalPlayer
Solo lectura
No replicado
Leer paralelo
Capacidades: Players
Players.LocalPlayer:Player

localPlayer
Obsoleto

MaxPlayers
Solo lectura
No replicado
Leer paralelo
Capacidades: Players
Players.MaxPlayers:number

NumPlayers
Obsoleto

numPlayers
Obsoleto

PreferredPlayers
Solo lectura
No replicado
Leer paralelo
Capacidades: Players
Players.PreferredPlayers:number

RespawnTime
Leer paralelo
Capacidades: Players
Players.RespawnTime:number

UseStrafingAnimations
No programable
Leer paralelo
Capacidades: Players
Players.UseStrafingAnimations:boolean

Métodos
BanAsync
Proporciona
Capacidades: Players, Consequences
Players:BanAsync(config:Dictionary):()
Parámetros
config:Dictionary
Devuelve
()
Muestras de código
Baneando Usuarios
local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = 86400 -- 24 horas en segundos. Recomendación: usa tu propia lógica basada en el BanHistory del usuario
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "Has violado la directriz de la comunidad #5",
PrivateReason = "Pon cualquier cosa aquí que el usuario no deba saber pero que sea útil para tus registros",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end

Chat
Seguridad del plugin
Capacidades: Players
Players:Chat(message:string):()
Parámetros
message:string
Devuelve
()
Muestras de código
Jugadores:Chat
-- Barra de comandos
game:GetService("Players"):Chat("¡Hola, mundo!") --Resulta en '¡Hola, mundo!' apareciendo en el registro de chat bajo el nombre de tu Jugador.
-- Script
local Players = game:GetService("Players")
Players:Chat("¡Hola, mundo!") --Errores

CreateHumanoidModelFromDescription
Obsoleto

CreateHumanoidModelFromDescriptionAsync
Proporciona
Capacidades: AvatarAppearance, Players
Players:CreateHumanoidModelFromDescriptionAsync(
description:HumanoidDescription, rigType:Enum.HumanoidRigType, assetTypeVerification:Enum.AssetTypeVerification
Parámetros
assetTypeVerification:Enum.AssetTypeVerification
Valor predeterminado: "Default"
Devuelve
Muestras de código
Crear Modelo Humanoide Desde Descripción
game.Players:CreateHumanoidModelFromDescriptionAsync(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.Workspace

CreateHumanoidModelFromUserId
Obsoleto

CreateHumanoidModelFromUserIdAsync
Proporciona
Capacidades: Players
Players:CreateHumanoidModelFromUserIdAsync(userId:User):Model
Parámetros
userId:User
Devuelve
Muestras de código
Crear un modelo Humanoide a partir de un ID de usuario
game.Players:CreateHumanoidModelFromUserIdAsync(1).Parent = game.Workspace

GetBanHistoryAsync
Proporciona
Capacidades: Players, Consequences
Players:GetBanHistoryAsync(userId:User):BanHistoryPages
Parámetros
userId:User

GetCharacterAppearanceAsync
Obsoleto

GetCharacterAppearanceInfoAsync
Proporciona
Capacidades: Players
Players:GetCharacterAppearanceInfoAsync(userId:User):Dictionary
Parámetros
userId:User
Devuelve
Muestras de código
Ejemplo de Diccionario de Apariencia de Personaje Devuelto
local result = {
playerAvatarType = "R15",
defaultPantsApplied = false,
defaultShirtApplied = false,
scales = {
bodyType = 0,
head = 1,
height = 1.05,
proportion = 0,
depth = 0.92,
width = 0.85,
},
bodyColors = {
leftArmColorId = 1030,
torsoColorId = 1001,
rightArmColorId = 1030,
headColorId = 1030,
leftLegColorId = 1001,
rightLegColorId = 1001,
},
assets = {
{
id = 1031492,
assetType = {
name = "Sombrero",
id = 8,
},
name = "Sombrero Rayado",
},
{
id = 13062491,
assetType = {
name = "Accesorio Facial",
id = 42,
},
name = "Visión Francesa ",
},
{
id = 16598440,
assetType = {
name = "Accesorio de Cuello",
id = 43,
},
name = "Pajarita Roja",
},
{
id = 28999228,
assetType = {
name = "Cara",
id = 18,
},
name = "Sorpresa Alegra",
},
{
id = 86896488,
assetType = {
name = "Camisa",
id = 11,
},
name = "Jacket de Tuxedo Rojo Caro",
},
{
id = 86896502,
assetType = {
name = "Pantalones",
id = 12,
},
name = "Pantalones de Tuxedo Rojo Caro",
},
{
id = 376530220,
assetType = {
name = "Brazo Izquierdo",
id = 29,
},
name = "Brazo Izquierdo de ROBLOX Boy",
},
{
id = 376531012,
assetType = {
name = "Brazo Derecho",
id = 28,
},
name = "Brazo Derecho de ROBLOX Boy",
},
{
id = 376531300,
assetType = {
name = "Pierna Izquierda",
id = 30,
},
name = "Pierna Izquierda de ROBLOX Boy",
},
{
id = 376531703,
assetType = {
name = "Pierna Derecha",
id = 31,
},
name = "Pierna Derecha de ROBLOX Boy",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "Torso de ROBLOX Boy",
},
},
}
print(result)

GetFriendsAsync
Proporciona
Capacidades: Players, Social
Players:GetFriendsAsync(userId:User):FriendPages
Parámetros
userId:User
Devuelve
Muestras de código
Imprimir amigos de Roblox
local Players = game:GetService("Players")
local USERNAME = "Cozecant"
local function iterPageItems(pages)
return coroutine.wrap(function()
local pagenum = 1
while true do
for _, item in ipairs(pages:GetCurrentPage()) do
coroutine.yield(item, pagenum)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
pagenum = pagenum + 1
end
end)
end
-- Primero, obtiene el ID de usuario del jugador
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Luego, obtiene un objeto FriendPages para sus amigos
local friendPages = Players:GetFriendsAsync(userId)
-- Itera sobre los elementos en las páginas. Para FriendPages, estos
-- son tablas de información sobre el amigo, incluyendo el nombre de usuario.
-- Recoge cada nombre de usuario en una tabla
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Conexiones de " .. USERNAME .. ": " .. table.concat(usernames, ", "))

GetHumanoidDescriptionFromOutfitId
Obsoleto

GetHumanoidDescriptionFromOutfitIdAsync
Proporciona
Capacidades: AvatarAppearance, Players
Players:GetHumanoidDescriptionFromOutfitIdAsync(outfitId:number):HumanoidDescription
Parámetros
outfitId:number
Muestras de código
Obtener HumanoidDescription desde el ID de Atuendo
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function getOutfitId(bundleId)
if bundleId <= 0 then
return
end
local info = game.AssetService:GetBundleDetailsAsync(bundleId)
if not info then
return
end
for _, item in pairs(info.Items) do
if item.Type == "UserOutfit" then
return item.Id
end
end
return nil
end
local function getHumanoidDescriptionBundle(bundleId)
local itemId = getOutfitId(bundleId)
if itemId and itemId > 0 then
return Players:GetHumanoidDescriptionFromOutfitIdAsync(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescriptionAsync(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace

GetHumanoidDescriptionFromUserId
Obsoleto

GetHumanoidDescriptionFromUserIdAsync
Proporciona
Capacidades: AvatarAppearance, Players
Players:GetHumanoidDescriptionFromUserIdAsync(userId:User):HumanoidDescription
Parámetros
userId:User
Muestras de código
Obtener HumanoidDescription desde el ID de Usuario
game.Players:CreateHumanoidModelFromDescriptionAsync(
game.Players:GetHumanoidDescriptionFromUserIdAsync(1),
Enum.HumanoidRigType.R15
).Parent =
game.Workspace

GetNameFromUserIdAsync
Proporciona
Capacidades: Players
Players:GetNameFromUserIdAsync(userId:User):string
Parámetros
userId:User
Devuelve
Muestras de código
Obtener nombre de UserId
local Players = game:GetService("Players")
-- Datos de ejemplo:
-- UserId: 118271 Nombre: "RobloxRulez"
-- UserId: 131963979 Nombre: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- imprime: "RobloxRulez docsRule"
Obtener nombre del UserId usando una caché
local Players = game:GetService("Players")
-- Crea una tabla llamada 'cache' para almacenar cada 'Name' a medida que se encuentra.
-- Si buscamos un 'Name' usando el mismo 'UserId', el 'Name' vendrá
-- de la caché (rápido) en lugar de GetNameFromUserIdAsync() (yield).
local cache = {}
function getNameFromUserId(userId)
-- Primero, verifica si la caché contiene 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- si se almacenó un valor en la caché con la clave 'userId', entonces este 'nameFromCache'
-- es el nombre correcto y podemos devolverlo.
return nameFromCache
end
-- Si llegamos aquí, 'userId' no fue buscado previamente y no existe en la
-- caché. Ahora necesitamos usar GetNameFromUserIdAsync() para buscar el nombre
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- si 'success' es verdadero, GetNameFromUserIdAsync() encontró con éxito el
-- nombre. Almacena este nombre en la caché usando 'userId' como clave para que
-- nunca tengamos que buscar este nombre en el futuro. Luego devuelve el nombre.
cache[userId] = name
return name
end
-- Si llegamos aquí, 'success' fue falso, lo que significa que GetNameFromUserIdAsync()
-- no pudo encontrar el 'name' para el 'userId' proporcionado. Advierte al usuario
-- que esto ocurrió y luego devuelve nada, o nil.
warn("No se pudo encontrar el Name para el UserId:", userId)
return nil
end
-- Datos de Ejemplo:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- La primera vez que se usa un UserId, se llamará a GetNameFromUserIdAsync()
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Debido a que se usó 118271 anteriormente, obtiene su Name de la caché
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- imprime: "RobloxRulez docsRule RobloxRulez"

GetPlayerByUserId
Escribir paralelo
Capacidades: Players
Players:GetPlayerByUserId(userId:User):Player
Parámetros
userId:User
Devuelve
Muestras de código
ObtenerJugadorPorIdDeUsuario
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("¡El jugador con el userId 1 está en este servidor! Su nombre es: " .. player.Name)
else
print("¡El jugador con el userId 1 no está en este servidor!")
end

GetPlayerFromCharacter
Capacidades: Players
Acceso a la simulación
Players:GetPlayerFromCharacter(character:Model):Player
Parámetros
character:Model
Devuelve
Muestras de código
Jugadores:GetPlayerFromCharacter
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local PLAYER_NAME = "Nightriff"
local character = Workspace:FindFirstChild(PLAYER_NAME)
local player = Players:GetPlayerFromCharacter(character)
if player then
print(`El jugador {player.Name} ({player.UserId}) está en el juego`)
else
print(`¡El jugador {PLAYER_NAME} no está en el juego!`)
end

GetPlayers
Escribir paralelo
Capacidades: Players
Players:GetPlayers():{Player}
Devuelve
Muestras de código
Dar Chispas a Todos
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Dales chispas en su cabeza si aún no las tienen
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Verifica si ya han aparecido
if player.Character then
onCharacterAdded(player.Character)
end
-- Escuchar para que el jugador (re)aparezca
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

getPlayers
Obsoleto

GetUserIdFromNameAsync
Proporciona
Capacidades: Players
Players:GetUserIdFromNameAsync(userName:string):number
Parámetros
userName:string
Devuelve
Muestras de código
Obtener UserId desde el Nombre
local Players = game:GetService("Players")
-- Datos de Ejemplo:
-- UserId: 118271 Nombre: "RobloxRulez"
-- UserId: 131963979 Nombre: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- imprime: "118271 131963979"
Obtener UserId del Nombre utilizando un caché
local Players = game:GetService("Players")
-- Crea una tabla llamada 'caché' para almacenar cada 'UserId' a medida que se encuentran.
-- Si buscamos un 'UserId' usando el mismo 'Nombre', el 'UserId' vendrá
-- del caché (rápido) en lugar de GetUserIdFromNameAsync() (produce).
local cache = {}
function getUserIdFromName(name)
-- Primero, verifica si el caché contiene 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- si un valor fue almacenado en el caché con la clave 'name', entonces este 'userIdFromCache'
-- es el UserId correcto y podemos devolverlo.
return userIdFromCache
end
-- Si estamos aquí, 'name' no fue buscado previamente y no existe en el
-- caché. Ahora necesitamos usar GetUserIdFromNameAsync() para buscar el userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- si 'success' es verdadero, GetUserIdFromNameAsync() encontró exitosamente el
-- userId. Almacena este userId en el caché usando 'name' como clave para que
-- nunca tengamos que buscar este userId en el futuro. Luego devuelve userId.
cache[name] = userId
return userId
end
-- Si estamos aquí, 'success' fue falso, lo que significa que GetUserIdFromNameAsync()
-- no pudo encontrar el 'userId' para el 'name' proporcionado. Podemos advertir al
-- usuario que esto ocurrió y luego no devolver nada, o nil.
warn("No se pudo encontrar UserId para Nombre:", name)
return nil
end
-- Datos de Ejemplo:
-- UserId: 118271 Nombre: "RobloxRulez"
-- UserId: 131963979 Nombre: "docsRule"
-- La primera vez que se usa un Nombre, GetUserIdFromNameAsync() será llamado
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Como "RobloxRulez" fue usado previamente, obtiene su UserId del caché
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- imprime: "118271 131963979 118271"

GetUserThumbnailAsync
Proporciona
Capacidades: Players
Players:GetUserThumbnailAsync(
userId:User, thumbnailType:Enum.ThumbnailType, thumbnailSize:Enum.ThumbnailSize
Parámetros
userId:User
thumbnailType:Enum.ThumbnailType
thumbnailSize:Enum.ThumbnailSize
Devuelve
Muestras de código
Mostrar miniatura del jugador
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- reemplazar con imagen de marcador de posición
-- obtener la miniatura
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- establecer el contenido de ImageLabel como la miniatura del usuario
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)

playerFromCharacter
Obsoleto

players
Obsoleto

SetChatStyle
Seguridad del plugin
Capacidades: Players
Players:SetChatStyle(style:Enum.ChatStyle):()
Parámetros
Valor predeterminado: "Classic"
Devuelve
()
Muestras de código
Configurando el Estilo de Chat de un Jugador
-- Barra de comandos
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Establece el estilo de chat a Clásico
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errores

TeamChat
Seguridad del plugin
Capacidades: Players
Players:TeamChat(message:string):()
Parámetros
message:string
Devuelve
()
Muestras de código
Chat del equipo de envío
-- Barra de comandos
game.Players:TeamChat("¡Hola Mundo!") -- Envía un mensaje "¡Hola Mundo!" a todos los jugadores en el equipo del jugador local
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("¡Hola Mundo!") -- Error

UnbanAsync
Proporciona
Capacidades: Players, Consequences
Players:UnbanAsync(config:Dictionary):()
Parámetros
config:Dictionary
Devuelve
()
Muestras de código
Desbaneando Usuarios
local Players = game:GetService("Players")
if shouldBeUnbanned(player) then
local config: UnbanConfigType = {
UserIds = { player.UserId, 789 },
ApplyToUniverse = false,
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
end

Eventos
PlayerAdded
Capacidades: Players
Players.PlayerAdded(player:Player):RBXScriptSignal
Parámetros
player:Player
Muestras de código
Jugadores.JugadorAgregado
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Un jugador ha entrado: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlayerMembershipChanged
Capacidades: Players
Players.PlayerMembershipChanged(player:Player):RBXScriptSignal
Parámetros
player:Player
Muestras de código
Cambios en la Membresía Premium
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- ¡Otorga al jugador acceso a áreas, artículos o cualquier cosa que puedas imaginar solo para Premium!
print("Dando", player, "beneficios premium!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Se recibió el evento PlayerMembershipChanged. Nueva membresía = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)

PlayerRemoving
Capacidades: Players
Players.PlayerRemoving(
Parámetros
player:Player
Muestras de código
Jugadores.JugadorSaliendo
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("Un jugador ha salido: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)

UserSubscriptionStatusChanged
Capacidades: Players, Monetization
Players.UserSubscriptionStatusChanged(
user:Player, subscriptionId:string
Parámetros
user:Player
subscriptionId:string

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.