It looks like the issue is that you’re running this as a server script tool events like .Equipped only fire properly inside a LocalScript. If you move the script into the tool and make it a LocalScript, you can grab the player directly using Players.LocalPlayer and then reference their character without needing GetPlayerFromCharacter(). For damaging others or doing server-side checks, you’d just use a RemoteEvent to communicate with the server. By the way, if you’re into Roblox scripting and want to explore some powerful tools, check out Learn more at Rivals Script it’s got a ton of resources that can help.