Currently, I'm trying to make a global leaderboard that displays the 15 players with the highest number of wins. As far as I know, the datastore itself is set up fine, as it's worked without an issue for every player it's encountered so far. But when I try to use it for the leaderboard, it only puts up 3 entries - the first containing my UserId, the second being just '-1', third one just being '-2'. All of these entries have a value of 0, despite the fact the value for my UserId isn't 0. What can I do to get my DataStore values to display properly on the leaderboard?
My current code setup -
local ds = game:GetService("DataStoreService"):GetOrderedDataStore("WinNumber")
function updater(a, data)
for k,v in pairs(data) do
local number = k
local nameofplayer = v.key
local numberwins = v.value
local playerbox = a.SurfaceGui:FindFirstChild("n" .. number)
local winbox = a.SurfaceGui:FindFirstChild("w" .. number)
playerbox.Text = nameofplayer
winbox.Text = numberwins
end
end
while true do
local pages = ds:GetSortedAsync(false, 5)
local dataentry = pages:GetCurrentPage()
updater(game.Workspace.leaderboard.glb.one, dataentry)
if not pages.IsFinished then
pages:AdvanceToNextPageAsync()
data = pages:GetCurrentPage()
updater(game.Workspace.leaderboard.glb.two, dataentry)
end
wait(90)
end
