I'm working on a custom leaderboard. Here's a snip of some of the code where it's supposed to sort the playername position based on their score.
for h,q in pairs(script.Parent.LeaderBoard.Holder.players:GetChildren()) do
game.ReplicatedStorage:WaitForChild(q.Name)
q.Kills.Text = game.ReplicatedStorage:FindFirstChild(q.Name).currentrounddata.killsthisround.Value
q.Deaths.Text = game.ReplicatedStorage:FindFirstChild(q.Name).currentrounddata.deathsthisround.Value
table.insert(scores, q.Kills.text)
table.sort(scores, function(a,b) return a > b end)
print('starting player sort')
for g = 1, #players do
for i,v in pairs(scores) do
print(i,v)
if v == q.Kills.Text then print(q.Name)
if i <= #players then
local y = .50
local pos = i * .06 + y
label.Parent = script.Parent.LeaderBoard.Holder.players
label.Position = UDim2.new(.5, -300, pos, -100)
else
print(i.."Is over number of players! Error!")
end
end
end
end
end
Below, it prints the output correctly. Ranking the scores through the table.
table.insert(scores, q.Kills.text)
table.sort(scores, function(a,b) return a > b end)
print('starting player sort')
for g = 1, #players do
for i,v in pairs(scores) do
print(i,v)
But, in the block below it only prints one name(q.Name) and it only re-positions one name, causing an overlap.
if v == q.Kills.Text then print(q.Name)
if i <= #players then
local y = .50
local pos = i * .06 + y
label.Parent = script.Parent.LeaderBoard.Holder.players
label.Position = UDim2.new(.5, -300, pos, -100)
Any help would be appreciated!
