Are there any ways to swap Character models without certain LocalScripts resetting?

Hi! I need help with swapping out Custom Character models cleanly. My method of swapping to custom character models is very simple- and that is player.Character = customCharacter. It works for the most part, but the game treats this as a new character is spawning, and fires the CharacterAdded event, which I don’t want to happen. This method also resets all local scripts, even when I switch the local script’s parent to the new character before I destroy the old character.

Basically I want to switch the character’s rig to a new one without changing anything else. Does anyone have and clues on how to do this? HumanoidDescription is out of the question because this is a custom rig.

1 Like

I still have yet to figure out how to do this. Does anyone have any ideas on how to do this? This is a really important factor in my game.

Here is the answer to your problem:

This does the same thing as player.Character = CustomRig. The problem is that I want to rigs to swap cleanly, that is, I don’t want to use :LoadCharacter() or anything else because it will reset ALL the local scripts. I want to swap rigs as if nothing happened to anything else in the game. But the game sees the swapping rigs as a character that is respawning, so it fires the CharacterAdded event and causes the local scripts to stop functioning, which I don’t want happening.

CharacterAdded fires whenever Player.Character is changed to any non-nil value so there isn’t really a way around it except for maybe using a debounce. Although, this wouldn’t solve the issue with all local scripts resetting. Instead of changing Player.Character, maybe try changing every limb and attachment individually. This might help in doing so: