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: