OnComponentEndOverlap Not Working UE 5.2

Context:
I’m trying to make a trigger volume such that when any actor leaves the volume they are teleported to another location.

Setup:
I’m creating this behavior by making a new blueprint class that derives from TriggerBox (I also tested this with a blueprint class that derives from Actor). Within the blueprint I have a Box Collision component to define the bounds of the volume. Additionally, I have a second component that I’ve created that finds the collision component and then binds to the OnComponentBeginOverlap event and OnComponentEndOverlap event. On the output of both events I have a print string to let me know when they trigger. The game starts with the player pawn inside the box collision.

Blueprint Actor Setup:

Blueprint Component Script:

[Blueprint on BlueprintUE](https://blueprintue.com/render/h2r25903/)

Result:
The OnComponentBeginOverlap and OnComponentEndOverlap events both trigger immediately on the first frame of the game loading and then never trigger again regardless of how many times any actor moves into or out of the box collision.

Attempted Fixes:
Each fix described below had no effect on the problem with the one exception that is stated within it’s description.

  • Turn on Generate Overlap Events on both the player pawn and trigger volume.
  • Set the trigger volume collision presets to OverlapAllDynamic or Trigger and the player pawn’s collision presets to BlockAllDynamic, OverlapAllDynamic, or Pawn.
  • Add simple and complex collision to the player pawn.
  • Set the Custom Sleep Threshold Multiplier to zero on the trigger volume.
  • Every frame move the trigger volume one pixel up and then one pixel down. This attempted fix causes the volume to think that the player is entering and then leaving the volume every single frame even when the volume continues to fully encompass the player during the movement.
  • Move my script out of it’s own component and into the Event Graph of the blueprint itself.
  • Move my script out into the level blueprint graph.

Does anyone have any insight into this issue? It’s been bugging me for a while now and I can’t seem to figure out what’s wrong. I’ve scoured a ton of old forum posts and tutorial videos and none of their solutions seems to work. Is this even the correct way of doing what I want to do? Should I be using a different component for detecting if anything enters/leaves the volume?

If anyone else stumbles upon this and can’t figure out what’s going on I figured out what the problem was. It seems that a performance optimization with overlap volumes is that if they are not moving then they will only trigger overlaps once per static mesh that they encounter. The actors I was moving around were all using static meshes because I wasn’t animating anything yet. This also explains why when the volume moved that it would re-trigger it’s overlaps. Changing my actors to have skeletal meshes fixed the issue.

I’m back with some more information. The issue here was not that I needed to have a skeletal mesh. The actual issue was that the dropdown on a static mesh called “Collision Complexity” causes overlap events to not trigger properly when it is set to “Use Complex Collision As Simple”. Volumes using the built in “Shape Collision” (or any of it’s children) seem to only check against simple collision and the checks they use don’t seem to work properly when the simple collision is overridden by complex collision. Adding simple collision and not only relying on complex collision fixes the issue.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.