Description

Context

Users can create InstancedStaticMeshComponent (ISMC) (blueprint) subclasses. Any ISMC class can be added to an actor blueprint. When a mesh is selected and transforms are added to the Instances array, the mesh is instanced and visible at those locations. When editing a blueprint, in the actor viewport (SCS Editor) you can click any instance of an ISMC to select the instance.

Problem

Clicking instances of an ISMC is ineffective when the ISMC class added to the actor blueprint is a user-defined subclass.

Cause

UInstancedStaticMeshComponent and UHierarchicalInstancedStaticMeshComponent use an SCS Editor Customization: a special handler for mouse clicks when the component is clicked in the actor blueprint's viewport. These are registered to those classes explicitly in 

FBlueprintEditorModule::StartupModule()

, meaning those customizations don't apply to subclasses of UInstancedStaticMeshComponent:

// Register internal SCS editor customizations
RegisterSCSEditorCustomization("InstancedStaticMeshComponent", FSCSEditorCustomizationBuilder::CreateStatic(&FInstancedStaticMeshSCSEditorCustomization::MakeInstance));
RegisterSCSEditorCustomization("HierarchicalInstancedStaticMeshComponent", FSCSEditorCustomizationBuilder::CreateStatic(&FInstancedStaticMeshSCSEditorCustomization::MakeInstance)); 

FInstancedStaticMeshSCSEditorCustomization::HandleViewportClick is what should handle making instances clickable. This triggers for regular ISMCs but not ISMC subclasses.{}

Impact

Users can create subclasses of ISMC in code and in blueprint. Neither use cases allow you to leverage existing ISMC interaction in the SCS editor. Also, FInstancedStaticMeshSCSEditorCustomization __ is in a private header file, so game module can't even register that class as an SCS editor customization. So as impact:

  • Users are confused when ISMC subclasses can't be interacted with via mouse clicks in actor blueprints
  • They lose out on behavior and there is no workaround for this

Suggested Fix

Depends on our intent:

  • If ISMC is meant to be inheritable by game code (which is implied by having so many virtual functions), then subclasses should by default benefit from the existing SCS Editor Customizations. One approach would be to have SCS Editor Customizations automatically apply to subclasses.
  • Otherwise, UE should be more explicit about that inheriting from ISMC is an advanced concept.
Steps to Reproduce
  • Create a blueprint class inheriting from UInstancedStaticMeshComponent BP_Test_ISMC
  • Create and open an actor blueprint BP_Test_Actor
    • Add a BP_Test_ISMC to it
    • Set a Mesh (SM_Sphere) on it
    • Add two transforms to the component's Instances array
    • Configure different transform values in the details panel like location (0,-100,0) and (0,100,0)
    • Try clicking any of the shown spheres in the actor viewport
    • Observe: It doesn't select the instance
    • Expected: It selects the instance
  • Repeat the above steps with a regular UInstancedStaticMeshComponent 
    • Observe: You can click any instance to select it

Have Comments or More Details?

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

0
Login to Vote

Unresolved
CreatedOct 13, 2025
UpdatedOct 13, 2025
View Jira Issue