You’re using the roblox classic sword? Did you possibly choose the wrong one…? Use the one that’s made by ROBLOX themselves. The others might be a virus.
Try just deleting the current sword and putting it back in from the toolbox. Also scan your game for viruses by using anti-virus plugins that are confirmed.
Well, that error is to be expected. It’s obvious that OP doesn’t have the script as a direct descendant of the workspace, rather a descendant of a part, which does have a Touched event.
I’m not 100% sure why, but the reason this is happening is because if you directly equip a tool that isn’t a descendant of the player’s backpack, it breaks the tool. If you first clone the sword, set it as a parent of the Player’s backpack, and then equip that clone, the tool will function properly.
For example:
local Players = game:GetService('Players')
script.Parent.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if not player then return end
local humanoid = hit.Parent:WaitForChild("Humanoid")
local backpack = player:WaitForChild('Backpack')
local sword = game:GetService("ReplicatedStorage").ClassicSword:Clone()
sword.Parent = backpack
humanoid:EquipTool(sword)
end)