Argument variable is mouse
local Arrow=Instance.new'Part'
Arrow.Size=Vector3.new(.1,.1,1)
Arrow.CanCollide=false
Arrow.BrickColor=BrickColor.new'Brown'
Arrow.CFrame=Player.Character.HumanoidRootPart.CFrame+Argument.Origin.lookVector
local BodyForce=Instance.new'BodyVelocity'
BodyForce.Velocity=Argument.Origin.lookVector*50 -- this is probably what needs to be changed
BodyForce.Parent=Arrow
Arrow.Parent=workspace
I think the problem is that the arrow is heading to the mouse position that is very far away. What I mean is that it ignores the parts that are closer to the mouse... Let me just give you an example:
---- = arrow trail
[] = part
o = Position the arrow is heading
How it is currently:
----------------[]-------------o
How I want it to be:
--------------o[]
In-game:
https://gyazo.com/a1ec1fe268fe72e0322f0e697e2c2bc2
I would appreciate any help, thanks.

2 comments
the simple fix would be playing the game from 1st person
or you could use raycasting to point the arrow towords the first object the ray hit that would fix it i think