Changing a Player's Character

That’s exactly what I posted, using startercharacter you can change it to literally anything.

I saw that, and I did research and its not a good way to do it as its not an official thing.

Archivable is on, I can clone it just fine for the swapping, I just can’t reference the charcter outside of that script for some reason

Understandable, but going about it in a different way may be too hacky. This was a pretty simple solution to this, at least for me.

I think I’ll just put the current Character in an object value and use it instead of going on trying to find out a better way.

I am not sure.
Yet, I don’t get why you clone a character then set it to the other one.
If you don’t destroy them, wouldn’t it create unnessecary clones?
Try doing like this:

game.ReplicatedStorage.Events.SwitchCharacters.OnServerEvent:Connect(function(player)
	local character = player.Character
	if character.Name == "Player1" then
		player.Character = game.Workspace.Player2
	elseif character.Name == "Player2" then	
		player.Character = game.Workspace.Player1
	else
		player.Character = game.Workspace.Player1
                character:Destroy() --Destroy the old character that is now switched.
	end
end)

The 2 characters already exist in the workspace, don’t they? Just switch between them.
Also, change the CameraSubject to your new humanoid from a local script.

I’m presuming you’re wanting to achieve a character from another player model, therefore, you could seek a usage with hum:GetAppliedDescription(), which returns back a copy of the target’s avatar, and it can be used with hum:ApplyDescription() to load in for the player. Take a look at the links for in-depth details.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.