[HELP] Moving Parts (up&down) in a Field of Parts

Hi,
I would like the parts to move up & down and they should follow each other. so like a sine curve. but each neighboring part should move a little delayed.
But i only get all parts move :frowning:
Could someone help me?

my script:
local Folder = script.Parent
local Inside = Folder:GetChildren() – Assigning a local variable is faster.
for _, Search in ipairs(Inside) do
if Search:IsA(β€˜Part’) then
local amplitude = 3 – offset on both sides
local magnitude = 2.5 – time it takes to move from the bottom β†’ top, and top β†’ bottom
local part = Search
local defaultCFrame = part.CFrame
game:GetService(β€œRunService”).Stepped:Connect(function()
part.CFrame = defaultCFrame + Vector3.new(0, amplitude*math.sin(tick()*math.pi/magnitude), 0)
end)
end
end