Roblox 擁有一個內建的 排行榜系統,讓你顯示用戶資訊,如分數、貨幣或在比賽中的最快時間。

設置排行榜
要設置排行榜並在玩家進入遊戲時添加玩家:
在 ServerScriptService 中創建一個新的 Script,並將其命名為 Leaderboard。

在腳本中,將一個函數連接到 PlayerAdded 事件。
local Players = game:GetService("Players")local function leaderboardSetup(player)endPlayers.PlayerAdded:Connect(leaderboardSetup)在連接的函數內,創建一個新的 Folder 實例,將其命名為 leaderstats,並將其作為玩家的子項目。
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerendPlayers.PlayerAdded:Connect(leaderboardSetup)
添加統計數據
排行榜使用 值類型對象 來存儲和顯示玩家統計數據。此腳本將使用 IntValue 顯示玩家的金幣,這是整數的佔位符。
在 leaderboardSetup() 函數中,添加第 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)
這些行的作用如下:
創建一個 IntValue 實例。
將實例的 Name 設置為 "Gold"。這將是統計數據在排行榜上顯示的名稱。

實例被放入 leaderstats 文件夾,從而將其添加到排行榜中。當玩家進入遊戲時,他們的名稱將顯示在排行榜上。

更新統計數據
要更新玩家的排行榜統計數據,請更改該統計數據在他們的 leaderstats 文件夾中的 Value 屬性。例如,你可以將以下 Script 附加到任何拾取物件,以增加玩家收集的 Gold 統計數據。
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
-- 摧毀拾取物
goldChunk:Destroy()
-- 更新玩家的排行榜統計數據
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
排序統計數據
有三種方法可以控制排行榜中統計數據的順序:
- 按你希望它們出現的順序添加統計數據。
以下代碼示例顯示如何為一個統計數據添加 IsPrimary 值:
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)
隱藏排行榜
要隱藏排行榜,例如在菜單畫面或過場動畫期間,將 LocalScript 放置在 StarterGui 或 StarterPlayerScripts 中,並包含對 StarterGui 的調用。
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)