Their are two problems actually one: My bullet isn't facing straight when I shoot it for some reason and two my bullet will stop for a second then move. I'm not sure why but
LocalScript
function createbullet()
local flash = cam[currentgun.Name][currentgun.Name].Flash.CFrame
rep.Events.Bullet:FireServer(mouse.hit, flash, p)
end
ServerScript
game.ReplicatedStorage.Events.Bullet.OnServerEvent:connect(function(player, mousehit, flash, p)
local bullet = game.ReplicatedStorage.Bullet:Clone()
bullet.CFrame = CFrame.new(flash.p)
local bv = Instance.new("BodyVelocity", bullet)
bv.MaxForce = Vector3.new(1e8, 1e8, 1e8)
bv.Velocity = mousehit.lookVector * 500
bullet.CanCollide = false
bullet.Parent = workspace
game.Debris:AddItem(bullet, 2)
Any help will be appreciated

3 comments
Output: Can only call Network Ownership API on a part that is descendent of Workspace
Fixed; forgot that you can only set network ownership when the part exists in the workspace
Letting the server calculate the physics will yield the same delayed looking result for the shooting client. The clients should create their own projectiles and the server its own.