HumanoidDescriptions don't apply on custom characters

Reproduction Steps

Create a custom character, try to apply a HumanoidDescription. Place file is in private

Expected Behavior

I expect the HumanoidDescription to be applied to my custom character

Actual Behavior

Nothing, the character spawns but the description isn’t applied

Issue Area: Engine
Issue Type: Other
Impact: High
Frequency: Constantly
A private message is associated with this bug report

if you can give me your place file I can take a look

Oh shoot, I thought it uploaded. Here’s the file

StarterCharacter (custom character) is in StarterPlayer, application script in ServerScriptService

Expected result would be for the body colors to all turn black

humanoiddescriptionbug.rbxl (107.1 KB)

Appreciate it!

if you are using a custom character, the humanoiddescription is ignored when the character is spawned as it’s assumed that you want you character to look like the starter character. What are you trying to achieve? Maybe I can recommend other ways to do it?

This StarterCharacter is meant to have its body part colors changed, and animations changed as well. There doesn’t seem to be a super simple way to replace default Roblox animations if you aren’t using HumanoidDescriptions. I figured HumanoidDescriptions were the optimal way to go about this, instead of waiting for the character to spawn and then replacing the colors and animations manually through a server script, which feels like a hacky method. Do you have any better ideas?

In this situation the best thing would be to do it manually. The HumanoidDescription system works off asset ids. When you apply a HumanoidDescription and leave body part fields blank, that means that those parts should go back to the defaults (which means apply the default body parts from the default character). You could attempt to use the HumanoiDescription system, but you might have problems. You could apply your HumanoidDescription after auto spawning using the code below:

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(Character)
		if not Character.Parent then 
			Character.AncestryChanged:Wait()
		end
		Character:WaitForChild("Humanoid"):ApplyDescription(script.HumanoidDescription)
	end)
end)

no body parts will be changed as as far as the internal system is concerned, the starter character has the default body parts, so when applying a HumanoidDdescription which also wants default body parts, it won’t make any changes