This is not the problem because we can do that, it amounts to doing if canCrouch == true then
!
I think you misunderstand me, @nojuslopro123’s code doesn’t ever change canCrouch
so it will always be true. The core misunderstanding is that they believe the GetAttributeChangedSignal("canCrouch")
will change their variable, but it doesn’t it. They need to get the value with player:GetAttribute("canCrouch")
to either update their variable or use it for their gui programming.
This has nothing to do with if statements.
Oh sorry I misunderstand you …