Roblox에는 PlayerList에 내장된 리더보드가 있습니다. 여기, 친구들, 전 세계는 동일한 목록의 보기입니다: 여기는 현재 서버의 플레이어에 대한 세션 순위를 보여주고, 친구들 및 전 세계는 Creator Hub에 등록한 정렬된 데이터 저장소의 지속적인 순위를 보여줍니다.

리더보드 보기
PlayerList는 다음 보기에서 점수를 비교합니다:
| 보기 | 순위 |
|---|---|
| 여기 | leaderstats에서 현재 서버의 플레이어에 대한 세션 순위입니다. |
| 친구들 | 경험을 플레이한 플레이어의 친구들 사이의 지속적인 순위입니다. |
| 전 세계 | 경험 내의 플레이어 간의 지속적인 순위입니다. |
여기를 채우려면 leaderstats를 사용하세요. 친구들 및 전 세계를 채우려면 정렬된 데이터 저장소를 사용하세요.
leaderstats로 세션 리더보드 관리
각 플레이어의 leaderstats 폴더가 여기 보기를 구동합니다. 다음 단계는 해당 폴더를 설정하고, 통계를 추가하고, 세션 중에 업데이트하고, 순서를 제어하고, PlayerList를 숨기는 방법을 설명합니다.
leaderstats 설정
리더보드를 설정하고 플레이어가 경험에 들어올 때 추가하려면:
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 폴더에 부모로 설정되어 리더보드에 추가됩니다. 플레이어가 경험에 들어오면 그들의 이름이 보드에 나타납니다.

통계 업데이트
플레이어의 리더보드 통계를 업데이트하려면 해당 통계의 Value 속성을 leaderstats 폴더 내에서 변경합니다. 예를 들어, 다음 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)정렬된 데이터 저장소로 지속적인 리더보드 관리
친구들 및 전 세계는 Creator Hub에 등록한 정렬된 데이터 저장소에서 점수를 읽습니다. 정렬된 데이터 저장소는 진실의 출처로 남아 있으며, Roblox는 PlayerList에 구성된 점수를 표시합니다. 이를 통해 별도의 리더보드 인터페이스나 순위 서비스를 구축하지 않고도 지속적인 사회적 및 전 세계 순위를 추가할 수 있습니다.
초기 베타는 경험당 하나의 활성 지속적인 리더보드를 지원합니다. 등록된 활성 리더보드만 친구들 및 전 세계 보기에서 나타납니다.
데이터 요구 사항
리더보드를 등록하기 전에 해당 데이터가 다음 요구 사항을 충족하는지 확인합니다:
- 단일 정렬된 데이터 저장소가 리더보드를 지원합니다.
- 각 플레이어는 해당 정렬된 데이터 저장소에 하나의 숫자 점수를 가집니다.
- 각 키는 사용자 ID로 한 플레이어를 식별하며, 직접적으로 또는 사용자 ID를 포함하는 일관된 형식을 통해 식별합니다.
- 귀하의 경험은 점수 업데이트를 정렬된 데이터 저장소에 기록합니다. 플랫폼은 점수를 읽지만 기록하지 않습니다.
- 귀하의 점수 기록 로직은 서버에서 실행됩니다.
정렬된 데이터 준비
귀하의 경험이 현재 점수를 저장하는 방법에 맞는 경로를 선택합니다.
기존 정렬된 데이터 저장소 사용
귀하의 경험이 이미 호환되는 정렬된 데이터 저장소에 리더보드 점수를 저장하고 있다면, 해당 데이터 저장소를 유지하고 Creator Hub에 등록합니다. 각 항목이 숫자 점수를 포함하고 있으며, 키가 일관되게 한 플레이어를 식별하는지 확인합니다.
리더보드 데이터를 재구성하거나 별도의 순위 서비스로 복사할 필요가 없습니다.
정렬된 데이터 저장소 생성
리더보드 데이터가 없는 경우, 정렬된 데이터 저장소를 생성하고 기존 서버 측 점수 흐름에 추가합니다. 각 플레이어에 대해 하나의 숫자 점수를 기록하고, 플레이어의 사용자 ID를 키로 사용하거나 일관된 키 형식에 사용자 ID를 포함합니다.
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
end데이터 저장소를 Creator Hub에 등록하기 전에 점수가 존재하는지 확인합니다. 지속적인 값을 저장하고 정렬하는 방법에 대한 자세한 내용은 정렬된 데이터 저장소를 참조하세요.
다른 백엔드에서 점수 마이그레이션
표준 데이터 저장소, 외부 데이터베이스 또는 다른 백엔드가 리더보드 데이터를 저장하는 경우, 표시하려는 점수를 정렬된 데이터 저장소로 마이그레이션합니다. 각 플레이어에 대해 하나의 숫자 점수를 보존하고 플레이어를 식별하는 일관된 키 형식을 사용합니다.
마이그레이션 후, 새로운 점수 변경 사항이 정렬된 데이터 저장소에 계속 도달하도록 점수 흐름을 업데이트합니다.
Creator Hub에서 리더보드 구성
시작하기 전에 귀하의 경험이 정렬된 데이터 저장소에 유효한 점수를 기록하는지 확인합니다.
- Creator Hub를 엽니다.
- 정렬된 데이터 저장소를 소유한 경험을 선택합니다.
- 리더보드 점수를 포함하는 정렬된 데이터 저장소를 등록합니다.
- 경험에 대해 리더보드를 활성화합니다.
- 리더보드가 활성 상태인지 확인합니다.
- 경험 내 리더보드를 테스트하고 점수가 예상대로 나타나는지 확인합니다.
리더보드를 비활성화하면 플레이어에게 숨겨지지만, 정렬된 데이터 저장소나 점수를 삭제하지는 않습니다.

친구 및 전 세계 보기 테스트
이미 점수 항목이 있는 플레이어로 테스트합니다.
- 저장된 점수를 가진 플레이어로 경험에 참여합니다.
- 경험 내 리더보드를 엽니다.
- 친구들을 선택하고 적격한 친구가 예상 점수와 함께 나타나는지 확인합니다.
- 전 세계를 선택하고 플레이어가 예상 순위와 점수로 나타나는지 확인합니다.
- 기존 서버 측 워크플로를 통해 플레이어의 점수를 업데이트합니다.
- 리더보드가 업데이트된 값을 반영하는지 확인합니다.

점수 관리
정렬된 데이터 저장소 워크플로를 통해 점수를 계속 업데이트, 수정 및 조정합니다. Creator Hub는 어떤 리더보드가 활성화되어 있는지를 제어하지만, 점수 기록 또는 조정 로직을 대체하지는 않습니다.
서버 측 검증으로 점수 기록을 보호하고, 플레이어 순위에 영향을 미치기 전에 의심스러운 값이나 불가능한 값을 검토합니다.
FAQ
아니요. 점수가 이미 호환되는 정렬된 데이터 저장소에 있다면, 해당 데이터 저장소를 Creator Hub에 등록하세요.
표시하려는 점수를 정렬된 데이터 저장소로 마이그레이션한 후, Creator Hub에 등록하세요.
당신이 관리합니다. 정렬된 데이터 저장소는 진실의 출처로 남아 있으며, 귀하의 서버 측 워크플로는 계속해서 점수를 업데이트하고 조정합니다.
초기 베타는 경험당 하나의 활성 지속적인 리더보드를 지원합니다.