Description

An actor instance's editor added components can fail to attach to the root component of the actor when changing the native root component's mobility from static to movable. The failure happens during SCS execution. This doesn't occur if the root component is added via the Blueprint editor. 

Steps to Reproduce
  • Create a native actor class with a Default Subobject USceneComponent set as the Root Component.
  • Create a Blueprint based on the native actor class
  • Add a component to the BP class using the SCS editor in the Blueprint editor
  • Set both the native and Blueprint added components to have static mobility
  • Drag and instance of the BP into the level
  • Set the root component to movable on the actor instance
  • Note that any editor added components snap to the origin and warning message is logged because the components failed to attach during RerunConstructionScripts. "PIE: Warning: AttachTo: '/Game/NewMap.NewMap:PersistentLevel.NewBlueprint3_5.SceneRoot' is not static (in blueprint "NewBlueprint"), cannot attach '/Game/NewMap.NewMap:PersistentLevel.NewBlueprint3_5.Cube' which is static to it. Aborting."
Callstack

> UE4Editor-Engine.dll!USceneComponent::AttachToComponent(USceneComponent * Parent, const FAttachmentTransformRules & AttachmentRules, FName SocketName) Line 1877 C+> UE4Editor-Engine.dll!USceneComponent::AttachToComponent(USceneComponent * Parent, const FAttachmentTransformRules & AttachmentRules, FName SocketName) Line 1877 C  UE4Editor-Engine.dll!USceneComponent::OnRegister() Line 674 C  UE4Editor-Engine.dll!UPrimitiveComponent::OnRegister() Line 606 C  UE4Editor-Engine.dll!UActorComponent::ExecuteRegisterEvents(FRegisterComponentContext * Context) Line 1525 C  UE4Editor-Engine.dll!UActorComponent::RegisterComponentWithWorld(UWorld * InWorld, FRegisterComponentContext * Context) Line 1223 C  UE4Editor-Engine.dll!USimpleConstructionScript::RegisterInstancedComponent(UActorComponent * InstancedComponent) Line 634 C  UE4Editor-Engine.dll!USCS_Node::ExecuteNodeOnActor(AActor * Actor, USceneComponent * ParentComponent, const FTransform * RootTransform, const FRotationConversionCache * RootRelativeRotationCache, bool bIsDefaultTransform) Line 156 C  UE4Editor-Engine.dll!USimpleConstructionScript::ExecuteScriptOnActor(AActor * Actor, const TInlineComponentArray<USceneComponent ,24> & NativeSceneComponents, const FTransform & RootTransform, const FRotationConversionCache * RootRelativeRotationCache, bool bIsDefaultTransform) Line 645 C  UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 765 C  UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 523 C  UE4Editor-Engine.dll!UActorComponent::ConsolidatedPostEditChange(const FPropertyChangedEvent & PropertyChangedEvent) Line 879 C  UE4Editor-Engine.dll!USceneComponent::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 531 C  UE4Editor-CoreUObject.dll!UObject::PostEditChangeChainProperty(FPropertyChangedChainEvent & PropertyChangedEvent) Line 454 C  UE4Editor-Engine.dll!UActorComponent::PostEditChangeChainProperty(FPropertyChangedChainEvent & PropertyChangedEvent) Line 917 C  UE4Editor-Engine.dll!USceneComponent::PostEditChangeChainProperty(FPropertyChangedChainEvent & PropertyChangedEvent) Line 560 C  UE4Editor-PropertyEditor.dll!FPropertyNode::NotifyPostChange(FPropertyChangedEvent & InPropertyChangedEvent, FNotifyHook * InNotifyHook) Line 2342 C  UE4Editor-PropertyEditor.dll!FPropertyValueImpl::ImportText(const TArray<FObjectBaseAddress,TSizedDefaultAllocator<32> > & InObjects, const TArray<FString,TSizedDefaultAllocator<32> > & InValues, FPropertyNode * InPropertyNode, unsigned int Flags) Line 522 C  UE4Editor-PropertyEditor.dll!FPropertyValueImpl::ImportText(const FString & InValue, FPropertyNode * InPropertyNode, unsigned int Flags) Line 291 C  UE4Editor-PropertyEditor.dll!FPropertyValueImpl::ImportText(const FString & InValue, unsigned int Flags) Line 120 C  UE4Editor-PropertyEditor.dll!FPropertyHandleByte::SetValue(const unsigned char & NewValue, unsigned int Flags) Line 3717 C  UE4Editor-DetailCustomizations.dll!FMobilityCustomization::OnMobilityChanged(ECheckBoxState InCheckedState, EComponentMobility::Type InMobility) Line 202 C  [Inline Frame] UE4Editor-DetailCustomizations.dll!Invoke(void(FMobilityCustomization::)(ECheckBoxState, EComponentMobility::Type) PtrMemFun, FMobilityCustomization * &) Line 65 C  [Inline Frame] UE4Editor-DetailCustomizations.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int,0>,enum EComponentMobility::Type>::ApplyAfter(void(FMobilityCustomization::*)(ECheckBoxState, EComponentMobility::Type) &) Line 299 C  UE4Editor-DetailCustomizations.dll!TBaseSPMethodDelegateInstance<0,FMobilityCustomization,0,void _cdecl(enum ECheckBoxState),FDefaultDelegateUserPolicy,enum EComponentMobility::Type>::ExecuteIfSafe(ECheckBoxState <Params_0>) Line 307 C  UE4Editor-Slate.dll!SCheckBox::ToggleCheckedState() Line 355 C  UE4Editor-Slate.dll!SCheckBox::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 244 C  [Inline Frame] UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::l8::<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463>::operator()(const FArrangedWidget &) Line 4829 C  UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::l8::<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 388 C  UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 4815 C  UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 5356 C  UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5321 C  UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2174 C  UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND_ * InHWnd, unsigned int InMessage, unsigned _int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2638 C  UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND_ * hwnd, unsigned int msg, unsigned _int64 wParam, __int64 lParam) Line 1042 C  UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND_ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 874 C+

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-108133 in the post.

3
Login to Vote

Backlogged
ComponentUE - Gameplay - Blueprint
Affects Versions4.26.1
CreatedFeb 8, 2021
UpdatedMar 23, 2023