Bug: Overlap events not firing for blueprint child object colliding with object outside blueprint

  1. Create empty blueprint
  2. Add static mesh, set physics to true
  3. Add another static mesh vertically below the previous one, physics false, verify “Generate overlap events” is true.
  4. Set second mesh to be a child of the first mesh (so it moves with it, beneath it)
  5. Right click second static mesh>Add Event>OnComponentBeginOverlap
  6. Wire that to print a string “Overlapping!” whenever it fires
  7. Place blueprint in world above a platform (so it will fall onto it)
  8. Run
    -It doesn’t print “Overlapping!” at all… the event isn’t firing

Event should fire when the component begins overlapping…

Hello ShortStuf7,

I was having some trouble following your repro steps and recreating your issue. This is what I did.

1 - Create a new blueprint with parent class Actor

2a - Add a static mesh component to that blueprint as the Root component

2b - In the details for that component, enable “Simulate Physics”

3a - Add another static mesh component to that blueprint. It is automatically added as a child component of the Root component

3b - Position the second static mesh below the first static mesh

3c - In the Details window, with the second component selected, disable “Simulate Physics” and enable “Generate Overlap Events”

4 - The second static mesh was already added as a child component of the root component when I added it to the blueprint

5 - In the Components window of the blueprint, right click the second static mesh component and select Add Event > Add OnComponentBeginOverlap

6 - Wire “OnComponentBeginOverlap (StaticMesh2)” to a PrintString node

7 - Place this blueprint in the world above a platform (so it will fall onto it)

Whats happening is my whole blueprint falls, the bottom mesh goes through the floor, and the top mesh hits the floor and stops, leaving the bottom mesh dangling below the floor. Did I get the majority of the setup correct? How did you setup your collisions?

~Sam

That sounds like you have it setup correctly. Did it print your string when the StaticMesh2 overlapped the floor? For me, that doesn’t seem to fire its overlap events.

After further investigation, it appears that it will fire overlap events for only other child objects within this blueprint. Is this the desired way that this should function? My assumed functionality was that I could have an object attached to the internals of a blueprint that would test overlap of objects outside the blueprint. If this functionality isn’t considered a bug, is there any other way to do this currently?

Hello ShortStuf7,

Sorry about the long delay. I’ve figured it out. I recreated the scenario using my steps above. Then I had to click the floor and enable “Generate Overlap Events”. Then click on component 2 in the blueprint component page, change its collision so its OverlapAllDynamic. Now the printstring is getting called!

Let me know if that works for you,

~Sam