For some reason, there are many parts of my LocalScript that just don’t work sometimes. There are no errors in the output, it just occasionally does nothing. I put a snippet of my code below that could serve as an example for how it pretty much looks like.
spawn(function()
local Switch1 = Puzzle:WaitForChild("Switch1")
local Red = Switch1:WaitForChild("Red")
local Blue = Switch1:WaitForChild("Blue")
local Hitbox = Switch1:WaitForChild("Hitbox")
local Light = Switch1:WaitForChild("Light")
local Lasers = Puzzle:WaitForChild("Lasers")
local Bottom = Lasers:WaitForChild("Bottom")
local Top = Lasers:WaitForChild("Top")
local sdebounce1 = true
Hitbox.Touched:Connect(function(hit)
local h = hit.Parent:FindFirstChild("Humanoid")
if h and h == hum and sdebounce1 then
sdebounce1 = false
Light.Color = Color3.fromRGB(0, 60, 0)
script.Switch:Play()
script.Button:Play()
if Red.Color == Color3.fromRGB(160, 0, 0) then
Red.Color = Color3.fromRGB(60, 0, 0)
Blue.Color = Color3.fromRGB(0, 160, 160)
TS:Create(Bottom, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0), {Position = Vector3.new(0, 9.24, -1015.49)}):Play()
TS:Create(Top, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0), {Position = Vector3.new(0, 4.24, -1015.49)}):Play()
else
Red.Color = Color3.fromRGB(160, 0, 0)
Blue.Color = Color3.fromRGB(0, 60, 60)
TS:Create(Bottom, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0), {Position = Vector3.new(0, 4.24, -1015.49)}):Play()
TS:Create(Top, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0), {Position = Vector3.new(0, 9.24, -1015.49)}):Play()
end
task.wait(0.6)
Light.Color = Color3.fromRGB(0, 165, 0)
sdebounce1 = true
end
end)
end)
How would I make the script work 100% of the time?