Roblox ha un sistema di leaderboard integrato che ti consente di visualizzare informazioni sugli utenti come punteggi, valuta o il tempo più veloce in una gara.

Imposta la leaderboard
Per impostare la leaderboard e aggiungere i giocatori quando entrano nel gioco:
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 connessa, 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 leaderboard utilizzano oggetti di tipo valore per memorizzare e visualizzare le statistiche dei giocatori. Questo script mostrerà 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:
Un'istanza di IntValue viene creata.
Il Name dell'istanza è impostato su "Gold". Questo è esattamente come la statistica apparirà sulla leaderboard.

Il valore iniziale di Value della statistica è impostato su 0. Questo può essere impostato su qualsiasi valore desideri, incluso un valore memorizzato in un data store se stai implementando leaderboard persistenti.
L'istanza è impostata come genitore della cartella leaderstats, il che la aggiunge alla leaderboard. Quando un giocatore entra nel gioco, il suo nome appare sulla lista.

Aggiorna statistiche
Per aggiornare la statistica della leaderboard di un giocatore, cambia 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 leaderboard 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 leaderboard:
- Aggiungi le statistiche nell'ordine in cui desideri che appaiano.
- Aggiungi un valore BoolValue secondario chiamato IsPrimary alla statistica e imposta il suo valore su true per posizionare la statistica prima nella leaderboard.
- Aggiungi un valore NumberValue secondario chiamato Priority alla statistica e imposta il suo valore su un intero. I valori di priorità maggiori appaiono prima nella leaderboard. Le statistiche senza priorità hanno una priorità predefinita di 0.
Questo esempio 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 leaderboard
Per nascondere la leaderboard, come in una schermata 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)