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)