Lorsque un utilisateur Roblox rejoint un jeu, il est représenté comme un Player dans le DataModel. Cet objet Player contient des informations sur l'utilisateur qui sont universelles à travers les jeux, telles que son nom d'utilisateur, sa liste d'amis et son personnage avatar sauvegardé, ainsi que des propriétés, des méthodes et des événements qui affectent le cycle de vie de l'utilisateur entre le moment où il rejoint et quitte le jeu. Chaque objet Player parent également quatre conteneurs importants que vous pouvez utiliser pour personnaliser l'expérience d'un utilisateur : Backpack, StarterGear, PlayerGui et PlayerScripts.
Chaque Player expose également une propriété Player.User, qui est une valeur User représentant l'identité de l'utilisateur dans le domaine du jeu actuel. Pour plus d'informations sur le fonctionnement de l'identification des utilisateurs, y compris les ID d'utilisateur spécifiques au domaine et le type User, voir Utilisateurs et ID d'utilisateur spécifiques au domaine.

Cycle de vie
Le service Players contient toutes les instances Player dans un jeu. Les scripts côté client et côté serveur peuvent tous deux se connecter aux événements Players.PlayerAdded et Players.PlayerRemoved pour effectuer des actions en réponse au cycle de vie d'un objet Player. Les scripts peuvent également se connecter aux événements Player.CharacterAdded et Player.CharacterRemoving pour effectuer des actions liées au gameplay lorsque le personnage apparaît ou disparaît.
Rejoindre un utilisateur
Lorsque un client utilisateur se connecte à un jeu, l'événement Players.PlayerAdded se déclenche et passe l'objet Player de l'utilisateur qui rejoint ; vous pouvez utiliser cet objet à de nombreuses fins, comme charger des données utilisateur à partir d'un magasin de données ou assigner le joueur à une équipe.
Par exemple, pour charger les données d'un utilisateur lorsqu'il rejoint un jeu, utilisez l'événement PlayerAdded dans un Script pour récupérer les données de l'utilisateur stockées dans un magasin de données sous son ID utilisateur :
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Lire la clé du magasin de données
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Effectuer d'autres actions avec currentData
end)Apparition du personnage
Par défaut, le modèle Player.Character d'un utilisateur représente son avatar de plateforme et Players.CharacterAutoLoads est true, ce qui signifie que le modèle du personnage apparaît automatiquement lorsque l'utilisateur rejoint un jeu.
Lorsque le Player.Character d'un utilisateur apparaît, les Scripts et LocalScripts dans StarterCharacterScripts se clonent dans le modèle du personnage et l'événement Player.CharacterAdded se déclenche. Cet événement passe le nouveau modèle de personnage à ses écouteurs que vous pouvez utiliser pour trouver l'objet Humanoid du personnage et modifier son comportement. Par exemple, vous pouvez utiliser Humanoid:ApplyDescription() pour changer la tenue de l'avatar.
Disparition du personnage
Lorsque le Humanoid du joueur meurt, le serveur supprime automatiquement le modèle du personnage après le temps spécifié par Players.RespawnTime. Vous pouvez ensuite utiliser l'événement Player.CharacterRemoving pour réinitialiser d'autres objets ou mettre à jour des données associées au personnage.
Départ de l'utilisateur
Lorsque un client utilisateur se déconnecte d'un jeu, le serveur détruit son objet Player associé à l'intérieur du service Players. À ce moment-là, l'événement Players.PlayerRemoving se déclenche et passe l'objet Player de l'utilisateur qui s'est déconnecté. Vous pouvez utiliser cela à de nombreuses fins, comme sauvegarder les données utilisateur, supprimer les statistiques du joueur d'un tableau de scores, ou détruire les modèles créés par le joueur dans le jeu.
L'exemple suivant de Script écoute l'événement PlayerRemoving et tente de sauvegarder les données de l'utilisateur dans un magasin de données sous son ID utilisateur :
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Obtenir l'état des données du joueur dans le jeu
local currentData = getCurrentData(player)
-- Sauvegarder dans le magasin de données
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)Conteneurs
Chaque objet Player représentant le client d'un utilisateur stocke plusieurs conteneurs importants : Backpack, StarterGear, PlayerGui et PlayerScripts. Au moment de l'exécution du jeu, plusieurs conteneurs dans le modèle de données "édition" copient leur contenu dans ces conteneurs Player, y compris StarterGui vers PlayerGui, StarterPack vers Backpack, et StarterPlayerScripts vers PlayerScripts.

