How to throw a tool in the direction of the mouse, specific distance

This is all I have. Currently I’ve made it throw the direction the character is facing as I’m unsure how to get it to throw in the direction of the mouse position.

Attacking = true
Character.Humanoid:LoadAnimation(Knife.ThrowAnimation):Play()
wait(1.1)
Creator.Value["RightHand"]["RightGrip"].Enabled = false
Handle.Anchored = true
local RootCF = HRP.CFrame
TS:Create(Handle, TweenInfo.new(.6, Enum.EasingStyle.Linear), {CFrame = RootCF * CFrame.new(0, 0, -100) * CFrame.Angles(math.rad(Handle.Orientation.X - HRP.Orientation.X),math.rad(Handle.Orientation.Y - HRP.Orientation.Y),math.rad(Handle.Orientation.Z - HRP.Orientation.Z)) * CFrame.fromEulerAnglesXYZ(0, -3.14, 0)}):Play()
wait(.6)
TS:Create(Handle, TweenInfo.new(.2, Enum.EasingStyle.Linear), {CFrame = RootCF * CFrame.new(0, 0, -100 - 5) * CFrame.Angles(math.rad(Handle.Orientation.X - HRP.Orientation.X),math.rad(Handle.Orientation.Y - HRP.Orientation.Y),math.rad(Handle.Orientation.Z - HRP.Orientation.Z)) * CFrame.fromEulerAnglesXYZ(0, -1.05, 0)}):Play()
wait(.2)
for i = 1,25 do
	Handle.CFrame = Handle.CFrame:Lerp(Character["RightHand"].CFrame * CFrame.new(0, 0, -2.25) * CFrame.fromEulerAnglesXYZ(3.14, 0, -1.5708), i / 25)
	task.wait()
end
Handle.Anchored = false
if Creator.Value.RightHand:FindFirstChild("RightGrip") then
	Creator.Value.RightHand.RightGrip.Enabled = true
end
Attacking = false