I see what you are trying to do, but you do not need all those checks and waits.
You need to define the Player and Leaderstats:
1 | local TextLabel = script.Parent |
2 | local Player = TextLabel.Parent.Parent.Parent.Parent |
3 | local Stats = Player:WaitForChild( 'leaderstats' ) |
Second, you need to create a change event and function:
1 | Stats:WaitForChild( 'Money' )Changed:connect( function () |
Third step is to code the change:
1 | TextLabel.Text = stats.Money.Value |
Last thing, is to put that all together:
1 | local TextLabel = script.Parent |
2 | local Player = TextLabel.Parent.Parent.Parent.Parent |
3 | local Stats = Player:WaitForChild( 'leaderstats' ) |
5 | Stats:WaitForChild( 'Money' )Changed:connect( function () |
6 | TextLabel.Text = stats.Money.Value |