I created a custom leaderboard for my game, but the problem is that the textlabel will not update the text based on the money of the other players. The script is a local script inside of the GUI.
01 | local REP = game.ReplicatedStorage |
02 | local PLAYER = game.Players.LocalPlayer |
03 |
04 | repeat wait() until PLAYER:FindFirstChild( "PlayerGui" ) |
05 |
06 | local FRAME = script.Parent:WaitForChild( "ScrollingFrame" , 3 ) |
07 | local FC = FRAME:GetChildren() |
08 |
09 | while wait() do |
10 | for i,v in pairs (game.Players:GetPlayers()) do |
11 | print (v.Name.. " has " ..REP.PlayerValues:WaitForChild(v.Name, 2 ).GameValues.TotalMoney.Value.. " money." ) -- This does correctly print their money |
12 | print (FC [ i ] .Text) -- This does print the name of the player |
13 | if FC [ i ] .Text = = tostring (v) then -- Error most likely has to do with this |
14 | FC [ i ] .TextLabel.Text = "$" ..REP.PlayerValues [ v.Name ] .GameValues.TotalMoney.Value |
15 | -- Nothing ever happens with this. It is meant to be a textlabel inside of another textlabel and that is not the problem. |
16 | end |
17 | end |
18 | end |
Your problem is in line 13. You are trying to call tostring on an object
v in i,v is the player in Players. I think you are trying to call v.Name
Revised script:
01 | local REP = game.ReplicatedStorage |
02 | local PLAYER = game.Players.LocalPlayer |
03 |
04 | repeat wait() until PLAYER:FindFirstChild( "PlayerGui" ) |
05 |
06 | local FRAME = script.Parent:WaitForChild( "ScrollingFrame" ) |
07 | local FC = FRAME:GetChildren() |
08 |
09 | while wait() do |
10 | for i,v in pairs (game.Players:GetPlayers()) do |
11 | print (v.Name.. " has " ..REP.PlayerValues:WaitForChild(v.Name).GameValues.TotalMoney.Value.. " money." ) -- This does correctly print their money |
12 | print (FC [ i ] .Text) -- This does print the name of the player |
13 | if FC [ i ] .Text = = tostring (v.Name) then -- Error most likely has to do with this |
14 | FC [ i ] .TextLabel.Text = "$" ..REP.PlayerValues [ v.Name ] .GameValues.TotalMoney.Value |
15 | -- Nothing ever happens with this. It is meant to be a textlabel inside of another textlabel and that is not the problem. |
16 | end |
17 | end |
18 | end |