Humanoid:EquipTool() not working

So. Let’s start. I’m making an FPS game, and the guns are tools. To make the tools permanently equipped, I disabled the backpack using coregui (which also disables pressing 1 to equip/unequip), and wrote this script:

game:GetService('Players').PlayerAdded:Connect(function(Player)
       Player.CharacterAdded:Connect(function(Char)
             Char:WaitForChild('Humanoid'):EquipTool(game:GetService('ServerStorage'):WaitForChild('M4A1'):Clone())
      end)
end)

It works with tools with handles, but tools with requiresHandle off, it just puts the tool in the character and doesn’t fire equipped. But I put a custom welding script in the tool, and that script doesn’t work either.

You might need to create your own custom Handle part for it to work?

There is no handle, there’s a part called Grip. Also, Tool.RequiresHandle is set to false.