Hello everyone, I’ve encountered an issue with socket attachments in the World Outliner that behaves differently depending on the attachment method used.
Environment:
- Unreal Engine: 5.7.1
Issue Description:
I have a Child Actor Component with its “Child Actor Class” set to a Static Mesh Actor (e.g., a truss with sockets). When I attach another Actor to one of these sockets using drag & drop in the World Outliner, the attachment is not persistent after reloading the level. However, when I use the right-click “Attach To” menu, the attachment is saved correctly.
Actor Hierarchy:
Parent Blueprint Actor
└─ Child Actor Class: Static Mesh Actor (with sockets)
└─ [Trying to attach] Actor (e.g. primitive) → Socket
Steps to Reproduce:
Method 1: Drag & Drop (NOT working)
- Create a Blueprint Actor in the Contents Browser
- Add a Child Actor Component and set its “Child Actor Class” to a Static Mesh Actor (one that has sockets defined)
- Place an instance of this Blueprint in the level
- Place another Actor in the same level
- In the World Outliner, drag this Actor onto the Child Actor Component’s spawned Static Mesh Actor
- Select a socket from the popup dialog
- Save the level
- Reload the level (or restart the editor)
- Result: The attachment is lost - the Actor is no longer attached to the socket
Method 2: Right-Click Menu (Working correctly)
- Follow steps 1-4 above
- Right-click on the Actor you want to attach in the World Outliner
- Select “Attach To” from the context menu
- Choose the Child Actor Component’s Static Mesh Actor and select the socket
- Save the level
- Reload the level
- Result: The attachment is preserved correctly
Expected Behavior:
Both attachment methods should save and persist the socket attachment after reloading the level.
Actual Behavior:
Only the right-click menu method persists the attachment. The drag & drop method loses the attachment on level reload.
Additional Information:
- The attachment appears to work correctly during the same editor session
- The issue only appears after saving and reloading the level
- Both methods show the same visual result initially
- This specifically occurs when attaching to a Static Mesh Actor spawned by a Child Actor Component
IMPORTANT NOTE - Workaround Discovered:
Interestingly, I found that the issue does NOT occur if I:
- Place a regular Actor in the level first
- Add a Child Actor Component to that Actor instance in the level
- Set the Child Actor Class to a Static Mesh Actor with sockets
- Use drag & drop to attach another Actor to the socket
In this case, the drag & drop attachment persists correctly after reload.
The issue ONLY occurs when:
- The Actor was created/designed with the Child Actor Component already included from the start (e.g., in a Blueprint)
- Then an instance is placed in the level
- Then drag & drop is used for socket attachment
This suggests the problem might be related to how attachments are serialized differently between “Blueprint-defined” Child Actor Components vs “instance-added” Child Actor Components.
Question:
Is this a known limitation or expected behavior when working with Child Actor Components defined in Blueprints? Or should drag & drop work the same way regardless of when/how the Child Actor Component was added?
Any insights or workarounds would be greatly appreciated!
Thanks in advance.