Roblox ha una classifica integrata nella PlayerList. Qui, Amici e Globale sono visualizzazioni di quella stessa lista: Qui mostra le classifiche di sessione per i giocatori nel server attuale, mentre Amici e Globale mostrano classifiche persistenti da un data store ordinato che registri nel Creator Hub.

Visualizzazioni della classifica
La PlayerList confronta i punteggi attraverso queste visualizzazioni:
| Visualizzazione | Classifiche |
|---|---|
| Qui | Classifiche di sessione per i giocatori nel server attuale, da leaderstats. |
| Amici | Classifiche persistenti tra gli amici di un giocatore che hanno giocato all'esperienza. |
| Globale | Classifiche persistenti tra i giocatori nell'esperienza. |
Usa leaderstats per popolare Qui. Usa un data store ordinato per popolare Amici e Globale.
Gestisci le classifiche di sessione con leaderstats
Una cartella leaderstats su ogni giocatore alimenta la visualizzazione Qui. I seguenti passaggi impostano quella cartella, aggiungono statistiche, le aggiornano durante una sessione, controllano il loro ordine e nascondono la PlayerList.
Imposta leaderstats
Per impostare la classifica e aggiungere i giocatori quando entrano nell'esperienza:
Crea un nuovo Script all'interno di ServerScriptService e chiamalo Leaderboard.

Nello script, collega una funzione all'evento PlayerAdded.
local Players = game:GetService("Players")local function leaderboardSetup(player)endPlayers.PlayerAdded:Connect(leaderboardSetup)All'interno della funzione collegata, crea una nuova istanza di Folder, chiamala leaderstats e impostala come genitore del giocatore.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerendPlayers.PlayerAdded:Connect(leaderboardSetup)
Aggiungi statistiche
Le classifiche utilizzano oggetti di tipo valore per memorizzare e visualizzare le statistiche dei giocatori. Questo script mostra l'oro di un giocatore utilizzando un IntValue, un segnaposto per un intero.
Nella funzione leaderboardSetup(), aggiungi le righe da 8 a 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)Queste righe realizzano quanto segue:
Viene creata un'istanza di IntValue.
Il Name dell'istanza è impostato su "Gold". Questo è esattamente come la statistica apparirà sulla classifica.

Il valore iniziale di Value della statistica è impostato su 0. Imposta questo su qualsiasi valore desideri, incluso un valore memorizzato in un data store se stai implementando classifiche persistenti.
L'istanza è impostata come genitore della cartella leaderstats, il che la aggiunge alla classifica. Quando un giocatore entra nell'esperienza, il suo nome appare sulla bacheca.

