When a native actor 'AMyActorClass' creates AttributeSets as a default subobject via CreateDefaultSubobject, duplicating an actor blueprint based on AMyActorClass will result in a blueprint with an invalid attribute set.
The impact of this is that duplicating actor blueprints with attribute sets results in a broken asset. The attribute set is invalid at editor-time and will not work at runtime. The duplicated blueprint is unusable.
AAttributeSetReproActor::AAttributeSetReproActor() { PrimaryActorTick.bCanEverTick = false; AbilitySystemComponent = CreateDefaultSubobject<ULabAbilitySystemComponent>(TEXT("ASC")); AbilitySystemComponent->SetIsReplicated(true); HealthAttributeSet = CreateDefaultSubobject<ULabHealthAttributeSet>(TEXT("HealthSet")); } void AAttributeSetReproActor::PostInitProperties() { Super::PostInitProperties(); if (ensureAlwaysMsgf(IsValid(HealthAttributeSet), TEXT("Health attribute set on '%s' invalid!"), *GetPathName())) { UE_LOG(LogTemp, Warning, TEXT("POST INIT - Health attribute set on '%s' is valid: %s"), *GetPathName(), *HealthAttributeSet->GetPathName()); } }
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-273844 in the post.
2 |
Component | UE - Gameplay - Gameplay Ability System |
---|---|
Affects Versions | 5.4, 5.5 |
Created | Apr 22, 2025 |
---|---|
Updated | Apr 23, 2025 |