and it doesn’t put my friend on the leaderboard but it puts me on it.
What solutions have you tried so far?
Looked it up and couldn’t find anything useful. I printed the “data.key” to see what could be making the error. It shows up my userId and “-1” which I don’t know where that number came from.
local dss = game:GetService("DataStoreService")
local coinsLead = dss:GetOrderedDataStore("coinsLead")
local holder = workspace:WaitForChild("Map"):WaitForChild("Town Square"):WaitForChild("Leaderboards"):WaitForChild("Leaderboard1"):WaitForChild("Backdrop"):WaitForChild("SurfaceGui"):WaitForChild("Holder")
local function updateLeaderboard()
local success, err = pcall(function()
local data = coinsLead:GetSortedAsync(false, 5)
local coinsPage = data:GetCurrentPage()
for rank, data in pairs(coinsPage) do
print(data.key)
local name = game.Players:GetNameFromUserIdAsync(data.key)
local coins = data.value
local isOnLeaderboard = false
for i, v in pairs(holder:GetChildren()) do
if v.Player.Text == name then
isOnLeaderboard = true
break
end
end
if coins and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
newLbFrame.PlayerTL.Text = name
newLbFrame.CoinsTL.Text = coins
newLbFrame.RankTL.Text = "#" .. rank
newLbFrame.Position = UDim2.new(0,0,newLbFrame.Position.Y.Scale + (.08 * #holder:GetChildren()), 0)
newLbFrame.Parent = holder
end
end
end)
if not success then
warn(err)
end
end
while true do
wait(5)
for _, player in pairs(game.Players:GetPlayers()) do
coinsLead:SetAsync(player.UserId, player.leaderstats.Coins.Value)
end
for _, frame in pairs(holder:GetChildren()) do
frame:Destroy()
end
updateLeaderboard()
print("Leaderboard updated")
wait(120)
end
local dss = game:GetService("DataStoreService")
local coinsLead = dss:GetOrderedDataStore("coinsLead")
local holder = workspace:WaitForChild("Map"):WaitForChild("Town Square"):WaitForChild("Leaderboards"):WaitForChild("Leaderboard1"):WaitForChild("Backdrop"):WaitForChild("SurfaceGui"):WaitForChild("Holder")
local function updateLeaderboard()
local success, err = pcall(function()
local data = coinsLead:GetSortedAsync(false, 5)
local coinsPage = data:GetCurrentPage()
for rank, data in pairs(coinsPage) do
print(data.key)
local nameFinder = game.Players:GetPlayerByUserId(data.key)
local name = game.Players:FindFirstChild(nameFinder)
local coins = data.value
local isOnLeaderboard = false
for i, v in pairs(holder:GetChildren()) do
if v.Player.Text == name then
isOnLeaderboard = true
break
end
end
if coins and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
newLbFrame.PlayerTL.Text = name
newLbFrame.CoinsTL.Text = coins
newLbFrame.RankTL.Text = "#" .. rank
newLbFrame.Position = UDim2.new(0,0,newLbFrame.Position.Y.Scale + (.08 * #holder:GetChildren()), 0)
newLbFrame.Parent = holder
end
end
end)
if not success then
warn(err)
end
end
while true do
wait(5)
for _, player in pairs(game.Players:GetPlayers()) do
coinsLead:SetAsync(player.UserId, player.leaderstats.Coins.Value)
end
for _, frame in pairs(holder:GetChildren()) do
frame:Destroy()
end
updateLeaderboard()
print("Leaderboard updated")
wait(120)
end
local dss = game:GetService("DataStoreService")
local coinsLead = dss:GetOrderedDataStore("coinsLead")
local holder = workspace:WaitForChild("Map"):WaitForChild("Town Square"):WaitForChild("Leaderboards"):WaitForChild("Leaderboard1"):WaitForChild("Backdrop"):WaitForChild("SurfaceGui"):WaitForChild("Holder")
local function updateLeaderboard()
local success, err = pcall(function()
local data = coinsLead:GetSortedAsync(false, 5)
local coinsPage = data:GetCurrentPage()
for rank, data in pairs(coinsPage) do
print(data.key)
local StringKey = tostring(data.key)
local nameFinder = game.Players:GetPlayerByUserId(StringKey)
local name = game.Players.nameFinder
local coins = data.value
local isOnLeaderboard = false
for i, v in pairs(holder:GetChildren()) do
if v.Player.Text == name then
isOnLeaderboard = true
break
end
end
if coins and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
newLbFrame.PlayerTL.Text = name
newLbFrame.CoinsTL.Text = coins
newLbFrame.RankTL.Text = "#" .. rank
newLbFrame.Position = UDim2.new(0,0,newLbFrame.Position.Y.Scale + (.08 * #holder:GetChildren()), 0)
newLbFrame.Parent = holder
end
end
end)
if not success then
warn(err)
end
end
while true do
wait(5)
for _, player in pairs(game.Players:GetPlayers()) do
coinsLead:SetAsync(player.UserId, player.leaderstats.Coins.Value)
end
for _, frame in pairs(holder:GetChildren()) do
frame:Destroy()
end
updateLeaderboard()
print("Leaderboard updated")
wait(120)
end
local coinsLead = dss:GetOrderedDataStore("coinsLead")
local holder = workspace:WaitForChild("Map"):WaitForChild("Town Square"):WaitForChild("Leaderboards"):WaitForChild("Leaderboard1"):WaitForChild("Backdrop"):WaitForChild("SurfaceGui"):WaitForChild("Holder")
local function updateLeaderboard()
local success, err = pcall(function()
local data = coinsLead:GetSortedAsync(false, 5)
local coinsPage = data:GetCurrentPage()
for rank, data in pairs(coinsPage) do
print(data.key)
local StringKey = tostring(data.key)
local nameFinder = game.Players:GetPlayerByUserId(StringKey)
local coins = data.value
local isOnLeaderboard = false
for i, v in pairs(holder:GetChildren()) do
if v.Player.Text == name then
isOnLeaderboard = true
break
end
end
if coins and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
newLbFrame.PlayerTL.Text = name
newLbFrame.CoinsTL.Text = coins
newLbFrame.RankTL.Text = "#" .. rank
newLbFrame.Position = UDim2.new(0,0,newLbFrame.Position.Y.Scale + (.08 * #holder:GetChildren()), 0)
newLbFrame.Parent = holder
end
end
end)
if not success then
warn(err)
end
end
while true do
wait(5)
for _, player in pairs(game.Players:GetPlayers()) do
coinsLead:SetAsync(player.UserId, player.leaderstats.Coins.Value)
end
for _, frame in pairs(holder:GetChildren()) do
frame:Destroy()
end
updateLeaderboard()
print("Leaderboard updated")
wait(120)
end
local dss = game:GetService("DataStoreService")
local coinsLead = dss:GetOrderedDataStore("coinsLead")
local holder = workspace:WaitForChild("Map"):WaitForChild("Town Square"):WaitForChild("Leaderboards"):WaitForChild("Leaderboard1"):WaitForChild("Backdrop"):WaitForChild("SurfaceGui"):WaitForChild("Holder")
local function updateLeaderboard()
local success, err = pcall(function()
local data = coinsLead:GetSortedAsync(false, 5)
local coinsPage = data:GetCurrentPage()
for rank, data in pairs(coinsPage) do
print(data.key)
local StringKey = tostring(data.key)
local name = game.Players:GetPlayerByUserId(StringKey)
local coins = data.value
local isOnLeaderboard = false
for i, v in pairs(holder:GetChildren()) do
if v.Player.Text == name then
isOnLeaderboard = true
break
end
end
if coins and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()
newLbFrame.PlayerTL.Text = name
newLbFrame.CoinsTL.Text = coins
newLbFrame.RankTL.Text = "#" .. rank
newLbFrame.Position = UDim2.new(0,0,newLbFrame.Position.Y.Scale + (.08 * #holder:GetChildren()), 0)
newLbFrame.Parent = holder
end
end
end)
if not success then
warn(err)
end
end
while true do
wait(5)
for _, player in pairs(game.Players:GetPlayers()) do
coinsLead:SetAsync(player.UserId, player.leaderstats.Coins.Value)
end
for _, frame in pairs(holder:GetChildren()) do
frame:Destroy()
end
updateLeaderboard()
print("Leaderboard updated")
wait(120)
end