Tween = {} TweenWeld = function(Weld, Stop, Step,Wait) if(Wait == nil)then Wait = false end for i,v in pairs(Tween) do if(v == Weld)then table.remove(Tween,i) end end local Moving = Wait coroutine.resume(coroutine.create(function() table.insert(Tween,Weld) local Start = Weld.C0 local X1, Y1, Z1 = Start:toEulerAnglesXYZ() local Stop = Stop local X2, Y2, Z2 = Stop:toEulerAnglesXYZ() for i = 0, 1, Step do local Stopped = true for i,v in pairs(Tween) do if(v == Weld)then Stopped = false end end if(Stopped == true)then Moving = false return end Weld.C0 = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i), (Start.p.Y * (1 - i)) + (Stop.p.Y * i), (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ( (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i), (Z1 * (1 - i)) + (Z2 * i) ) wait() end Weld.C0 = Stop Moving = false end)) while Moving do wait() end end function StopTween(Weld) for i,v in pairs(Tween) do if(v == Weld)then table.remove(Tween,i) end end end