Following this tutorial, I am adding the Gameplay Abilities System to my game.
I add the UAbilitySystemComponent to the AAbilityCharacter class in the header like so:
/// Interface to the gameplay ability system
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess), Category = Abilities)
UAbilitySystemComponent* AbilitySystem;
And create the component in the constructor like so:
// Component which we use to interface to the ability system
AbilitySystem = CreateDefaultSubobject<UAbilitySystemComponent>(TEXT("Ability System"));
However, by logging from SetupPlayerInputComponent and BeginPlay, it seems that the component no longer exists!
LogTemp: Display: Ability System Missing in SetupPlayerInputComponent
LogTemp: Display: Ability System Missing in BeginPlay
This was previously causing crashes when I tried to bind the ability system to PlayerInput.
The AbilitySystem shows up as an inherited component when I open the derived blueprint class in the editor:

But it does not have any properties that I can edit:

But when the AbilitySystem is added with the “New Component” button it’s details pane looks like so:

I am at my wits end trying to solve this issue. I am using the Advanced Locomotion Plugin but I re-parented it to my C++ class. However, when I reparent the final blueprint class I am using to the AAbilityCharacter the problem persists. It also appears to extend to any non SceneComponent I create, and I have not tired to replicate this issue with a SceneComponent.
What could have caused this? I have tried a variety of approaches to track down the problem, but I can’t even figure out exactly where in the life-cycle the component is deleted except that it’s before SetupPlayerInputComponent
