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.
https://gyazo.com/8f92c2c2e16564ca6f0774ca0e26d9e8
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.

https://gyazo.com/0fd5e1520b7fd94894668a73bb39a04e

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.

2 Likes

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
    end
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.

2 Likes

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!

1 Like

Make sure to mark it as a solution!

1 Like

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.

3 Likes