Hello! I am making a leaderboard but it doesn’t work. However, it does print well…the print. I need help!
local DSS = game:GetService("DataStoreService")
local ColorLeaderboard = DSS:GetOrderedDataStore("ColorLeaderboard")
local function UpdLeaderboard()
local success, errormsg = pcall(function()
local d = ColorLeaderboard:GetSortedAsync(false, 5)
local ColorPage = d:GetCurrentPage()
for rank, data in ipairs(ColorPage) do
local UserName = game.Players:GetNameFromUserIdAsync(tonumber(data.key))
local Name = UserName
local COlors = 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 COlors and IsOnLeaderboard == false then
local NewFrame = game.ReplicatedStorage:WaitForChild("Leaderboard"):Clone()
NewFrame.Player.Text = Name
NewFrame.Color.Text = COlors
NewFrame.Rank.Text = "#"..rank
NewFrame.Position = UDim2.new(0,0, NewFrame.Position.Y.Scale + (.08 * #game.Workspace.leaderboard.LeaderboardGUI.Holder:GetChildren()), 0)
NewFrame.Parent = game.Workspace.leaderboard.LeaderboardGUI.Holder
end
end
end)
if not success then
print(errormsg)
end
end
while true do
for _, play in pairs(game.Players:GetPlayers()) do
ColorLeaderboard:SetAsync(play.UserId, play.leaderstats["🎨 Color"].Value)
end
for _, frame in pairs(game.Workspace.leaderboard.LeaderboardGUI.Holder:GetChildren()) do
frame:Destroy()
end
UpdLeaderboard()
print("Updated")
wait(10)
end