Player face mouse not working

hello, i made a player face mouse script which works perfactily fine…until I equip a tool, it makes my character move weird and I go faster from behind, my character is fine without the tool, but when I equip the gun, my character starter losing a sort of balance. how would I fix this?
the script:

local Player = game.Players.LocalPlayer
local Character = Player.Character
local Root = Character:WaitForChild("HumanoidRootPart")

local Mouse = Player:GetMouse()
local RunService = game:GetService("RunService")

RunService.RenderStepped:Connect(function()
	local RootPos, MousePos = Root.Position, Mouse.Hit.Position
	Root.CFrame = CFrame.new(RootPos, Vector3.new(MousePos.X, RootPos.Y, MousePos.Z))
end)

Turn off humanoid autorotate when the gun is equipped. The rotating feature is what causes the speed glitch.