Upgraded HumanoidDescription API

This a FANTASTIC QoL. Any chance these work for classic clothing items? I often use tinted versions of them for slight variance - the ability to use them with this API would be clutch.

1 Like

Yes, here is a private server link(We ripped it out after we saw it live earlier in the week)


The client and server side errors we receive from our 80+ something failing UGC podiums

1 Like

Right now, this doesn’t support classic clothing items. We considered adding them, but we were thinking of the balance between so many sub-instances and more flexibility. If there is enough demand we will probably add support.

4 Likes

Will Instance be filled when it releases?

2 Likes

Thanks for the answer! Would personally vote for + would love to see them work for classic clothing + custom classic faces:

Albeit “classic”, I often use them for additional details on both classic and non-classic NPCs (e.g. scars, freckles, shading, etc.). Would make the creation of custom NPCs significantly easier to implement.

The old function of :ApplyDescription didn’t use to replace a humanoiddescription if it didn’t have any changes from what I know. But this one destroys all sub-instances and re-creates them at all times.

1 Like

It seems like we will have trouble in situations where the description is already ready on the client, but our code doesn’t know that so it will yield forever waiting for the event to fire. Is that not the case? If it is the case, could we get a property to track this state as well?

4 Likes

Does this provide any way for developers to get the AccessoryDescription from the accessories themselves (such as an AccessoryDescription property inside the Accessory object)? Will accessories added to characters add/remove the AccessoryDescription automatically to the HumanoidDescription and if not, is there any way to do this?

Currently it’s impossible to get information about accessories worn by NPC’s without inserting it to the HumanoidDescription manually, something like this would be super useful for attribution, filtering, catalog systems and a long etc.

1 Like

Maybe add animation size and root motion? …

1 Like

There is something wrong but I don’t know what.

I thought at first that this would be something else, but I think it’s related to the new HumanoidDescriptions.

But it’s in a strange context.

Basically, if you do something like

game.Workspace.Rig.Humanoid:ApplyDescription(game.Workspace.Rig.Humanoid.HumanoidDescription)

new accessories won’t be added, but the HumanoidDescription will get re-created which is a bit confusing, but that behavior matches with the original one, except that it’s more confusing now to understand probably

Applying this at the same location, won’t work, but if the HumanoidDescription that you’re applying is at a different location then it will work

But this upgraded HumanoidDescription emits this different vibe that tells me that applying the description always works from any place, but it doesn’t seem to be the case

1 Like

also sometimes when I delete a HumanoidDescription on Studio and do Redo or Undo, I have the feeling that sometimes it copied all the sub-instances as duplicates :person_shrugging:

Not really. This is an extension of the existing HumanoidDescription, which is used to describe the look of a character (e.g. accessories, skin color, face, classic shirts, pants, etc).

If you wanted to store body part specific health information, you could use attributes of each part, or attributes stored under the humanoid.

Edit/Reply:

That is possible. You could make the actual character’s arm (for example) parts transparent, then create a fake arm model that falls off. You could also just remove the parts from the character Model.

I believe the .Instance property is only for custom accessories:

1 Like

Thank You - something new to me - appreciate it.
One more question:
I will be able to program (EG: an arm or leg) that once “it’s health” is zero - it falls off… but the rest of the player can continue ? (more parts can fall off later - if hit enough too)

Ohh… if one wants to make changes to the HumanoidDescription that is currently applied one should use :ApplyDescriptionReset now I get it. A really strange name it had me confused for a few seconds.

1 Like

This is already being worked on with Lua movement abillities, check this post out:
https://devforum.roblox.com/t/i-spot-a-luacharactercontroller-actor-characters-character-abilities-and-footplanter/3074054

This update completely broke my game, after a few hours I finally found out why: publishing your game to a different place automatically adds new body part and accessory descriptions, even if they are already added. This causes duplicates which makes trying to create a new humanoid model with the humanoiddescription error! My fix at the moment is saving to the main place and then manually deleting duplicates…

It would be great if this can be fixed ASAP!

2 Likes

Yep, something like this broke some things in my game too.

I store premade HumanoidDescriptions in ReplicatedStorage for easy creation of NPCs, and these objects all get added & potentially duplicated on subsequent studio opens. Wasn’t able to repro it in studio (which makes sense according to the rollout).

For me, the issue might be from using Players:CreateHumanoidModelFromDescription with these updated HumanoidDescription objects. That function seems to be failing now.

Need this fixed or reverted ASAP.

2 Likes

Can I have my place whitelisted for these features to be enabled? I can benefit from this new API greatly

This change has created issues in our avatar editor in Berry Avenue. The

HumanoidDescription:GetAccessories(true)

function seems to be inconsistent and doesn’t return any accessories when the character has some on. It works fine when they first join the game but breaks when they equip / unequip an item and a new HumanoidDescription is applied. This is how we handle getting the information from the new description on the client:

humanoid.ChildAdded:Connect(function(child)
	if not child:IsA('HumanoidDescription') then return end

	handleDescription(child)
end)

Seems to only be an issue on the client, printing description:GetAccessories(true) on the server prints out all the items correctly.

The issue can be seen when you go to the ‘Equipped’ section in the avatar editor and unequip something - all the accessories disappear.

1 Like

Was gonna ask if this new thing supports R6, but I think this indirectly answers my question… or, at least, implies that it doesn’t.