Update, I just used this script, and it solves all problems with the flinging into walls, and even works going up a slope!
mover.MaxForce = Vector3.new(1, 0, 1) * 14000
mover.Velocity = hrp.CFrame.LookVector * 100
for i = 1, 8 do
task.wait(0.1)
mover.Velocity *= 0.7
end