HumanoidDescription breaks permanently if moderated or invalid assets are applied

A humanoid’s appearance can no longer be modified (is broken permanently) if moderated or invalid assets are applied through the HumanoidDescription system.

Repro steps:

  1. Modify Humanoid’s HumanoidDescription to include an invalid head (whether it’s Content Deleted or broken in some other way)
  2. Apply the HumanoidDescription to the Humanoid
  3. Notice that the Humanoid’s appearance is no longer modifiable through calls to additional calls to Humanoid:ApplyDescription() if on a Roblox Client (not studio). If using studio, a warning is printed, but the Humanoid’s appearance is still modifyable through additional calls to Humanoid:ApplyDescription()

Example of a package with a broken head: Mason the Luobu Pioneer - Roblox

What happens in Roblox Client (PC):

What happens in Studio:

As a developer, I expect the humanoiddescription system to not be so fragile. I also expect the behavior between Studio and Client to be the same. An asset can be moderated at any time, so even if I check that the asset isn’t moderated, it could become moderated between the time I checked and the time I apply the asset to a player’s humanoid. I’ve tested this on two separate windows PCs.

6 Likes

I’m having the same issue. Additionally, when the head breaks and I use ApplyDescription() it’s causing the character to constantly die over and over

This is the head that causes the death:

1 Like

Thanks for the report! We’ll follow up when we have an update for you!

1 Like

do you have a small test place rbxl file that you can give me which shows the issue?

i have made a place, see here: HumanoidDescription Head Breaking Issue - Roblox

The main code for the place is the following placed in a Script in Workspace:

local getHumanoidDescriptionBundle = require(game.ReplicatedStorage.getHumanoidDescriptionBundle)

game.Players.CharacterAutoLoads = false
 
local function onPlayerAdded(player)
	player.CharacterAppearanceLoaded:Connect(function(character)
		spawn(function() 
			wait(10)
			character.Humanoid:ApplyDescription(getHumanoidDescriptionBundle(675)) -- apply bundle with broken head
			wait(7)
			character.Humanoid:ApplyDescription(getHumanoidDescriptionBundle(202)) -- apply bundle with working head
		end)
	end)
	
	player:LoadCharacterWithHumanoidDescription(Instance.new("HumanoidDescription"))
end

game.Players.PlayerAdded:Connect(onPlayerAdded)

The above seems to function the same on Studio and Client (note that HumanoidDescription applications are happening on server though). Please let me know whether the above is not a good test. As it appears that there are no issues here

Hey @CalGamesDev, thanks for looking into this! I tested this again in the Roblox Client and it appears to be working now. I’ll mark this thread as resolved.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.