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