I have a BP with editable actor references array. Recently I noticed that option “Select Actors Using This Asset” doesn’t work for actors listed in this array. Simple as that, but it can be quite misleading and make this option almost useless in my current project.
There are two BP_ReferenceArrayHolder_1 actors, each has its own editable array with some actors chosen. All these actors use FirstPersonCube_Rounded static mesh. Then I tested some more and here are the results:
When actor is just a static mesh, “Select Actors Using This Asset” (used on FirstPersonCube_Rounded) works fine even if actor is chosen in the array.
When actor is a BP with Static Mesh Component, the option works fine as well.
When actor is a BP with Static Mesh Component added in Construction Script, then the issue occurs.
Actors chosen in the actor references array of the mentioned BP won’t be selected with “Select Actors Using This Asset” option. The BP will be selected instead.
Deleting the mentioned BP will make “Select Actors Using This Asset” option to work fine again for these actors.
Notice that not all actors using the model were selected. That’s because the actor called in World Outliner as “BP_ReferenceArrayHolder_2” has them selected in its editable Actor Reference Array (and after step 4 was selected instead of them, you can barely see it in this image). If you delete this actor from the scene then after repeating steps 2-4 you will see that everything works again as intended:
I was able to reproduce this in the project you provided. I attempted to repro it in a new project to better understand the bug but it doesn’t repro for me there. Did you happen to do anything in a specific order that may have caused it?
I tried to do it once again in 4.9 writing down every step. It looks like I wasn’t aware of the significance of one of them (7th one).
Create a project, I chose FPS template without Starter Content.
Create Actor based BP, let’s name it “BP_Array_1”.
Inside BP_Array_1 create an array of actor references (in Variables). Let’s name it “Actor References Array”.
Still inside BP_Array_1, make sure this array is Editable.
Create new Actor based BP, let’s name it “BP_Box_1”.
In the Construction Script of BP_Box_1 add node Add Static Mesh Component.
Still inside BP_Box_1, create Scene component (you don’t need to replace the root with it, just create it). I discovered today this step is critical to experience this issue!
Still inside BP_Box_1, create Static Mesh reference variable and make it editable.
Still inside BP_Box_1, add node Set Static Mesh in Construction Script. Set output of Add Static Mesh Component from step 6 into Target and Static Mesh variable from step 8 into New Mesh.
Place a few instances of BP_Box_1 in the level and set their Static Mesh variable to any SM you want. I chose 1M_Cube (from Geometry/Meshes in FPS template without Starter Content).
Place one BP_Array_1 in the level and setting its array elements choose a part of placed BP_Box_1 instances.
Now find 1M_Cube (or any other SM you used) in Content Browser and use “Select Actors Using This Asset” option on it. Actors chosen in step 11 won’t be selected. The BP_Array_1 will be selected instead.
As I said, I wasn’t aware the creation of new Scene component has any significance here. I usually create one to replace the root. Just a habit I guess. But it looks like deleting this new component doesn’t fix the issue and this is a bit worrying.
I hope this will help.
I just remembered that I usually replace the root scene with new one because of a little billboard in the root’s position. I don’t know how to get rid of it another way.
Thank you for working with us and providing thorough repro steps. I was able to reproduce this in-house and I’ve created JIRA UE-21012 for the issue. Our developers will be investigating the issue further and we will post here with updates as we have them.