Raycasting gun wont find a result

For some reason its just not getting a raycastresult at all and I have no idea why unless I literally shove the handle inside the NPC

--Services
local Players = game:GetService("Players")
local Debris = game:GetService("Debris")

--References
local Tool = script.Parent

local FireEvent = Tool.FireGun
local Handle = Tool.Handle
local Gunshot = Handle.Gunshot

local Character = nil
local Player = nil

local RayParams = RaycastParams.new()
RayParams.FilterType = Enum.RaycastFilterType.Blacklist

--Get Character and Player
Tool.Equipped:Once(function()
	Character = Tool.Parent
	Player = Players:GetPlayerFromCharacter(Character)
	RayParams.FilterDescendantsInstances = {Character, Handle}
end)

FireEvent.OnServerEvent:Connect(function(Fired, MousePos)
	--Check the shooter is our player and the tool is equipped
	if Fired ~= Player then Fired:Kick() return elseif Tool.Parent ~= Character then Player:Kick() return end
	
	Gunshot:Play()
	
	local Muzzle = Instance.new("PointLight")
	Muzzle.Color = Color3.fromRGB(255, 235, 7)
	Muzzle.Brightness = 2
	Muzzle.Range = 17
	Muzzle.Parent = Handle
	Debris:AddItem(Muzzle, .2)
	
	local Result =  workspace:Raycast(Handle.Position, MousePos.Position, RayParams)
	if not Result then return end
	
	print("valid result")
	if Result.Instance.Parent then
		local Humanoid = Result.Instance.Parent:FindFirstChild("Humanoid")
		if Humanoid then
			Humanoid:TakeDamage(30)
		end
	end
end)

https://gyazo.com/d548f32dc299f74967b388fbd0a9d0f5

try to pass the MousePos Position immediately.

MousePos is simply the Hit property of the players mouse object which is a CFrame just to be clear.

local function Shoot(_,UserInputState)
	if UserInputState == Enum.UserInputState.Begin then
		--Tell server we are shooting and mouses CFrame
		FireEvent:FireServer(Mouse.Hit)

ik, by what i meant is, try to pass the mouseHit position immediately when firing the RemoteEvent to the server.

FireEvent:FireServer(Mouse.Hit.p)

Doesn’t seem to have any effect.

why don’t you use Unit instead?
for example :

local Result =  workspace:Raycast(Handle.Position, (MousePos.Position - Player.Character.HumanoidRootPart.Position).Unit * 100 , RayParams)

Appears to fix it but only if I am my mouse close to the centre of the Target, if its just barely over it will not land for some reason.
https://gyazo.com/d92650d968b08a7e7eb7f62ca4aa1ad2

The 2nd parameter is a Vector3