Apprendre
Classe de moteur
Players
Création impossible
Service

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Méthodes
BanAsync(config: Dictionary):()
Chat(message: string):()
getPlayers():{Player}
Déprécié
playerFromCharacter(character: Model):Player
Déprécié
players():{Player}
Déprécié
TeamChat(message: string):()
Membres hérités

Référence API
Propriétés
BanningEnabled
Non scriptable
Lecture parallèle
Capacités : Players
Players.BanningEnabled:boolean

BubbleChat
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Chat, Players
Players.BubbleChat:boolean

CharacterAutoLoads
Non répliqué
Lecture parallèle
Capacités : Players
Players.CharacterAutoLoads:boolean
Échantillons de code
Minuteur de Respawn des Joueurs
local Players = game:GetService("Players")
-- Définir CharacterAutoLoads sur false
Players.CharacterAutoLoads = false
-- Supprimer le personnage du joueur de l'espace de travail à sa mort
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Réanimer tous les joueurs morts toutes les 10 secondes
while true do
local players = Players:GetChildren()
-- Vérifier si chaque joueur est mort en vérifiant s'il n'a pas de personnage, si mort, charger le personnage de ce joueur
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacterAsync()
end
end
-- Attendre 10 secondes jusqu'à la prochaine vérification de réanimation
task.wait(10)
end

ClassicChat
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Chat, Players
Players.ClassicChat:boolean

LocalPlayer
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Players
Players.LocalPlayer:Player

localPlayer
Déprécié

MaxPlayers
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Players
Players.MaxPlayers:number

NumPlayers
Déprécié

numPlayers
Déprécié

PreferredPlayers
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Players
Players.PreferredPlayers:number

RespawnTime
Lecture parallèle
Capacités : Players
Players.RespawnTime:number

UseStrafingAnimations
Non scriptable
Lecture parallèle
Capacités : Players
Players.UseStrafingAnimations:boolean

Méthodes
BanAsync
Rendement
Capacités : Players, Consequences
Players:BanAsync(config:Dictionary):()
Paramètres
config:Dictionary
Retours
()
Échantillons de code
Interdire des utilisateurs
local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = 86400 -- 24 heures en secondes. Recommandation : utilisez votre propre logique basée sur l'historique des bans de l'utilisateur
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "Vous avez violé la directive de la communauté n°5",
PrivateReason = "Mettez tout ici que l'utilisateur ne devrait pas savoir mais qui est utile pour vos dossiers",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end

Chat
Sécurité des plugins
Capacités : Players
Players:Chat(message:string):()
Paramètres
message:string
Retours
()
Échantillons de code
Joueurs:Chat
-- Barre de commandes
game:GetService("Players"):Chat("Bonjour, le monde !") --Résulte en 'Bonjour, le monde !' apparaissant dans le journal de chat sous le nom de votre joueur.
-- Script
local Players = game:GetService("Players")
Players:Chat("Bonjour, le monde !") --Erreur

CreateHumanoidModelFromDescription
Déprécié

