Classements

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

Roblox dispose d'un classement intégré dans la PlayerList. Ici, Amis et Global sont des vues de cette même liste : Ici affiche les classements de session pour les joueurs dans le serveur actuel, et Amis et Global affichent les classements persistants d'un magasin de données ordonné que vous enregistrez dans Creator Hub.

Écran de classement

Vues des classements

La PlayerList compare les scores à travers ces vues :

VueClassements
IciClassements de session pour les joueurs dans le serveur actuel, à partir de leaderstats.
AmisClassements persistants parmi les amis d'un joueur qui ont joué à l'expérience.
GlobalClassements persistants parmi les joueurs dans l'expérience.

Utilisez leaderstats pour peupler Ici. Utilisez un magasin de données ordonné pour peupler Amis et Global.

Gérer les classements de session avec leaderstats

Un dossier leaderstats sur chaque joueur alimente la vue Ici. Les étapes suivantes configurent ce dossier, ajoutent des statistiques, les mettent à jour pendant une session, contrôlent leur ordre et cachent la PlayerList.

Configurer leaderstats

Pour configurer le classement et ajouter des joueurs lorsqu'ils entrent dans l'expérience :

  1. Créez un nouveau Script dans ServerScriptService et nommez-le Leaderboard.

    Insérer le script de classement
  2. Dans le script, connectez une fonction à l'événement PlayerAdded.

    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    end
    Players.PlayerAdded:Connect(leaderboardSetup)
  3. À l'intérieur de la fonction connectée, créez une nouvelle instance Folder, nommez-la leaderstats, et parenté-la au joueur.

    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    Players.PlayerAdded:Connect(leaderboardSetup)

Ajouter des statistiques

Les classements utilisent des objets de type valeur pour stocker et afficher les statistiques des joueurs. Ce script montre l'or d'un joueur en utilisant un IntValue, un espace réservé pour un entier.

Dans la fonction leaderboardSetup(), ajoutez les lignes 8 à 11 :

local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
end
Players.PlayerAdded:Connect(leaderboardSetup)

Ces lignes accomplissent les éléments suivants :

  1. Une instance IntValue est créée.

  2. Le Name de l'instance est défini sur "Gold". C'est exactement comme la statistique apparaîtra sur le classement.

    Nom de la statistique 'Gold' affiché sur le classement
  3. La valeur initiale de la statistique Value est définie sur 0. Définissez cela sur n'importe quelle valeur que vous souhaitez, y compris une valeur stockée dans un magasin de données si vous implémentez des classements persistants.

  4. L'instance est parentée au dossier leaderstats, ce qui l'ajoute au classement. Lorsque qu'un joueur entre dans l'expérience, son nom apparaît sur le tableau.

    Plusieurs joueurs affichés sur le classement

Mettre à jour les statistiques

Pour mettre à jour la statistique de classement d'un joueur, changez la propriété Value de cette statistique dans son dossier leaderstats. Par exemple, vous pouvez attacher le Script suivant à n'importe quel objet de ramassage pour augmenter la statistique Gold du joueur qui le collecte.

local Players = game:GetService("Players")
local goldChunk = script.Parent
local function onPartTouch(otherPart)
local partParent = otherPart.Parent
local player = Players:GetPlayerFromCharacter(partParent)
local leaderstats = player and player:FindFirstChild("leaderstats")
local goldStat = leaderstats and leaderstats:FindFirstChild("Gold")
if goldStat then
-- Détruire le ramassage
goldChunk:Destroy()
-- Mettre à jour la statistique de classement du joueur
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)

Ordre des statistiques

Il existe trois façons de contrôler l'ordre des statistiques dans un classement :

  • Ajoutez les statistiques dans l'ordre dans lequel vous souhaitez qu'elles apparaissent.
  • Ajoutez un enfant BoolValue nommé IsPrimary à la statistique et définissez sa valeur sur true pour placer la statistique en premier dans le classement.
  • Ajoutez un enfant NumberValue nommé Priority à la statistique et définissez sa valeur sur un entier. Les valeurs de priorité plus élevées apparaissent plus tôt dans le classement. Les statistiques sans priorité ont une priorité par défaut de 0.

Cet exemple de code montre comment ajouter une valeur IsPrimary à une statistique :

local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
local isPrimary = Instance.new("BoolValue")
isPrimary.Name = "IsPrimary"
isPrimary.Value = true
isPrimary.Parent = gold
end
Players.PlayerAdded:Connect(leaderboardSetup)

Cacher le classement

Pour cacher le classement, par exemple sur un écran de menu ou pendant une cinématique, appelez SetCoreGuiEnabled() depuis un script client.

local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)

Gérer les classements persistants avec un magasin de données ordonné

Amis et Global lisent les scores d'un magasin de données ordonné que vous enregistrez dans Creator Hub. Le magasin de données ordonné reste la source de vérité, et Roblox affiche les scores configurés dans la PlayerList. Cela vous permet d'ajouter des classements sociaux et globaux persistants sans construire une interface de classement séparée ou un service de classement.

