My bullet doesn't face the direction it's supposed to be pointing at

Apparently if you add 2 Vector3 values then divide it by 2 you can get the very center position of start to finish.

But for some reason this doesn’t work:

local bullet = createBullet()
local origin = CFrame.new(tool.Handle.Position) * CFrame.new(0,0,-1)
bullet.CFrame = origin
local blood = game.ServerStorage.BulletStuff.bA:Clone()
blood.Parent = bullet
local pointDirection = (origin.Position+MouseHit.Position)
bullet.CFrame = CFrame.new(origin.Position, (pointDirection/2).Unit*25)
fireBullet(bullet, char, blood)

instead of doing origin.Position + MouseHit.Position try using only Mouse.Hit to get the end position.
e.g

local endPoint = mouse.Hit.Position
bullet.CFrame = CFrame.new(origin.Position, EndPoint)

This utilizes the lookAt() function to orient the bullet towards the end position.

If I’m correct, origin should simply be tool.Handle.Position. This is how I’ve been doing it with my gun systems.