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
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.
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.
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.
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.
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.