CreateHumanoidModelFromDescriptionAsync
Rendement
Capacités : AvatarAppearance, Players
Players:CreateHumanoidModelFromDescriptionAsync(
description:HumanoidDescription, rigType:Enum.HumanoidRigType, assetTypeVerification:Enum.AssetTypeVerification
Paramètres
assetTypeVerification:Enum.AssetTypeVerification
Valeur par défaut : "Default"
Retours
Échantillons de code
Créer un modèle humanoïde à partir de la description
game.Players:CreateHumanoidModelFromDescriptionAsync(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.Workspace

CreateHumanoidModelFromUserId
Déprécié

CreateHumanoidModelFromUserIdAsync
Rendement
Capacités : Players
Players:CreateHumanoidModelFromUserIdAsync(userId:User):Model
Paramètres
userId:User
Retours
Échantillons de code
Créer un modèle Humanoid à partir d'un identifiant d'utilisateur
game.Players:CreateHumanoidModelFromUserIdAsync(1).Parent = game.Workspace

GetBanHistoryAsync
Rendement
Capacités : Players, Consequences
Players:GetBanHistoryAsync(userId:User):BanHistoryPages
Paramètres
userId:User

GetCharacterAppearanceAsync
Déprécié

GetCharacterAppearanceInfoAsync
Rendement
Capacités : Players
Players:GetCharacterAppearanceInfoAsync(userId:User):Dictionary
Paramètres
userId:User
Retours
Échantillons de code
Exemple de dictionnaire d'apparence de personnage retourné
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 = "Chapeau",
id = 8,
},
name = "Chapeau Rayé",
},
{
id = 13062491,
assetType = {
name = "Accessoire de Visage",
id = 42,
},
name = "Vision Française ",
},
{
id = 16598440,
assetType = {
name = "Accessoire de Cou",
id = 43,
},
name = "Nœud Papillon Rouge",
},
{
id = 28999228,
assetType = {
name = "Visage",
id = 18,
},
name = "Surprise Joyeuse",
},
{
id = 86896488,
assetType = {
name = "Chemise",
id = 11,
},
name = "Veste de Tuxedo Rouge Cher",
},
{
id = 86896502,
assetType = {
name = "Pantalon",
id = 12,
},
name = "Pantalon de Tuxedo Rouge Cher",
},
{
id = 376530220,
assetType = {
name = "Bras Gauche",
id = 29,
},
name = "Bras Gauche de ROBLOX Boy",
},
{
id = 376531012,
assetType = {
name = "Bras Droit",
id = 28,
},
name = "Bras Droit de ROBLOX Boy",
},
{
id = 376531300,
assetType = {
name = "Jambe Gauche",
id = 30,
},
name = "Jambe Gauche de ROBLOX Boy",
},
{
id = 376531703,
assetType = {
name = "Jambe Droite",
id = 31,
},
name = "Jambe Droite de ROBLOX Boy",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "Torso de ROBLOX Boy",
},
},
}
print(result)

GetFriendsAsync
Rendement
Capacités : Players, Social
Players:GetFriendsAsync(userId:User):FriendPages
Paramètres
userId:User
Échantillons de code
Imprimer les amis 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
-- Tout d'abord, obtenez l'ID utilisateur du joueur
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Ensuite, obtenez un objet FriendPages pour leurs amis
local friendPages = Players:GetFriendsAsync(userId)
-- Itérez sur les éléments dans les pages. Pour FriendPages, ceux-ci
-- sont des tables d'informations sur l'ami, y compris le nom d'utilisateur.
-- Collectez chaque nom d'utilisateur dans un tableau
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Connexions de " .. USERNAME .. ": " .. table.concat(usernames, ", "))

GetHumanoidDescriptionFromOutfitId
Déprécié

GetHumanoidDescriptionFromOutfitIdAsync
Rendement
Capacités : AvatarAppearance, Players
Players:GetHumanoidDescriptionFromOutfitIdAsync(outfitId:number):HumanoidDescription
Paramètres
outfitId:number
Échantillons de code
Obtenir HumanoidDescription à partir de l'ID d'une tenue
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
Déprécié

GetHumanoidDescriptionFromUserIdAsync
Rendement
Capacités : AvatarAppearance, Players
Players:GetHumanoidDescriptionFromUserIdAsync(userId:User):HumanoidDescription
Paramètres
userId:User
Échantillons de code
Obtenir HumanoidDescription à partir de l'ID utilisateur
game.Players:CreateHumanoidModelFromDescriptionAsync(
game.Players:GetHumanoidDescriptionFromUserIdAsync(1),
Enum.HumanoidRigType.R15
).Parent =
game.Workspace

