The leaderboard system should update by every 10 secs but it keeps saying "0" value even if it is not on the player side. It just says the same thing no matter what do I change (in the points or anything). What is the issue?
local DataStoreService = game:GetService("DataStoreService")
local PointsLeaderboard = DataStoreService:GetOrderedDataStore("PointsLeaderboard")
local function updateLeaderboard()
local success, errorMessage = pcall (function()
local Data = PointsLeaderboard:GetSortedAsync(false, 5)
local PointsPage = Data:GetCurrentPage()
for Rank, data in ipairs(PointsPage) do
local userName = game.Players:GetNameFromUserIdAsync(tonumber(data.key))
local Name = userName
local Points = data.value
local isOnLeaderboard = false
for i, v in pairs(game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder:GetChildren()) do
if v.Player.Text == Name then
isOnLeaderboard = true
break
end
end
if Points and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
newLbFrame.Player.Text = Name
newLbFrame.Points.Text = Points
newLbFrame.Rank.Text = "#"..Rank
newLbFrame.Position = UDim2.new(0, 0, newLbFrame.Position.Y.Scale + (.08 * #game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder:GetChildren()), 0)
newLbFrame.Parent = game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder
end
end
end)
if not success then
print(errorMessage)
end
end
while true do
for _, player in pairs(game.Players:GetPlayers()) do
PointsLeaderboard:SetAsync(player.UserId, player.leaderstats.Points.Value)
end
for _, frame in pairs (game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder:GetChildren()) do
frame:Destroy()
end
updateLeaderboard()
print("Updated!")
wait(10)
end

1 comment
Can you tell me what did the output say, please?