(starts from red then go to blue on rainbow patter)
this is how it looks like so far
the problem is they dont go at the same time making the particles go at a random order
Script
local fountain = script.Parent
for i, v in pairs(fountain:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = false
end
end
task.wait()
while wait(0.3) do
for i, v in pairs(fountain.A:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
wait(0.2)
v.Enabled = false
end
end
wait(0.3)
for i, v in pairs(fountain.B:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
wait(0.2)
v.Enabled = false
end
end
wait(0.3)
for i, v in pairs(fountain.C:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
wait(0.2)
v.Enabled = false
end
end
wait(0.3)
for i, v in pairs(fountain.D:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
wait(0.2)
v.Enabled = false
end
end
wait(0.3)
for i, v in pairs(fountain.E:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
wait(0.2)
v.Enabled = false
end
end
end
The for loop is waiting 0.3, then moving on the to the next ParticleEmitter, so they won’t happen all at once. You could use coroutines.
Also, at some points you’re using task.wait() and then wait()?? Please stick with task.wait().
-- this is probably not performant because of the insane amounts of coroutines generated.
local fountain = script.Parent
for i, v in pairs(fountain:GetDescendants()) do
if v:IsA("ParticleEmitter") then
v.Enabled = false
end
end
task.wait()
while task.wait(0.3) do
for i, v in pairs(fountain.A:GetDescendants()) do
if v:IsA("ParticleEmitter") then
coroutine.wrap(function()
v.Enabled = true
task.wait(0.2)
v.Enabled = false
end)
end
end
task.wait(0.3)
for i, v in pairs(fountain.B:GetDescendants()) do
if v:IsA("ParticleEmitter") then
coroutine.wrap(function()
v.Enabled = true
task.wait(0.2)
v.Enabled = false
end)
end
end
task.wait(0.3)
for i, v in pairs(fountain.C:GetDescendants()) do
if v:IsA("ParticleEmitter") then
coroutine.wrap(function()
v.Enabled = true
task.wait(0.2)
v.Enabled = false
end)
end
end
task.wait(0.3)
for i, v in pairs(fountain.D:GetDescendants()) do
if v:IsA("ParticleEmitter") then
coroutine.wrap(function()
v.Enabled = true
task.wait(0.2)
v.Enabled = false
end)
end
end
task.wait(0.3)
for i, v in pairs(fountain.E:GetDescendants()) do
if v:IsA("ParticleEmitter") then
coroutine.wrap(function()
v.Enabled = true
task.wait(0.2)
v.Enabled = false
end)
end
end
end