Aggiorna statistiche
Per aggiornare la statistica della classifica di un giocatore, modifica la proprietà Value di quella statistica all'interno della sua cartella leaderstats. Ad esempio, puoi collegare il seguente Script a qualsiasi oggetto di raccolta per aumentare la statistica Gold del giocatore che lo raccoglie.
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
-- Distruggi il pickup
goldChunk:Destroy()
-- Aggiorna la statistica della classifica del giocatore
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)Ordina le statistiche
Ci sono tre modi per controllare l'ordine delle statistiche in una classifica:
- Aggiungi le statistiche nell'ordine in cui desideri che appaiano.
- Aggiungi un valore figlio BoolValue chiamato IsPrimary alla statistica e imposta il suo valore su true per posizionare la statistica per prima nella classifica.
- Aggiungi un valore figlio NumberValue chiamato Priority alla statistica e imposta il suo valore su un intero. Valori di priorità più elevati appaiono prima nella classifica. Le statistiche senza priorità hanno una priorità predefinita di 0.
Questo campione di codice mostra come aggiungere un valore IsPrimary a una statistica:
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)Nascondi la classifica
Per nascondere la classifica, ad esempio su uno schermo di menu o durante una scena, posiziona un LocalScript all'interno di StarterGui o StarterPlayerScripts contenente una chiamata a StarterGui.
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)Gestisci le classifiche persistenti con un data store ordinato
Amici e Globale leggono i punteggi da un data store ordinato che registri nel Creator Hub. Il data store ordinato rimane la fonte di verità, e Roblox visualizza i punteggi configurati nella PlayerList. Questo ti consente di aggiungere classifiche sociali e globali persistenti senza costruire un'interfaccia di classifica separata o un servizio di ranking.
La beta iniziale supporta una sola classifica persistente attiva per esperienza. Solo una classifica registrata e attiva appare nelle visualizzazioni Amici e Globale.
Requisiti dei dati
Prima di registrare una classifica, conferma che i suoi dati soddisfino questi requisiti:
- Un singolo data store ordinato supporta la classifica.
- Ogni giocatore ha un punteggio numerico in quel data store ordinato.
- Ogni chiave identifica un giocatore tramite l'ID utente, direttamente o attraverso un formato coerente che include l'ID utente.
- La tua esperienza scrive aggiornamenti di punteggio nel data store ordinato. La piattaforma legge i punteggi ma non li scrive.
- La tua logica di scrittura dei punteggi viene eseguita sul server.
Prepara i dati ordinati
Scegli il percorso che corrisponde a come la tua esperienza memorizza attualmente i punteggi.
Usa un data store ordinato esistente
Se la tua esperienza memorizza già i punteggi della classifica in un data store ordinato compatibile, mantieni quel data store e registralo nel Creator Hub. Conferma che ogni voce contenga un punteggio numerico e che la sua chiave identifichi coerentemente un giocatore.
Non è necessario ricostruire i dati della classifica o copiarli in un servizio di ranking separato.
Crea un data store ordinato
Se non hai già dati della classifica, crea un data store ordinato e aggiungilo al tuo flusso di punteggio esistente sul server. Scrivi un punteggio numerico per ogni giocatore e usa l'ID utente del giocatore come chiave o includi l'ID utente in un formato di chiave coerente.
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
endVerifica che i punteggi siano presenti prima di registrare il data store nel Creator Hub. Per ulteriori informazioni su come memorizzare e ordinare valori persistenti, consulta data store ordinati.
Migra i punteggi da un altro backend
Se un data store standard, un database esterno o un altro backend memorizza i tuoi dati della classifica, migra i punteggi che desideri visualizzare in un data store ordinato. Preserva un punteggio numerico per giocatore e utilizza un formato di chiave coerente che identifichi il giocatore.
Dopo la migrazione, aggiorna il tuo flusso di punteggio in modo che le nuove modifiche ai punteggi continuino a raggiungere il data store ordinato.
Configura una classifica nel Creator Hub
Prima di iniziare, conferma che la tua esperienza scriva punteggi validi nel data store ordinato.
- Apri Creator Hub.
- Seleziona l'esperienza che possiede il data store ordinato.
- Registra il data store ordinato che contiene i punteggi della tua classifica.
- Abilita la classifica per l'esperienza.
- Conferma che la classifica sia attiva.
- Testa la classifica in esperienza e verifica che i punteggi appaiano come previsto.
Disattivare una classifica la nasconde dai giocatori ma non elimina il suo data store ordinato o i punteggi.

Testa le visualizzazioni Amici e Globale
Testa con giocatori che hanno già voci di punteggio.
- Unisciti all'esperienza come un giocatore con un punteggio salvato.
- Apri la classifica in esperienza.
- Seleziona Amici e conferma che gli amici idonei appaiano con i punteggi previsti.
- Seleziona Globale e conferma che il giocatore appaia con il rango e il punteggio previsti.
- Aggiorna il punteggio del giocatore attraverso il tuo flusso esistente sul server.
- Conferma che la classifica rifletta il valore aggiornato.

Gestisci i punteggi
Continua ad aggiornare, correggere e moderare i punteggi attraverso il tuo flusso di lavoro del data store ordinato. Il Creator Hub controlla quale classifica è attiva, ma non sostituisce la tua logica di scrittura o moderazione dei punteggi.
Proteggi le scritture dei punteggi con la validazione lato server e rivedi valori sospetti o impossibili prima che influenzino i ranghi dei giocatori.
FAQ
No. Se i punteggi sono già in un data store ordinato compatibile, registra quel data store nel Creator Hub.
Migra i punteggi che desideri visualizzare in un data store ordinato, quindi registralo nel Creator Hub.
Sei tu. Il data store ordinato rimane la fonte di verità e il tuo flusso di lavoro lato server continua ad aggiornare e moderare i punteggi.
La beta iniziale supporta una sola classifica persistente attiva per esperienza.