A user has reported that when an actor blueprint enables Generate Optimized Component Blueprint Data, default instanced objects of components are not properly duplicated in cooked builds. This results in the actor instance pointing to the template of instanced objects.
In a cooked build, instanced objects on the blueprint class should be duplicated via a callstack like this:
OptimizedComp532R.exe!UInstanceableObject::UInstanceableObject() [Z:\BugRepro2024\OptimizedComp532R\Source\OptimizedComp532R\SubobjectReproActor.cpp:19] OptimizedComp532R.exe!StaticConstructObject_Internal() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4561] OptimizedComp532R.exe!FDuplicateDataWriter::GetDuplicatedObject() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\Serialization\DuplicateDataWriter.cpp:177] OptimizedComp532R.exe!FDuplicateDataWriter::operator<<() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\Serialization\DuplicateDataWriter.cpp:72] OptimizedComp532R.exe!FObjectProperty::SerializeItem() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\PropertyObject.cpp:239] OptimizedComp532R.exe!SerializeUnversionedProperties() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\Serialization\UnversionedPropertySerialization.cpp:1008] OptimizedComp532R.exe!UStruct::SerializeTaggedProperties() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:1444] OptimizedComp532R.exe!UObject::SerializeScriptProperties() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\Obj.cpp:1905] OptimizedComp532R.exe!UObject::Serialize() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\Obj.cpp:1705] OptimizedComp532R.exe!UObject::Serialize() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\Obj.cpp:1556] OptimizedComp532R.exe!UActorComponent::Serialize() [Z:\UE\Engine\Source\Runtime\Engine\Private\Components\ActorComponent.cpp:2582] OptimizedComp532R.exe!USceneComponent::Serialize() [Z:\UE\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:3585] OptimizedComp532R.exe!StaticDuplicateObjectEx() [Z:\UE\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:3160] OptimizedComp532R.exe!AActor::CreateComponentFromTemplate() [Z:\UE\Engine\Source\Runtime\Engine\Private\ActorConstruction.cpp:1099] OptimizedComp532R.exe!USCS_Node::ExecuteNodeOnActor() [Z:\UE\Engine\Source\Runtime\Engine\Private\SCS_Node.cpp:104] OptimizedComp532R.exe!USimpleConstructionScript::ExecuteScriptOnActor() [Z:\UE\Engine\Source\Runtime\Engine\Private\SimpleConstructionScript.cpp:647] OptimizedComp532R.exe!AActor::ExecuteConstruction() [Z:\UE\Engine\Source\Runtime\Engine\Private\ActorConstruction.cpp:871] OptimizedComp532R.exe!AActor::FinishSpawning() [Z:\UE\Engine\Source\Runtime\Engine\Private\Actor.cpp:3964] OptimizedComp532R.exe!UGameplayStatics::FinishSpawningActor() [Z:\UE\Engine\Source\Runtime\Engine\Private\GameplayStatics.cpp:896]
This call is absent for actor blueprints with Generate Optimized Component Blueprint Data enabled.
Internal minimal repro project attached.
Repro steps from clean project:
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-222895 in the post.
0 |
Component | UE - Gameplay - Blueprint Runtime |
---|---|
Affects Versions | 5.3.2, 5.4.4 |
Target Fix | 5.6 |
Created | Aug 29, 2024 |
---|---|
Updated | Sep 6, 2024 |