Hello, I would like to find out how to keep a script from re-executing until the script finishes its initial task. Basically, I have a signal with a countdown timer and I would like for it to not get hit again until it turns yellow after the countdown.
Would you mind sharing your code?
not at all
sp = script.Parent.Parent.Signal.Signal1
local MS = sp.MS.SurfaceGui.TextLabel
function Signal()
if MS.Visible == false then
MS.Visible = true
end
if sp.BY.BrickColor == BrickColor.Yellow() then
sp.BY.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
end
sp.BG.BrickColor = BrickColor.Black()
sp.BG.Material = Enum.Material.Glass
sp.TG.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
wait(0.5)
sp.BR.BrickColor = BrickColor.Red()
sp.BR.Material = Enum.Material.Neon
sp.TR.BrickColor = BrickColor.Red()
sp.TR.Material = Enum.Material.Neon
for i = (15), 0, -1 do
MS.Text = tostring(i)
wait(1)
end
MS.Visible = false
sp.BR.BrickColor = BrickColor.Black()
sp.TR.Material = Enum.Material.Glass
sp.TR.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
wait(0.5)
sp.TY.BrickColor = BrickColor.Yellow()
sp.TY.Material = Enum.Material.Neon
sp.BG.BrickColor = BrickColor.Green()
sp.BG.Material = Enum.Material.Neon
wait(15)
sp.TY.BrickColor = BrickColor.Black()
sp.TY.Material = Enum.Material.Glass
wait(0.5)
sp.TG.BrickColor = BrickColor.Green()
sp.TG.Material = Enum.Material.Neon
end
script.Parent.Touched:connect(Signal)
sp = script.Parent.Parent.Signal.Signal1
local MS = sp.MS.SurfaceGui.TextLabel
local db = false
function Signal()
if MS.Visible == false then
MS.Visible = true
end
if sp.BY.BrickColor == BrickColor.Yellow() then
sp.BY.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
end
sp.BG.BrickColor = BrickColor.Black()
sp.BG.Material = Enum.Material.Glass
sp.TG.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
wait(0.5)
sp.BR.BrickColor = BrickColor.Red()
sp.BR.Material = Enum.Material.Neon
sp.TR.BrickColor = BrickColor.Red()
sp.TR.Material = Enum.Material.Neon
for i = (15), 0, -1 do
MS.Text = tostring(i)
wait(1)
end
MS.Visible = false
sp.BR.BrickColor = BrickColor.Black()
sp.TR.Material = Enum.Material.Glass
sp.TR.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
wait(0.5)
sp.TY.BrickColor = BrickColor.Yellow()
sp.TY.Material = Enum.Material.Neon
sp.BG.BrickColor = BrickColor.Green()
sp.BG.Material = Enum.Material.Neon
wait(15)
sp.TY.BrickColor = BrickColor.Black()
sp.TY.Material = Enum.Material.Glass
wait(0.5)
sp.TG.BrickColor = BrickColor.Green()
sp.TG.Material = Enum.Material.Neon
debounce = false
end
script.Parent.Touched:connect(function()
if db == false then
db = true
Signal()
end
end)
Try that, I haven’t tested it yet so tell me if there are any errors. Also, my apologies for the bad indentation.
its alright, I don’t mind considering I do the same thing at night.
worked perfectly, thanks. Only bug was that it refuses to execute again after its done
Glad I could be of use. Mark it as the solution if it is.
sp = script.Parent.Parent.Signal.Signal1
local MS = sp.MS.SurfaceGui.TextLabel
local db = false
function Signal()
if MS.Visible == false then
MS.Visible = true
end
if sp.BY.BrickColor == BrickColor.Yellow() then
sp.BY.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
end
sp.BG.BrickColor = BrickColor.Black()
sp.BG.Material = Enum.Material.Glass
sp.TG.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
wait(0.5)
sp.BR.BrickColor = BrickColor.Red()
sp.BR.Material = Enum.Material.Neon
sp.TR.BrickColor = BrickColor.Red()
sp.TR.Material = Enum.Material.Neon
for i = (15), 0, -1 do
MS.Text = tostring(i)
wait(1)
end
MS.Visible = false
sp.BR.BrickColor = BrickColor.Black()
sp.TR.Material = Enum.Material.Glass
sp.TR.BrickColor = BrickColor.Black()
sp.TG.Material = Enum.Material.Glass
wait(0.5)
sp.TY.BrickColor = BrickColor.Yellow()
sp.TY.Material = Enum.Material.Neon
sp.BG.BrickColor = BrickColor.Green()
sp.BG.Material = Enum.Material.Neon
wait(15)
sp.TY.BrickColor = BrickColor.Black()
sp.TY.Material = Enum.Material.Glass
wait(0.5)
sp.TG.BrickColor = BrickColor.Green()
sp.TG.Material = Enum.Material.Neon
end
script.Parent.Touched:connect(function()
if db == false then
db = true
Signal()
db = false
end
end)
Here is the new code, this should work.
Yes, it did indeed work, thank you so much for your time and help. Have a great day/night!