PerInstanceSMCustomData is bulk serialized and doesn't get changed on the BP instance when changing NumCustomDataFloats, possibly causing out of bounds array access leading to a crash.

Possible solution is to fix up this mismatch in UInstancedStaticMeshComponent::PostLoad()

Steps to Reproduce
  1. Create a BP Class containing an Instance Static Mesh Component with one instance. 
  2. Set NumCustomDataFloats to 1 in on the Instance Static Mesh Component in the BP. Save.
  3. Place the BP in a new level and save it
  4. Unload that level (jump into some other level)
  5. Go back to the BP class and change NumCustomDataFloats to 2. Save.
  6. Load the newly created level

Have Comments or More Details?

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

Login to Vote

ComponentUE - Rendering
Affects Versions5.1
Target Fix5.2
Fix Commit23078532
Main Commit23078532
CreatedSep 16, 2022
ResolvedNov 10, 2022
UpdatedNov 28, 2022