repeat wait() until game.Players.LocalPlayer
local user = game.Players.LocalPlayer
local cash = user:FindFirstChild("Currency")
local gui = script.Parent
print("Points has started!")
game.Players.PlayerAdded:connect(function(iffy)
gui.Text = "Points:"..cash.Value
print("Joined and updated points")
cash.Changed:connect(function(cotton)
gui.Text = "Points:"..cash.Value
print("updated")
end)
end)
It will only do the first print 'Points has started!' and that's it. It doesn't change the Text at all or even give me an error.

5 comments
I believe "Currency" is supposed to be a child of "leaderstats". Try to fix up your cash path.
No. It's located within the player. Not leaderstats. If that was a case it would error finding it.
Well, to find an error I would suggest clicking "Play" as if playing a normal game, Press F9 and see why the line errors. (Go to Server Console)
Do you not read what i typed? Why don't you read what i said under the script itself? You aren't giving me any information i can use. Really now, you are going to vote down because you didn't read what I typed?
Have you been trying with more than one player? Is cash actually being changed? Is it possible to access the PlayerAdded event from a local script?