In this case you’d be wrong, when you are using the .Changed on a “ValueObject” (like Int, StringValue, etc.) then the event only fires upon the Value' property change. So it’s actually better to use .Changed`, it’s shorter and automatically passes the new value
Leave the script as that and type this into the value changing script
while true do
wait(0.5)
print(script.Parent.Parent.Parent.StarterGui.thegui.Money.Value)
print("value changing for real")
script.Parent.Parent.Parent.StarterGui.thegui.Money.Value -= 1
end
i think you are using the text label from the starter gui and not from the regular gui
i think you need to do something like this local textlabel = script.Parent.MoneyLabel
local moneyvalue = script.Parent.Money
while true do
wait(0.5)
textlabel.Text = moneyvalue.Value
end