Instanced Static Mesh not selectable in outliner

Hello,
I have a questions ( in the bottom of this topic) regarding two approaches of creating instanced static meshes in Unreal Engine 5

1. Create Instanced Static Mesh (ISM) and populating through blueprint
From this post - Unable to select Instanced static mesh in viewport? - I created blueprint for populating instanced static meshes in scene:

  • In this approach when user selects actor instance, whole actor is then selected ( in viewport and outliner as well)
  • To update the instance transform, user has to go to Instanced Static Mesh component, look for Instance transform arrays and tweak it there. This is not user friendly as there is no gizmo in viewport to ease the workflow

2. User Created ISM Component and populating manually
Actor in scene with Instanced Static Mesh Component filled manually


  • This user aproach takes more time to create
  • Has advantage, that instances can be selected in viewport and transformed with gizmo
  • On selecting Outliner gives no information to which actor selected instance belongs ( even Get Selected Level Actors method returns empty array)

Questions:

  1. In user created ISM approach - How is user suppose to know to which actor selected instances belongs?

  2. Why this two approaches (via script/blueprint and user created) have different results?

Thanks

2 Likes

Have you discovered a solution for this irritating issue yet? The problem persists if you have a Packed Level Actor within a Level Instance - you can’t select the PLA by clicking on one of its instances. I’m curious if this indicates that I’m incorrectly using Instanced Static Meshes, or if this functionality is still in the process of being developed.

After conducting extensive research on the topic, I have found that it is not possible to select the ISM/HISM directly by clicking on its instance. This is because each instance belongs to the class of USMInstanceElementDetailsProxyObject, which is not directly linked to its parent blueprint (it’s linked by FSMInstanceManager but for now it’s a dead end). As a workaround, you can make it selectable by adding a Billboard component to the Blueprint and clicking on that component instead. Although this is not an ideal solution, it should suffice until Epic developers implement this feature.

1 Like

This is really the most annoying thing in Unreal engine, even deselecting multiple actors isn’t possible. They really should fix this issue. It make me loose a lot of time in doing basic things.

It is better to add instances by cpp, when you add new UInstancedStaticMeshComponent you need to set it’s property to be able to select individual instances.
InstancedComponent->bHasPerInstanceHitProxies = true;

2 Likes

Wow, it’s amazing that it worked! I spent quite a while debating whether I needed to alter the source code to implement this modification to the ISM. Fortunately, simply configuring the property through the Utility Widget proved to be sufficient to get it functioning!

Below you can see a video showing the result + how I implemented the change.

EDIT: It seems to be functioning to some extent, as demonstrated in the video I’ve shared. However, there are limitations, such as the inability to select Packed Level Actors—once modified, they become entirely unselectable. Additionally, the modification isn’t retained; if you reload the level, the actor containing Instance Static Mesh Components reverts to being unselectable.