I want to display the players with the top 10 most wins on a board in my game, and I've learned that the best way to do so is with an ordered datastore. So I have created this script, but for some reason, the wins will sometimes lag behind. I have seen people on my game have 18 wins on the board when they actually have 20. How could I script this so that the Ordered Datastore records their wins much better?
This is my script:
local ods = game:GetService("DataStoreService"):GetOrderedDataStore("HighScore9") function updateBoard(board, data) for k,v in pairs(data) do local pos = k local name = v.key local score = v.value local nametextbox = board:FindFirstChild("Name" .. pos) if board.Name == "Top5" then nametextbox.Text = " " ..pos.. ". " ..name else nametextbox.Text = " " ..(pos+5).. ". " ..name end local scoretextbox = nametextbox:FindFirstChild("Value") scoretextbox.Text = score end end while true do local success, message = pcall(function() local pages = ods:GetSortedAsync(false, 5) local data = pages:GetCurrentPage() updateBoard(game.Workspace.Leaderboards.BattleBoard.Board.SurfaceGui.List.Top5, data) if not pages.IsFinished then pages:AdvanceToNextPageAsync() data = pages:GetCurrentPage() updateBoard(game.Workspace.Leaderboards.BattleBoard.Board.SurfaceGui.List.Bottom5, data) end end) if not success then print(message) end wait(60) end