BodyVelocity weird stop while moving

https://gyazo.com/5dba0b1f18d21449afb3783b67b7cfa9
in the gif the bullet had this weird stop while it just started, its supposed to go smooth out of the animation, i remember this happening but it wasnt a big deal to me, but right now im rlly trying to fix it anyone knows wats causing the problem or wat may be the case?
Here’s the script for the whole bullet :

function module.NormalBullet(Wait,c,Time,Power)
	spawn(function()
		wait(Wait)
		local a = script.NormalBullet:Clone()
		local p = c.HumanoidRootPart.CFrame*CFrame.new(0,0,-50).p
		a.Parent = workspace
		a:SetNetworkOwner(nil)
		local bv = Instance.new("BodyVelocity",a)
		bv.MaxForce = Vector3.new(1e8,1e8,1e8)
		bv.Velocity = Vector3.new(0,0,0)
		
		local w = Instance.new("Weld",a)
		a.Parent = workspace
		w.Part0 = c.RightHand
		w.Part1 = a
		w.C0 = w.C0*CFrame.new(0,0,0)
		
		wait(Time)			
		
		w:Destroy()
		a.CFrame = CFrame.new(a.Position,p)	
		bv.Velocity = a.CFrame.LookVector*Power
		wait(.3)
		bv:Destroy()
		wait(.25)
		a:Destroy()
	end)		
end

This to me looks like the bullet is transfering network ownership from player to the server. You can fix this by doing

part:SetNetworkOwner(player) -- or nil to make it the server

For reference

i just did but sadly it doesnt work

https://gyazo.com/cc1db26fc9fa204dd38f161053ac8703
Didn’t manage to fix the problem, but im desperate for a quick fix so i did it the hard way, also could be a possible answer to anyone who saw this post.
here’s the method i used

a.CFrame = CFrame.new(a.Position,p)	
bv.Velocity = a.CFrame.LookVector*-.1
wait(.1)
bv.Velocity = a.CFrame.LookVector*Power

purposely added a slow movement before the real one came in, since the weird stop came in whenever the object started moving