BoolValue being changed by some things but not others

Hey there fellow devs,

I’m in the process of creating a script which goes off of this layout:

ScreenGui or Chat Command enable a BoolValue. A script reads off of the BoolValue to detect a change.

But when I run it, if I use the Chat Command then the BoolValue activates and the program works. If I use the ScreenGui, the BoolValue appears to change but yet the script does not activate. Does anyone know why this is? (I may not have described it the best, so please ask questions about the scripts if you have any)

May you please show the scripts that you are using, it’s pretty difficult to come up with an answer without seeing how you are accessing/returning the BoolValue.

Also, a common mistake I see by many programmers is that they forget to use BoolValue.Value when changing/returning the value, please make sure you are using .Value.

Are you confusing game.StarterGui with game.Players.LocalPlayer.PlayerGui?

Also consider using Attributes instead of value instances. They’re more efficient and easier to use.

Are you using a local script for the ScreenGui to change the BoolValue? LocalScripts won’t change the value server-sided unless you have a RemoteEvent connected to it.

Share some code so that we can assist you.