Using remote events, the first variable that it returns isn’t the player’s character, but the player itself. You could try adding .Character to it, to refer to the character, and then body part.
You need to distinguish between character and player object. As Ender_BX already said, you need the player’s character, not the player object itself. You get the player’s character by doing the following:
local Character = playerToIgnore.Character or playerToIgnore.CharacterAdded:Wait()
Player.Character is a reference to the players character model. If there is none. Player.Character returns nil
after you have defined the variable character, you have to use Character.Torso instead of:
Also, Destroying the Head or the Torso is the same thing as doing Humanoid.Health = 0 I would recommend you just set the transparency to 1 for every body part.
Now, to morph it, make the specific body parts(canCollide = false) and morph then player by setting each part on each corresponding body part’s CFrame. Then, weld that part to it.