GetNameFromUserIdAsync
Rendement
Capacités : Players
Players:GetNameFromUserIdAsync(userId:User):string
Paramètres
userId:User
Retours
Échantillons de code
Obtenir le nom à partir de l'UserId
local Players = game:GetService("Players")
-- Données d'exemple :
-- UserId : 118271 Nom : "RobloxRulez"
-- UserId : 131963979 Nom : "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- affiche : "RobloxRulez docsRule"
Obtenir le nom à partir de UserId en utilisant un cache
local Players = game:GetService("Players")
-- Créer une table appelée 'cache' pour stocker chaque 'Name' à mesure qu'ils sont trouvés.
-- Si nous cherchons un 'Name' en utilisant le même 'UserId', le 'Name' viendra
-- du cache (rapide) au lieu de GetNameFromUserIdAsync() (produit).
local cache = {}
function getNameFromUserId(userId)
-- Tout d'abord, vérifiez si le cache contient 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- si une valeur a été stockée dans le cache à la clé 'userId', alors ce 'nameFromCache'
-- est le nom correct et nous pouvons le retourner.
return nameFromCache
end
-- Si ici, 'userId' n'a pas été auparavant recherché et n'existe pas dans le
-- cache. Maintenant, nous devons utiliser GetNameFromUserIdAsync() pour rechercher le nom
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- si 'success' est vrai, GetNameFromUserIdAsync() a trouvé avec succès le
-- nom. Stockez ce nom dans le cache en utilisant 'userId' comme clé afin que nous
-- n'ayons jamais à rechercher ce nom à l'avenir. Ensuite, retournez le nom.
cache[userId] = name
return name
end
-- Si ici, 'success' était faux, ce qui signifie que GetNameFromUserIdAsync()
-- n'a pas pu trouver le 'name' pour le 'userId' fourni. Avertissez l'utilisateur
-- que cela s'est produit puis retournez rien, ou nil.
warn("Impossible de trouver le nom pour UserId:", userId)
return nil
end
-- Données d'exemple:
-- UserId: 118271 Nom: "RobloxRulez"
-- UserId: 131963979 Nom: "docsRule"
-- La première fois qu'un UserId est utilisé, GetNameFromUserIdAsync() sera appelé
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Comme 118271 a été utilisé précédemment, obtenez son nom à partir du cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- imprime: "RobloxRulez docsRule RobloxRulez"

GetPlayerByUserId
Écrire en parallèle
Capacités : Players
Players:GetPlayerByUserId(userId:User):Player
Paramètres
userId:User
Retours
Échantillons de code
Joueurs:GetPlayerByUserId
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Le joueur avec l'ID utilisateur 1 est dans ce serveur ! Son nom est : " .. player.Name)
else
print("Le joueur avec l'ID utilisateur 1 n'est pas dans ce serveur !")
end

GetPlayerFromCharacter
Capacités : Players
Accès à la simulation
Players:GetPlayerFromCharacter(character:Model):Player
Paramètres
character:Model
Retours
Échantillons de code
Joueurs:ObtenirJoueurDepuisPersonnage
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(`Le joueur {player.Name} ({player.UserId}) est dans le jeu`)
else
print(`Le joueur {PLAYER_NAME} n'est pas dans le jeu!`)
end

GetPlayers
Écrire en parallèle
Capacités : Players
Players:GetPlayers():{Player}
Retours
Échantillons de code
Donner des étincelles à tout le monde
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Donnez-leur des étincelles sur la tête s'ils ne les ont pas encore
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Vérifiez s'ils ont déjà spawn
if player.Character then
onCharacterAdded(player.Character)
end
-- Écoutez le joueur (re)apparaissant
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

getPlayers
Déprécié

