If you disable CanBeDropped and the player press delete in keyboard the tool will be unequipped. So now how to prevent this?
My guess is you can add a ChildAdded event to backpack and check if the child is the tool you want to stay equipped, if it is then call Humanoid:EquipTool(Tool)
game.Players.LocalPlayer.Backpack.ChildAdded:connect(function(Tool) if Tool.Name == "ToolName" then --Replace ToolName by the tool's name game.Players.LocalPlayer.Character.Humanoid:EquipTool(Tool) end end)
You can unbind actions using ContextActionService and the function UnbindAction(). I’m guessing you would just unbind unequip.
Unfortunately I cannot go more into detail because I don’t have a computer with me at the moment. For more info go to https://wiki.roblox.com/index.php?title=API:Class/ContextActionService