Needing character saving but character description can't go through a remote event

Hey, I’m pretty new to Roblox Studio, I’ve been using it for about a week now, but the one thing I’ve been stuck on the entire time that I can’t figure out is saving a customized character and reloading it after the player has reset, so they aren’t set to the default starter character or have to re-customize.

I’ve tried many solutions and methods for saving and loading the character and none have worked, I’ve also looked all over the forum, the Roblox Studio documentation and tutorials for my issues but none seem to help with exactly what I want.

Right now, basically my solution that almost works is

  1. The client customizes and their accessories are sent to the server to be equipped on the player character

  2. The player presses a button containing this script, which fires a remote event that contains a humanoid description.
    The local script to send the description.

  3. Then a script in server script storage is fired and is supposed to receive this humanoid description in order to apply it to any player’s added character, but the humanoid description is returned nil once sent through the argument of the remote event, which I’m guessing is because it’s an object and not a plain array.
    The server script.

If anyone has any solutions or better methods to doing a character save like this, I appreciate it!

:GetAppliedDescription() should not be called on the client. Try calling it on the server.

Is there a reason for the plr variable? It seems like the best thing to do here would be to use the player object given from the PlayerAdded event.

players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function()
        ...
    end)
end)

It’s kind of working now, but whenever the description applies, it always turns out just to be another default character, but with a new skin tone now, which is different from the starter character.

I changed the code to this. Looking back at it I think a lot of the code was redundant so I changed it but I could be wrong lol
image

And this is the default starter character
image
If I customize it, it goes from this to this, and every variable seems to be not nil looking at the print outputs.
image
image

I’m struggling to understand what the issue currently is, could you explain further?

I’m not sure what exactly is happening but, for some reason the description that’s getting applied just isn’t right it seems. I’m adding the accessories and skin tone and it’s appearing to save on the server script if I look at the output.
image
Though if I reset the character, these accessories and the proper skin tone are not applied.
image
It’s applying a character description, but it’s not the right character description.
image
It’s supposed to be the character you saved when you finished customizing, like this.
image

By chance, are you testing this in an environment with multiple people?

No, but if you need to see anything in a team test I can do that. I know my code isn’t set up properly for multiple people at the moment because it’d only save one player, so if I reset player 2, player 1’s skin tone ends up getting changed.
image

Is it applying the description of how the character was before any changes were made?

It shouldn’t be.

Here I click both a skin tone and a hair, and once I click the Create Character button, this script runs.
image
image

image
So this should only run once the Create Character button is clicked, which is when the customized character should get their description taken, unless I’m missing something.