Tween dash laggy NPC

I’m writing a dash script for my npc so it can dodge attacks but the method I used for the player dash seems to lag the npc and the tween is delayed.

I have looked for a similar topic on the devforum but didn’t find anything useful. As I was reviewing this I was wondering should I continue to use tween for ai dash or use an animation.

local function Dash(direction,Dash)
	if direction == "left" then
		Dash:Play()
		local tween = Tween:Create(trackHRP,TweenInfo.new(.1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out),{Velocity = trackHRP.CFrame.RightVector * -200}):Play()
		wait(.5)
		Dash:Stop()
	elseif direction == "right" then
		Dash:Play()
		local tween = Tween:Create(trackHRP,TweenInfo.new(.1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out),{Velocity = trackHRP.CFrame.RightVector * 200}):Play()
		wait(.5)
		Dash:Stop()
	elseif direction == "forward" then
root:SetNetworkOwner(Players)
		local tween = Tween:Create(trackHRP,TweenInfo.new(.1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out),{Velocity = trackHRP.CFrame.LookVector * 200}):Play()
		Dash:Play()
		wait(.5)
		Dash:Stop()
	elseif direction == "backward" then
		Dash:Play()
		local tween = Tween:Create(trackHRP,TweenInfo.new(.1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out),{Velocity = trackHRP.CFrame.LookVector * -200})
		wait(.5)
		Dash:Stop()
	end
end