Unfortunately, the only way to clone a character is to use Players:GetCharacterAppearanceAsync or Players:GetCharacterAppearanceInfoAsync. I'll shorten these to GetCharacter and GetCharacterInfo because they're hard to type.
GetCharacter returns a model full of these assets. Keep in mind that it does not return an NPC model. It returns the assets. So if you wanna get the Appearance, do this:
script.Parent.OnServerEvent:Connect(function(plr)
local model = game.Players:GetCharacterAppearanceAsync(plr.UserId)
model.Parent = workspace
end)
However, if you prefer a table, use GetCharacterInfo. However, it uses Dictionaries and sub-assets, which makes it harder to use. Don't recommend this one unless you don't wanna spam assets.
script.Parent.OnServerEvent:Connect(function(plr)
local table = game.Players:GetCharacterAppearanceInfoAsync(plr.UserId)
for i, v in pairs(table) do
print(i , v)
end
end)
Also, turning off Archivable may result in exploits on the client. So I don't recommend it at ALL.
3 comments
Can you be more specific, such as giving us the actual error?
that is the actual error
This is because plr.Character cannot be cloned because it is not archivable, you have to turn archivable off every time the character loads