Applying HumanoidDescription with resetting character

I want to create a cleaner customise system than what I currently have.

At the moment, I use a Dummy model, and import the players assets onto, and when the player makes changes, it changes the dummy assets, and whne you hit done, the assets from the dummy can applied to the players humanoiddescription and their character is reloaded with this new humanoid description.

My question is how can I change this so it does it to your own player, without having to use a dummy? Games like Adopt Me do it, so it has to be possible. The thing is I don’t know of any way to change the description without reloading the character.

I’ve looked through the HumanoidDescription hub page, and found nothing that could help me :confused:

1 Like

I assume what they do is, reset the character each time a change is applied, and since things are done in the client (lack of security problem) the resetting should be near instant. You can reset it on the server I suppose, with a little loading problem between each change, but it shouldn’t be a problem.

I feel like that’s the only option, however in that game, changes are seamless. When I try, you can clearly see the character disappear and re-appear. I want seamless

Did you try doing it on the client? If the loading is still choppy, you can perhaps tp a blank character or something in place of the real character, just to replace him while he’s resetting.

Did I try doing what on the client? I have do everything on the server, as I’m HumanoidDescriptions, they can’t be altered from the client

You don’t need to use a Dummy at all, just having the HumanoidDescription Instance is more than enough. Just be sure to make it possible for other scripts to find it (if any of your other scripts need it, that is).

And when the Character respawns, just apply that Description. Also, I’m pretty sure it only changes that what has been changed in the Description itself.

Just a quick demo to show my problem tho

game.Players.PlayerAdded:Connect(function(player)
	local Character = player.Character or player.CharacterAdded:Wait()
	
	print('Ready')
	
	local HumanoidDescription = Character.Humanoid.HumanoidDescription
	
	HumanoidDescription.HairAccessory = 4685002624
	
	player:LoadCharacterWithHumanoidDescription(HumanoidDescription)
end)

it reloads my character, but my character goes back to spawn, instead of it being seamless

Ah I see, there is also another method to apply a description directly over the Humanoid.

Just get the Humanoid from the Character and call ApplyDescription with your HumanoidDescription, that way the Character should not respawn. Also, please use Humanoid:GetAppliedDescription() instead of getting it directly.

1 Like

That looks like it’ll work, however, when I teleport players to the room (I plan on using a backdrop for the customise scene) and other players also customise at the same time, their player will be visible as well.

I don’t wanna have to create a seperate room every single player in the game either

One guess would be to make the Characters from the other players fully invisible. What I also think could work (but I can’t guarantee it) is to temporarily parent it to some other Parent than Workspace (and it’s descendants) on the client.

Wouldn’t making every player other than your own become invisible be very tedious?

That is why I said you should try parenting them temporarily to another parent, but I can’t guarantee that this will work and it is only a speculation.
Other method I can think of is to make the player spawn the Dressing Room themselves temporarily on a random coordinate.