I made a module so that it would be easier for me to fire functions for a music game.
But Im having an issue where, the waits inside of the function make the script only run one function at a time.
How would I fix this?
module:
function module.slider(zone)
if zone == "zoneL" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneL.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneL.Orientation
clonedAttack.Size = zoneL.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneR" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneR.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneR.Orientation
clonedAttack.Size = zoneR.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneU" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneU.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneU.Orientation
clonedAttack.Size = zoneU.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneD" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneD.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneD.Orientation
clonedAttack.Size = zoneD.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
end
task.spawn(function()
function module.slider(zone)
if zone == "zoneL" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneL.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneL.Orientation
clonedAttack.Size = zoneL.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneR" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneR.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneR.Orientation
clonedAttack.Size = zoneR.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneU" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneU.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneU.Orientation
clonedAttack.Size = zoneU.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneD" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneD.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneD.Orientation
clonedAttack.Size = zoneD.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
end
end)
actually nevermind, i think this one will work more efficiently
function module.slider(zone)
task.spawn(function()
if zone == "zoneL" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneL.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneL.Orientation
clonedAttack.Size = zoneL.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneR" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneR.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneR.Orientation
clonedAttack.Size = zoneR.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneU" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneU.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneU.Orientation
clonedAttack.Size = zoneU.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
if zone == "zoneD" then
local clonedAttack = sliderAttack:Clone()
clonedAttack.Position = zoneD.Position
clonedAttack.Parent = game.Workspace
clonedAttack.Orientation = zoneD.Orientation
clonedAttack.Size = zoneD.Size
for i = 1, 26 do
task.wait()
clonedAttack.Transparency += 0.04
clonedAttack.Size += Vector3.new(0,0,2)
end
task.wait(0.1)
clonedAttack:Destroy()
end
end)
end