Need help making a morph!

No idea how to attach these meshes to the lower leg like in the example.


Any help would be appreciated!

What have you tried so far? Did it work? What about it didn’t work?

Could you provide a more explanatory description on how you want this concept to work? Are there any gifs, other pictures, or videos you can provide to us so we can understand what you exactly want to achieve?

1 Like

Humanoid has a function ReplaceBodyPartR15 which takes two arguments, first being the part you want to change and second being the part you want to change it to.

ReplaceBodyPartR15 ( BodyPartR15 bodyPart , Instance part )

You can use it something like this:

humanoid:ReplaceBodyPartR15(character.RightLowerLeg, your_right_lower_leg_part)

The wiki says that this feature is pending. However, it may be outdated/not updated.

You can check for yourself here:

1 Like

This function is currently live. The release notes aren’t updated.


The old wiki is no longer updated at all as far as I know, you should be checking the new wiki which shows that this is live.


I found out that if you temporarily parent the player’s humanoid to nil you can modify the entire model/rig however you want it as long as the head is connected with the torso when adding the humanoid back.
You can even completely replace the player model with something else.
I tried it myself and it worked perfectly fine, it didn’t even break any scripts, animations, everything still worked.
Just parent the humanoid to nil for like 1/10 of a second.

Why do I get the feeling like this is an unnecessary hack? It sounds like this is bound to run into an edge case of some kind. The only thing that’s keeping it from doing so is the fact that references to the Humanoid object exist in the character scripts.

I don’t see it a a unnecessary hack, it works perfectly fine.
Parenting the humanoid to nil will temporarily disable it preventing the player from dying.
I would use this if I wanted to morph the player into something entirely different without breaking it’s scripts or killing it.
Guis also won’t reset.

You can force the death state of the Humanoid to be off on both the client and the server to prevent the death state from activating (which is equally a hack of sorts). That doesn’t really hit edge cases unlike changing the Parent of the Humanoid though, which again only works because scripts hold references to the actual humanoid object.

If you don’t have a reference to the Humanoid, your code will break or not function properly. WaitForChild is also capable of solving the issue by yielding the thread until the specified object is found. I’ll note it for later though, I’d like to personally try it.

LayerCollector objects have a property called ResetOnSpawn, which is an isolated version of ResetGuisOnSpawn for StarterGui. Any Gui that has this property set to false will not reset upon respawning. This is a non-problem.