you simply need to place the script inside the starterplayerscripts instead inside the starterplayer itself
i’m very confused at your ways so i’ll explain a more simpler way to execute this without much unease towards complexity
you need to add a simple part, make it invisible after testing, you can color it red to make it distinctive, place it on the center top of the goomba like NPC, weld it make it not collide but with cantouch turned on, make sure it’s not anchored and has archivable if your that type of guy to turn archivable off
add a script to it, with the touch function but instead if it detects a hit.Parent.Humanoid touching it, it destroys it’s parent and then your done
you’d do something like put it in StarterCharacterScrips, then change the variable to the part to something like script.Parent:WaitForChild("KillPart")
currently, you’re using script.Parent to reference the part to touch because the script is in the part
instead, since the script would now be directly in the character, script.Parent will be the character, and you’d do script.Parent.KillPart to get the killpart in the character
you can put it in the player’s character by placing it in StarterCharacterScripts
if you want to leave it in the npc, you should connect to .Touched of the humanoidrootpart to see if it has touched the killpart that a player is holding
I’m trying to kill the NPC. Not myself lol
I rename it WeakPoint for not being confused.
The Killpart is still in the player :
Also I don’t get it how you want I put it in StarterCharacterScripts, how I"'m supposed to separate them?