How can I query touching actors?

I’m trying to implement a rail / rope / beam actor that player characters can walk on, and have it send some feedback to the player while they’re trying to keep their balance.

To do that, I need to know when the two actors are touching (specifically, one supporting the other).

  • Overlap begin / end events and the GetOverlappingActors query don’t do anything, since it’s a blocking collision.
  • On Hit events only trigger when landing after a fall, not stepping from BSP straight on to the actor.
  • Furthermore, On Hit events don’t tell you when the actors are no longer touching.

The data must be there somewhere, since the actor is all that’s holding the character up!

I’m currently working in blueprints only, but if I absolutely have to dip into C++ I will.

How about adding a bit bigger collision volume to your object, and use its overlap events to simulate the touch behavior.

I thought about that, but 1) it would be a pain to set up for different shaped & sized meshes and 2) to avoid seams, the rope extends a bit into the cliff face, so I’d get false positives when standing above (but not on) it.