So I am making a game, and I want it where if you have more than 49 dollars, the sign will say something if you have less than 49 dollars, it says something different. I made random words for this example, so here it is. The problem is that the sign doesn't change. Thank you!
1 | local Player = game.Players.LocalPlayer |
2 | local Stats = Player:WaitForChild( "leaderstats" ) |
3 | local Money = Stats:WaitForChild( "Johanna" ) |
4 | wait( 1 ) |
5 | if Money < 49 then script.Parent.SurfaceGui.SIGN.Text = "Hello!" |
6 | else |
7 | if Money > 49 then script.Parent.SurfaceGui.SIGN.Text = "Not enough money." |
8 | end |
What I believe you need is to detect is the player's money value has change. For that, I will be using GetPropertyChangedSignal
01 | local Player = game.Players.LocalPlayer |
02 | local Stats = Player:WaitForChild( "leaderstats" ) |
03 | local Money = Stats:WaitForChild( "Johanna" ) |
04 | wait( 1 ) |
05 | Money:GetPropertyChangedSignal( "Value" ):Connect( function () -- Using GetPropertyChangedSignal instead of .Changed to only detect the money value changing since .Changed will always fire when the money's properties has been changed such as it's name. |
06 | if Money.Value > 49 then |
07 | script.Parent.Parent.SurfaceGui.SIGN.Text = "Not enough money." |
08 | else |
09 | script.Parent.Parent.SurfaceGui.SIGN.Text = "Hello!" |
10 | end |
11 | end ) |
Hope this helps, and remember to accept it if it did! Any errors, report to me and I will fix it asap!