What I want is when the script runs and everything finishes, I want it to repeat itself forever and keep starting from beginning one finished.
local BPD = game.Workspace.BasePlate -- Changes the name of BasePlate in the script.
wait(5)
if BPD.BrickColor == BrickColor.White() then -- If the BasePlate (BPD) is White then,
wait(2)
BPD.BrickColor = BrickColor.Yellow()
wait(2)
BPD.BrickColor = BrickColor.Black()
wait(2)
BPD.BrickColor = BrickColor.Red()
wait(2)
BPD.BrickColor = BrickColor.Blue()
wait(2)
BPD.BrickColor = BrickColor.Gray()
wait(2)
BPD.BrickColor = BrickColor.DarkGray()
wait(2)
BPD.BrickColor = BrickColor.Green()
wait(2)
repeat
end

2 comments
Use while wait() do, it's the same has while true and wait() do but shorter
Or even better, while wait(2) do; That way you can remove the wait(2) from the other segment