local DS = game:GetService(“DataStoreService”)
local WinsLeaderboard = DS:GetOrderedDataStore(“Wins”)
local function UpdateLeaderboard()
local success, errorMessage = pcall(function()
local Data = WinsLeaderboard:GetSortedAsync(false, 5)
local WinsPage = Data:GetCurrentPage()
for Rank, data in ipairs(WinsPage) do
local user = game.Players:GetNameFromUserIdAsync(tonumber(data.key))
local name = user
local Wins = data.Value
local isOnLeaderboard = false
for i, v in pairs(game.Workspace.Leaderboard.LeaderboardGUI.Holder:GetChildren()) do
if v.Player.Text == name then
isOnLeaderboard = true
break
end
end
if Wins and isOnLeaderboard == false then
local NewLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
NewLbFrame.Player.Text = name
NewLbFrame.Wins.Text = Wins
NewLbFrame.Position = UDim2.new(0,0, NewLbFrame.Position.Y.Scale + (0.08 * #game.Workspace.Leaderboard.LeaderboardGUI.Holder:GetChildren()))
NewLbFrame.Parent = game.Workspace.Leaderboard.LeaderboardGUI.Holder
end
end
end)
if not success then
print(errorMessage)
end
end
while true do
for _, player in pairs(game.Players:GetPlayers()) do
WinsLeaderboard:SetAsync(player.userId, player.leaderstats.Wins.Value)
end
for _, frame in pairs(game.Workspace.Leaderboard.LeaderboardGUI.Holder:GetChildren()) do
frame:Destroy()
end
UpdateLeaderboard()
print("Updated!")
wait(10)