GetUserIdFromNameAsync
Rendement
Capacités : Players
Players:GetUserIdFromNameAsync(userName:string):number
Paramètres
userName:string
Retours
Échantillons de code
Obtenir l'UserId à partir du nom
local Players = game:GetService("Players")
-- Données d'exemple :
-- UserId : 118271 Nom : "RobloxRulez"
-- UserId : 131963979 Nom : "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- affiche : "118271 131963979"
Obtenir l'UserId à partir du Nom en utilisant un cache
local Players = game:GetService("Players")
-- Créez une table appelée 'cache' pour stocker chaque 'UserId' à mesure qu'ils sont trouvés.
-- Si nous recherchons un 'UserId' en utilisant le même 'Name', l' 'UserId' viendra
-- du cache (rapide) au lieu de GetUserIdFromNameAsync() (retours).
local cache = {}
function getUserIdFromName(name)
-- Tout d'abord, vérifiez si le cache contient 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- si une valeur a été stockée dans le cache à la clé 'name', alors cet 'userIdFromCache'
-- est le bon UserId et nous pouvons le retourner.
return userIdFromCache
end
-- Si ici, 'name' n'a pas été précédemment recherché et n'existe pas dans le
-- cache. Maintenant, nous devons utiliser GetUserIdFromNameAsync() pour rechercher l'userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- si 'success' est vrai, GetUserIdFromNameAsync() a trouvé avec succès le
-- userId. Stockez cet userId dans le cache en utilisant 'name' comme clé afin que nous
-- n'ayons plus à rechercher cet userId à l'avenir. Puis retournez userId.
cache[name] = userId
return userId
end
-- Si ici, 'success' était faux, ce qui signifie que GetUserIdFromNameAsync()
-- n'a pas pu trouver l' 'userId' pour le 'name' fourni. Nous pouvons avertir le
-- utilisateur que cela s'est produit puis retourner rien, ou nil.
warn("Impossible de trouver UserId pour le Nom :", name)
return nil
end
-- Données d'exemple :
-- UserId : 118271 Nom : "RobloxRulez"
-- UserId : 131963979 Nom : "docsRule"
-- La première fois qu'un Nom est utilisé, GetUserIdFromNameAsync() sera appelé
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Comme "RobloxRulez" a été utilisé précédemment, obtenez son UserId à partir du cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- affiche : "118271 131963979 118271"

GetUserThumbnailAsync
Rendement
Capacités : Players
Players:GetUserThumbnailAsync(
userId:User, thumbnailType:Enum.ThumbnailType, thumbnailSize:Enum.ThumbnailSize
Paramètres
userId:User
thumbnailType:Enum.ThumbnailType
thumbnailSize:Enum.ThumbnailSize
Retours
Échantillons de code
Afficher la miniature du joueur
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- remplacez par une image de remplacement
-- récupérer la miniature
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- définir le contenu de l'ImageLabel sur la miniature de l'utilisateur
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)

playerFromCharacter
Déprécié

players
Déprécié

SetChatStyle
Sécurité des plugins
Capacités : Players
Players:SetChatStyle(style:Enum.ChatStyle):()
Paramètres
Valeur par défaut : "Classic"
Retours
()
Échantillons de code
Définir le style de chat d'un joueur
-- Barre de commandes
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Définit le style de chat sur Classique
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Erreurs

TeamChat
Sécurité des plugins
Capacités : Players
Players:TeamChat(message:string):()
Paramètres
message:string
Retours
()
Échantillons de code
Envoi de Chat d'Équipe
-- Barre de commande
game.Players:TeamChat("Bonjour le monde") -- Envoie un message "Bonjour le monde" à tous les joueurs de l'équipe du joueur local
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Bonjour le monde") -- Erreurs

UnbanAsync
Rendement
Capacités : Players, Consequences
Players:UnbanAsync(config:Dictionary):()
Paramètres
config:Dictionary
Retours
()
Échantillons de code
Débloquer des utilisateurs
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

Événements
PlayerAdded
Capacités : Players
Players.PlayerAdded(player:Player):RBXScriptSignal
Paramètres
player:Player
Échantillons de code
Joueurs.JoueurAjouté
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Un joueur est entré : " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlayerMembershipChanged
Capacités : Players
Players.PlayerMembershipChanged(player:Player):RBXScriptSignal
Paramètres
player:Player
Échantillons de code
Gestion des changements d'adhésion Premium
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Accordez au joueur l'accès à des zones, des objets ou tout ce que vous pouvez imaginer !
print("Accord des", player, "avantages premium !")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Événement reçu PlayerMembershipChanged. Nouvelle adhésion = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)

PlayerRemoving
Capacités : Players
Players.PlayerRemoving(
Paramètres
player:Player
Échantillons de code
Joueurs.JoueurEnlevant
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("Un joueur a quitté : " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)

UserSubscriptionStatusChanged
Capacités : Players, Monetization
Players.UserSubscriptionStatusChanged(
user:Player, subscriptionId:string
Paramètres
user:Player
subscriptionId:string

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.