Lost GAS abilities when ServerTravel

We’re attempting to utilize seamless travel with our characters, which have an AbilitySystemComponent (UE 4.25). When seamless travel starts, FSeamlessTravelHandler renames the character (Line 5969 in world.cpp), which in turn unregisters all components.According to the documentation, (Components | Unreal Engine Documentation) unregistering a component should only keep the component from updating, simulating and rendering.

However, AbilitySystemComponent implements OnUnregister where it calls DestroyActiveState thereby removing all abilities. The result is that our character has no abilities once it has traveled.Is this a bug, or are we misunderstanding the intended use of unregister component? And if so, how do we keep the ability system component from clearing all abilities when seamlessly traveling?

Solution tried: comment out DestroyActiveState is not working

on one of my projects i just re spawn / reinitialise all abilities/inventory items after the server travel.
I do it on server side in AGameMode::HandleStartingNewPlayer_Implementation

At very least thanks for finding source of the problem, saved me a few hours. Can confirm that mindless removing of “DestroyActiveState” doesn’t help.
Going to follow the way of reinitialization of abilities as suggested below.

i should add, I case you cannot reinitialise all abilities and NOT using a source build for development.

Removing DestroyActiveState will not work you have to subclass your own UAbilitySystemComponent and override DestroyActiveState.

I did not encounter any bugs during network play using this method.


class API U_MY_AbilitySystemComponent : public UAbilitySystemComponent
void DestroyActiveState() override;

void U_MY_AbilitySystemComponent::DestroyActiveState()
	//Super::DestroyActiveState(); //do nothing