I have a problem where a value freezes due to another value being true.

while true do
	Wait(1)
	if game.Workspace.SmokeBreak.Broken.Value == false then
		if script.Parent.Parent.Reactorvalve.Value == true then	
		 if script.Parent.Parent.Releasing.Value == true then
			script.Parent.Value = script.Parent.Value+3
		    end
		if script.Parent.Parent.Releasing.Value == false then
			if script.Parent.Value > 0 then
				script.Parent.Value = script.Parent.Value-1
			end
		end
	end
	if game.Workspace.SmokeBreak.Broken.Value == true then
			if script.Parent.Parent.Releasing.Value == true then
				if script.Parent.Parent.Reactorvalve.Value == true then	
			     script.Parent.Value = script.Parent.Value+6
				end
				end
	if script.Parent.Parent.Releasing.Value == false then
		if script.Parent.Value > 0 then
			script.Parent.Value = script.Parent.Value-1
		end
		
	 end
	end
end


end 

Now, it rises and falls just fine when reactorvalve is true, but when reactorvalve is false, it freezes up in place. No errors.

Ignore smokebreak, that's just the script for when the flare tower "breaks", so to speak, and so the emissions and gaslevel rise faster.