Picture: https://gyazo.com/526d5d557be31d1c0993d082f5315e5a Basically data is put into the table "playervals" and sorted by "RAP" which is a currency in my game.
Since the UIGridLayout sorts by name - in the for i,v loop it sets the name of the frame to a letter of alphabet (being first = a, being second = b etcetc) but whats strange is that if you had 715k and someone had 700b the person with 715k would be over them, someone please help
local playervals = {} for i,v in pairs(game.Players:GetPlayers()) do if v:FindFirstChild("Values") and v.Values:FindFirstChild("Currencies") and v.Values.Currencies:FindFirstChild("Bux") and v.Values.Currencies:FindFirstChild("RAP") then table.insert(playervals, {Name = v.Name, UserId = v.UserId, DisplayName = v.DisplayName, RAP = v.Values.Currencies.RAP.Value}) end end table.sort(playervals, function(a,b) return a.RAP>b.RAP end )
for i, v in pairs(playervals) do if v then local player = nil; if findplrlist(v.Name) then player = findplrlist(v.Name) else player = templates.Player:Clone() end if v.VIP then player.Info.Username.TextColor3 = Color3.fromRGB(255, 207, 85) else player.Info.Username.TextColor3 = Color3.fromRGB(255, 255, 255) end if v.Name == game.Players.LocalPlayer.Name then player.SendButton.Visible = false end player.Name = abcs[i] player.Parent = UI.Playerlist.List player.Info.Username.Text = v.DisplayName player.Username.Value = v.Name player.Info.Level.Text = v.Level if lb == "RAP" then player.Info.Value.Text = ab.abbreviate(v.RAP) else player.Info.Value.Text = "????" .. ab.abbreviate(v.Bux) end end end