La bêta initiale prend en charge un classement persistant actif par expérience. Seul un classement enregistré et actif apparaît dans les vues Amis et Global.

Exigences de données

Avant d'enregistrer un classement, confirmez que ses données répondent à ces exigences :

  • Un seul magasin de données ordonné soutient le classement.
  • Chaque joueur a un score numérique dans ce magasin de données ordonné.
  • Chaque clé identifie un joueur par ID utilisateur, soit directement, soit par un format cohérent qui inclut l'ID utilisateur.
  • Votre expérience écrit des mises à jour de score dans le magasin de données ordonné. La plateforme lit les scores mais ne les écrit pas.
  • Votre logique d'écriture de score s'exécute sur le serveur.

Préparer les données ordonnées

Choisissez le chemin qui correspond à la façon dont votre expérience stocke actuellement les scores.

Utiliser un magasin de données ordonné existant

Si votre expérience stocke déjà les scores de classement dans un magasin de données ordonné compatible, conservez ce magasin de données et enregistrez-le dans Creator Hub. Confirmez que chaque entrée contient un score numérique et que sa clé identifie de manière cohérente un joueur.

Vous n'avez pas besoin de reconstruire les données de classement ou de les copier dans un service de classement séparé.

Créer un magasin de données ordonné

Si vous n'avez pas déjà de données de classement, créez un magasin de données ordonné et ajoutez-le à votre flux de scoring côté serveur existant. Écrivez un score numérique pour chaque joueur, et utilisez l'ID utilisateur du joueur comme clé ou incluez l'ID utilisateur dans un format de clé cohérent.

local DataStoreService = game:GetService("DataStoreService")
local playerScores = DataStoreService:GetOrderedDataStore("PlayerScores")
local function saveScore(player, score)
local success, errorMessage = pcall(function()
playerScores:SetAsync(tostring(player.UserId), score)
end)
if not success then
warn(errorMessage)
end
end

Vérifiez que les scores sont présents avant d'enregistrer le magasin de données dans Creator Hub. Pour plus d'informations sur le stockage et le tri des valeurs persistantes, consultez magasins de données ordonnés.

Migrer des scores depuis un autre backend

Si un magasin de données standard, une base de données externe ou un autre backend stocke vos données de classement, migrez les scores que vous souhaitez afficher dans un magasin de données ordonné. Préservez un score numérique par joueur et utilisez un format de clé cohérent qui identifie le joueur.

Après la migration, mettez à jour votre flux de scoring afin que les nouvelles modifications de score continuent d'atteindre le magasin de données ordonné.

Configurer un classement dans Creator Hub

Avant de commencer, confirmez que votre expérience écrit des scores valides dans le magasin de données ordonné.

  1. Ouvrez Creator Hub.
  2. Sélectionnez l'expérience qui possède le magasin de données ordonné.
  3. Enregistrez le magasin de données ordonné qui contient vos scores de classement.
  4. Activez le classement pour l'expérience.
  5. Confirmez que le classement est actif.
  6. Testez le classement dans l'expérience et vérifiez que les scores apparaissent comme prévu.

Désactiver un classement le cache des joueurs mais ne supprime pas son magasin de données ordonné ou ses scores.

La page Classement pour une expérience dans Creator Hub, avec un bouton Créer pour configurer un classement.
Créez et gérez les configurations de classement depuis la page Classement dans Creator Hub.

Tester les vues Amis et Global

Testez avec des joueurs qui ont déjà des entrées de score.

  1. Rejoignez l'expérience en tant que joueur avec un score enregistré.
  2. Ouvrez le classement dans l'expérience.
  3. Sélectionnez Amis et confirmez que les amis éligibles apparaissent avec les scores attendus.
  4. Sélectionnez Global et confirmez que le joueur apparaît avec le rang et le score attendus.
  5. Mettez à jour le score du joueur via votre flux côté serveur existant.
  6. Confirmez que le classement reflète la valeur mise à jour.
Un classement persistant dans l'expérience montrant les rangs, noms et scores des joueurs.
Vérifiez les classements persistants dans le classement de l'expérience.

Gérer les scores

Continuez à mettre à jour, corriger et modérer les scores via votre flux de magasin de données ordonné. Creator Hub contrôle quel classement est actif, mais il ne remplace pas votre logique d'écriture de score ou de modération.

Protégez les écritures de score avec une validation côté serveur, et examinez les valeurs suspectes ou impossibles avant qu'elles n'affectent les classements des joueurs.

FAQ

Non. Si les scores sont déjà dans un magasin de données ordonné compatible, enregistrez ce magasin de données dans Creator Hub.

Migrez les scores que vous souhaitez afficher vers un magasin de données ordonné, puis enregistrez-le dans Creator Hub.

Vous le faites. Le magasin de données ordonné reste la source de vérité, et votre flux côté serveur continue de mettre à jour et de modérer les scores.

La bêta initiale prend en charge un classement persistant actif par expérience.

©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.