Change player's character without deleting folders and scripts in character

When the character joins he has scripts and folders. I want to change character in game, but all ways require to fully replace model.

in what way do you wanna change the character, accessories etc?

I want to change character for example from original to spider;

ok so, StarterCharacterScripts can add scripts and folders to a custom player rig (StarterCharacter), what method are you using to put scripts in the character, if you use startercharacterscripts, im pretty sure that works with custom rigs

Im putting something to character with player join script. And if I will use startercharacterscripts scripts will restart, but i want them continue to work

Don’t put things in the character if you want this behavior. Any scripts or folders that you put in a character should only be relevant to that character.

If you want to have scripts or folders or values that don’t reset when the character loads, put them in their player instance instead. (Use starterPlayerScripts for scripts, everything else you can parent to the player)

Here’s a script to change the player character, without using startercharacter.

	local ACFrame = plr.Character:GetPrimaryPartCFrame() -- Get current character cframe so player can change character in place
	local Char = game.ReplicatedStorage.Character:Clone()
	plr.Character = Char
	Char.Parent = workspace
	Char:SetPrimaryPartCFrame(ACFrame)
	-- You can parent things/scripts here to the new character.

And like @batteryday said, parent the scripts.

I know this script, but it replaces player model to another with all parented things. And thanks for advices.

You can put scripts inside the character storage and it’ll be the same when you clone it and set it as a character.
image

It’s just better to parent to the player instance instead of the player’s character model.

Global scripts dont work in player. (i deleted post because replied to random answer)