Hi, I think this line might be the issue
EDIT: WHoops, posted before finishing >.<’ one moment please
if Value == true then ...
Since you set Value
to script.Parent.Value
, Value
is almost certainly going to hold a reference to an Instance. It’s probably a BoolValue
guessing from your script, but you can’t just compare a BoolValue
object to an actual boolean value. Instead you have to get the value that that BoolValue object holds, with the BoolValue.Value
property. Otherwise the condition will never evaluate to true
, same with the elseif condition, so neither clause ever runs.
So try
if Value.Value == true then ... elseif Value.Value == false then
Oh, and you should probably rename the Value
variable to something more descriptive, because it gets really confusing to talk about when talking about the variable Value
, the Instance named Value
and the Property of that Instance named Value
xD
BTW in future please copy/paste your code instead of using a screen shot, it’s more convenient for the people replying 
Also, if you feel like it the debugger is a very handy tool for this kind of bug. You can step through code 1 line at a time, and you’d have seen that the code never runs either the if or the elseif clause, which would hint you to the solution.
Also also, for this exact reason it’s best practice to not have an elseif in this case but an else, precisely because there’s a finite number of case all of which you want to check (either it’s true or false), so you can avoid this bug more easily that way.
Also also also, you don’t need to compare a boolean value to true
to figure out if it’s true, you can just use the boolean value itself. E.g. if Value.Value then ...
.
Hope this helps!