← Retour LearnBloxLearnBlox

Système de points / argent

Guide débutant

Le petit tableau qui affiche "Argent : 150" en haut à droite de l'écran, visible par tous les joueurs — c'est le système Leaderstats, intégré nativement à Roblox. Aucune interface à construire toi-même : Roblox l'affiche automatiquement dès que la structure est correcte.

Ce guide montre comment créer cette structure, ajouter des points en jeu, et l'erreur la plus commune qui fait planter le classement pour la moitié des débutants.

🏆 La structure Leaderstats
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(joueur)
    -- 1. Créer le dossier "leaderstats" — nom EXACT, sensible à la casse
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = joueur

    -- 2. Créer la valeur affichée (ici : Argent)
    local argent = Instance.new("IntValue")
    argent.Name = "Argent"
    argent.Value = 0
    argent.Parent = leaderstats
end)
⚠️ Le dossier doit s'appeler exactement leaderstats (minuscules) : c'est ce nom précis que Roblox cherche pour afficher le tableau automatiquement. Leaderstats ou LeaderStats ne fonctionnera pas.
➕ Ajouter des points en jeu
local function ajouterArgent(joueur, montant)
    local leaderstats = joueur:FindFirstChild("leaderstats")
    if not leaderstats then return end

    local argent = leaderstats:FindFirstChild("Argent")
    if argent then
        argent.Value = argent.Value + montant
    end
end

-- Utilisation, par exemple depuis un Touched
ajouterArgent(joueur, 50)
📊 Plusieurs statistiques à la fois
Players.PlayerAdded:Connect(function(joueur)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = joueur

    local argent = Instance.new("IntValue")
    argent.Name = "Argent"
    argent.Parent = leaderstats

    local niveau = Instance.new("IntValue")
    niveau.Name = "Niveau"
    niveau.Value = 1
    niveau.Parent = leaderstats
end)
💡 L'ordre d'ajout dans le dossier détermine l'ordre d'affichage dans le tableau à l'écran — la première valeur créée apparaît en premier.
🔗 Combiner avec le DataStore

Le Leaderstats n'est pas persistant par lui-même : à la reconnexion, l'argent repart de 0. Pour le sauvegarder d'une session à l'autre, il faut le combiner avec DataStoreService — charger la valeur sauvegardée dans argent.Value à la connexion, et la sauvegarder à la déconnexion.

✅ Bonnes pratiques & erreurs fréquentes
  • Le nom "leaderstats" doit être exact, respecte la casse — c'est l'erreur numéro un qui empêche le tableau de s'afficher.
  • Utilise IntValue pour des nombres entiers, NumberValue pour des décimaux, StringValue pour du texte affiché (comme un rang).
  • Vérifie toujours l'existence avant de modifier une valeur (FindFirstChild) : un script qui s'exécute avant PlayerAdded planterait sinon.
  • Le Leaderstats seul ne sauvegarde rien : combine-le avec un DataStore pour que l'argent persiste entre deux sessions.

Va plus loin : affichage complet en jeu

Le module Leaderstats & Affichage en jeu couvre en détail le classement, l'affichage personnalisé et la combinaison avec la sauvegarde des données — avec exercices corrigés.

Voir le module gratuitement →