Roblox에는 점수, 통화 또는 경주에서 가장 빠른 시간과 같은 사용자 정보를 표시할 수 있는 리더보드 시스템이 내장되어 있습니다.

리더보드 설정하기
리더보드를 설정하고 플레이어가 게임에 들어올 때 추가하려면:
ServerScriptService 내에 Leaderboard라는 이름의 새로운 Script를 만듭니다.

스크립트에서 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)
통계 순서 지정하기
리더보드에서 통계의 순서를 제어하는 방법은 세 가지가 있습니다:
- 원하는 순서로 통계를 추가합니다.
- 통계에 Priority라는 이름의 자식 NumberValue를 추가하고 값을 정수로 설정합니다. 더 높은 우선 순위 값은 리더보드에 먼저 나타납니다. 우선 순위가 없는 통계는 기본 우선 순위가 0입니다.
이 코드 샘플은 통계에 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)