TS is pretty easy actually, and much better than any other forms of interpolation:
local ts = game:GetService("TweenService")
local ti = TweenInfo.new(0.5, Enum.EasingStyle.Circular, Enum.EasingDirection.Out)
local tweenTab = {Position = Vector3.new(0, 5, 0)} --the position to move to
local tween = ts:Create(laser, ti, tweenTab)
tween:Play()
--make your tween repeat forever (set to negative number)
local ti = TweenInfo.new(0.5, Enum.EasingStyle.Circular, Enum.EasingStyle.Out, -1)
--make your tween reverse (animate backwards after finished)
local ti = TweenInfo.new(0.5, Enum.EasingStyle.Circular, Enum.EasingStyle.Out, -1, true) --add true
--how much time between each repeat?
local ti = TweenInfo.new(0.5, Enum.EasingStyle.Circular, Enum.EasingStyle.Out, -1, true, 0.5) --0.5 secs
That’s a basic overview. You can change it however you’d like.