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.
local REP = game.ReplicatedStorage local PLAYER = game.Players.LocalPlayer repeat wait() until PLAYER:FindFirstChild("PlayerGui") local FRAME = script.Parent:WaitForChild("ScrollingFrame",3) local FC = FRAME:GetChildren() while wait() do for i,v in pairs(game.Players:GetPlayers()) do print(v.Name.." has "..REP.PlayerValues:WaitForChild(v.Name,2).GameValues.TotalMoney.Value.." money.") -- This does correctly print their money print(FC[i].Text) -- This does print the name of the player if FC[i].Text == tostring(v) then -- Error most likely has to do with this FC[i].TextLabel.Text = "$"..REP.PlayerValues[v.Name].GameValues.TotalMoney.Value -- Nothing ever happens with this. It is meant to be a textlabel inside of another textlabel and that is not the problem. end end 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:
local REP = game.ReplicatedStorage local PLAYER = game.Players.LocalPlayer repeat wait() until PLAYER:FindFirstChild("PlayerGui") local FRAME = script.Parent:WaitForChild("ScrollingFrame") local FC = FRAME:GetChildren() while wait() do for i,v in pairs(game.Players:GetPlayers()) do print(v.Name.." has "..REP.PlayerValues:WaitForChild(v.Name).GameValues.TotalMoney.Value.." money.") -- This does correctly print their money print(FC[i].Text) -- This does print the name of the player if FC[i].Text == tostring(v.Name) then -- Error most likely has to do with this FC[i].TextLabel.Text = "$"..REP.PlayerValues[v.Name].GameValues.TotalMoney.Value -- Nothing ever happens with this. It is meant to be a textlabel inside of another textlabel and that is not the problem. end end end