New API For Equipping Assets on Humanoid Player Avatars



I don’t think this is a bug. When you try to get a humanoid description from a banned user ID it throws an error. Seems like it doesn’t want you loading banned ID’s all around, but that’s just how I see it. I will say it’s pretty annoying that it errors instead of just putting an empty tshirt in.


This error involves banned assets (I’m only certain about TShirts specifically for now) not users. The issue is that it will break scripts instead of just showing a blank image.

split this topic #57

7 posts were merged into an existing topic: Off-topic and bump posts


My character seems to randomly reset when I use this sometimes.


This is awesome, and I’ve already got used to it. Could we get another property for HumanoidDescription though? We currently have [BodyPartHere]Color, but we don’t have [BodyPartHere]Material, and I’d like to be able to set the material with ease if I could do so using this method.


Thanks for the suggestion. We’ll be looking into adding more features


Where has this feature been all my life?

Is it still in Beta or it works perfectly for a new released feature?

Is this feature reliable?


It’s released.

Not with R15. I finally tried it with R15 a moment ago and 3/5 times it got used I died. Very unreliable for that at the moment.


That is very disappointing but I am not surprised.

Thank you for the Info.

It’s a pretty good feature nonetheless but they need to fix the part where the Player dies because of it.


This page is missing all of the Funtions for it.

I’m not sure what OutfitId is and where to get it which is used for this GetHumanoidDescriptionFromOutfitId

and for Body Parts and Animation

we get the Ids from this right?

@Extuls, I’m impatience but these Information is suppose to be available from the get go, but I think you would be able to answer my questions.


Would be nice if trying to use it on characters with overridden Animate scripts would throw an exception or ignores attempts to overwrite animations instead of throwing an error. I was planning on using this since it makes a couple things much cleaner in my project, but cannot because of how it currently handles with StarterPlayer and StarterCharacter scripts.

I assume this fix is planned, but am voicing that I’d appreciate it if there was more adaptability with the object sooner rather than later!


It seems that, since this update, a new folder will be created under StarterPlayer named ‘HumanoidDefaultAssets’

Considering the API is used with a HumanoidDescription and doesn’t use such a folder structure, and the folder is only used to store arbitrary data (it’s not replicated into the Player/Character), StarterPlayer seems like an odd location. Why is this information added to the data model and not kept in one of the existing player scripts?


we’re looking into the bug causing players to die. Do you have any consistent repro steps?


Every outfit (also called costumes) you save has its own ID. You can use to get outfitIDs of any user, just replace 39793489 with their userId.


I see, but for example I MUST use new animation script for my own needs.
I would love if HumanoidDescription could just ignore animations.


Can you apply custom accessories saved as models or does this only work with Roblox-made accessories?


I have used my own decal for a face and it loaded.
Trying someone else’s offsale decal didn’t load. I believe it needs to be inserted pretty much like original content.


I’m sure that’s intended; it most likely uses InsertService which only lets you insert models that you own – was just wondering if I saved an Accessory as a model if it would error or actually let players equip the it. Pretty neat that it works with custom decals also.


Yeah, I saw someone test it with an accessory.
Since it has InsertService behavior, you must own it (of course).

Packages probably need the same model hierarchy.

local players = game:GetService("Players"):GetPlayers()
local description = game:GetService("Players"):GetHumanoidDescriptionFromUserId(1)
for i = 1, #players do
	local character = players[i].Character
	if character then
		local humanoid = character:FindFirstChildOfClass("Humanoid")
		if humanoid then

I ran that code in the developer console 10 times just now as an R15 character on a blank baseplate and all 10 times I died.