Les objets Tool dans le Backpack constituent l'inventaire du joueur et s'affichent sous forme de boutons d'icônes en bas de l'écran. Voir outils en jeu pour plus d'informations.
Comme illustré ci-dessus, le contenu de StarterPack et le StarterGear du joueur se clonent dans le Backpack lorsque le Character d'un joueur apparaît. Lorsque le personnage meurt, le client détruit le Backpack et le remplace par un nouveau.
Pour désactiver l'interface utilisateur d'inventaire par défaut de Roblox et la remplacer par la vôtre, appelez StarterGui:SetCoreGuiEnabled() dans un LocalScript comme décrit dans désactiver l'UI par défaut.
Bannir des utilisateurs
Pour garantir la civilité et le fair-play dans vos jeux, vous pouvez bannir des utilisateurs qui enfreignent les règles ou les directives de la communauté. Vous pouvez modifier les durées de bannissement, les messages de bannissement, et même étendre les bannissements à des comptes alternatifs potentiels. Lorsque vous utilisez cette fonctionnalité, vous devez suivre les directives de bannissement et de messagerie.
Vous avez plusieurs options pour travailler avec les bannissements :
- Chaque page de jeu sur le Creator Hub a un tableau de bord Bans.
- Pour une utilisation programmatique avec l'API du moteur, voir Players:BanAsync().
- Pour Open Cloud, voir bans et blocs.
Blocage de dispositifs
En plus de bannir un compte, Players:BanAsync() prend en charge le blocage de dispositifs via le champ ApplyDeviceBlock dans sa table de configuration. Lorsque vous bannissez un utilisateur qui est actuellement connecté à votre jeu avec ApplyDeviceBlock défini sur true, le dispositif associé à cet utilisateur est également bloqué de se reconnecter pendant 24 heures. Cette option ajoute une friction contre l'évasion de bannissement ; les joueurs bannis ne peuvent pas immédiatement rejoindre le jeu à partir d'un nouveau compte sur le même dispositif.
- Le blocage de dispositifs s'applique actuellement uniquement aux joueurs sur ordinateur de bureau (Windows et macOS). Il ne s'applique pas aux appareils mobiles ou aux consoles.
- Le blocage de dispositifs ne se propage pas en tant que bannissement à d'autres comptes qui ont utilisé le dispositif.
- L'appel de l'API de débanissement sur l'utilisateur affecté supprime immédiatement tout blocage de dispositif actif associé au dispositif de cet utilisateur, lui permettant de rejoindre à nouveau le jeu.
Directives de bannissement
Lors de la mise en œuvre de bannissements dans votre jeu, respectez les directives suivantes :
- Les règles du jeu ne doivent pas contredire les Normes de la communauté et les Conditions d'utilisation de Roblox. Par exemple, vous ne pouvez pas créer une règle de jeu qui exclut quelqu'un en raison de son sexe, car cela viole la politique de discrimination, d'insultes et de discours de haine de Roblox.
- Les créateurs doivent clairement énoncer leurs règles de jeu quelque part accessible à tous les utilisateurs.
- Les créateurs doivent appliquer leurs règles de jeu de manière équitable et ne pas cibler arbitrairement certains utilisateurs.
- Les utilisateurs peuvent faire appel directement aux créateurs s'ils estiment que leur bannissement était incorrect. Roblox ne médiatisera pas ces appels, sauf si l'utilisateur estime que les règles de jeu du créateur ou l'application de ses règles violent les Normes de la communauté.
- Roblox peut modérer un jeu s'il y a des raisons de croire que les règles de jeu d'un créateur ou l'application de ses règles violent les Normes de la communauté.
Directives de message
Lorsqu'un utilisateur est banni, il reçoit un modal d'erreur affichant des informations telles que la durée du bannissement et la raison. Dans le message filtré par texte, vous pouvez inclure des informations supplémentaires telles que des informations d'appel ou de contact tant que vous respectez les Normes de la communauté de Roblox.
Par exemple, dans vos messages de bannissement, vous êtes autorisé à faire référence à des marques et des plateformes :
- "Visitez le Discord dans ma page de groupe/jeu"
- "Envoyez-moi un message sur Twitter ou X"
Les mentions d'informations personnelles ou de liens directs ne sont pas autorisées dans ce champ de message. Cela inclut le fait de publier un nom d'utilisateur ou un identifiant spécifique, ou de fournir un lien direct vers un serveur Discord ou un compte X.