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