Here is a script that is similar in usage with the moving parts. This one works fine.
-- Variables
local TweenSerivce = game:GetService("TweenService")
local Pump = {
part1 = game.Workspace.Pumpkin1; -- Making a table for each part in workspace
part2 = game.Workspace.Pumpkin2;
part3 = game.Workspace.Pumpkin3;
part4 = game.Workspace.Pumpkin4;
part5 = game.Workspace.Pumpkin5
}
-- Making the Animation
local info = TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out)
local move1 = {Position = Vector3.new(208.31, -67.941, -405.28)}
local Move1 = {Position = Vector3.new(208.31, -70.301, -405.28)}
local pump1 = TweenSerivce:Create(Pump.part1,info,move1)
local Pump1 = TweenSerivce:Create(Pump.part1,info,Move1)
-- repeating process
local move2 = {Position = Vector3.new(201, -67.941, -396.95)}
local Move2 = {Position = Vector3.new(201, -70.301, -396.95)}
local pump2 = TweenSerivce:Create(Pump.part2,info,move2)
local Pump2 = TweenSerivce:Create(Pump.part2,info,Move2)
-- Reapeating again
local move3 = {Position = Vector3.new(208.31, -67.681, -387.81)}
local Move3 = {Position = Vector3.new(208.31, -70.301, -387.81)}
local pump3 = TweenSerivce:Create(Pump.part3,info,move3)
local Pump3 = TweenSerivce:Create(Pump.part3,info,Move3)
-- Again
local move4 = {Position = Vector3.new(215.07, -67.771, -377.43)}
local Move4 = {Position = Vector3.new(215.07, -70.301, -377.43)}
local pump4 = TweenSerivce:Create(Pump.part4,info,move4)
local Pump4 = TweenSerivce:Create(Pump.part4,info,Move4)
-- One last time...
local move5 = {Position = Vector3.new(208.31, -68.561, -366.86)}
local Move5 = {Position = Vector3.new(208.31, -70.301, -366.86)}
local pump5 = TweenSerivce:Create(Pump.part5,info,move5)
local Pump5 = TweenSerivce:Create(Pump.part5,info,Move5)
while true do
pump1:Play()
wait(0.5)
Pump1:Play()
wait(1)
pump2:Play()
wait(0.5)
Pump2:Play()
wait(1)
pump3:Play()
wait(0.5)
Pump3:Play()
wait(1)
pump4:Play()
wait(0.5)
Pump4:Play()
wait(1)
pump5:Play()
wait(0.5)
Pump5:Play()
wait(1)
end