Why does this humanoid behave like this?

I’m using a custom animation script: Which uses an external humanoid to fire its .Running/.Jumping events and activate said animations.

These are two separate humanoids, the first one is the beast, the second is the player and its the player that’s controlling the beasts animations. The two models are then welded together. But this is causing a huge problem.

Looking at the video, the animation seems to stutter and even go against the animation it was suppose to do and cause some horrible physics and hitboxes to occur. I’ve separated them and not use a weld and it seems to be working perfectly well.

This is how it is suppose to act, however, it is not attached to the player (no weld). I have done everything to my knowledge, I made all CanCollide properties false (but the head always becomes automatically true again), made all parts massless, and even made collision groups that do not collide against each other. Is there a way this could be fixed? Or is it hard coded into Roblox for humanoids to act this way.

1 Like

Ok, so here’s what you can do:

local character = ... -- localplayer character
RunService.Stepped:Connect(function() -- only works per stepped
    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then part.CanCollide = false end

It disables collisions every step. Just enable collisions with the beast. That’s really the only way you can achieve something like this, because humanoid automatically enabled collisions.

1 Like

The problem still seems to occur, its definitely something to do with the weld, however it has solved the head collision problem.

Can you post a gyazo of what’s happening?

Edit: Also try disabling the beasts collisions in the same manner.

Okay so it turns out that the issue has now been fixed, I had to make the HumanoidRootPart massless equal false! Very odd behaviour but it works!

Make sure to mark it as a solution!

Yeah, I really don’t like working with Humanoids.

Pretty much everything you do with a Humanoid is going to be a hack and that would include your current use case which is to attach another Humanoid to a player character’s Humanoid. There are going to be two fairly major issues you need to address, which is that the attached Humanoid will attempt to apply its own weight and force.

To prevent the beast from applying its own weight, make use of the Massless property. To prevent it from attempting to apply its own Humanoid forces to the character, change its HumanoidStateType to Physics. This should get you in a good spot as far as current Humanoids go.