Capsule component not functioning as a trigger?

trying to set up a capsule trigger that’ll let me know when my player is almost touching or touching a collider. in blueprints, i have the OnOverlap stuff for these set up to print a string on my screen, but i’m not getting anything except for the first frame when I load in. am i missing something?

here’s the code in my constructor:

OuterCapsule = CreateDefaultSubobject<UCapsuleComponent>(TEXT("OuterCapsule"));

OuterCapsule->InitCapsuleSize(GetCapsuleComponent()->GetUnscaledCapsuleRadius() + 10, GetCapsuleComponent()->GetUnscaledCapsuleHalfHeight() + 10);

OuterCapsule->SetCollisionEnabled(ECollisionEnabled::QueryOnly);

OuterCapsule->SetupAttachment(GetMesh());

Try adding OuterCapsule->SetGenerateOverlapEvents(true);

That didn’t seem to change anything, unfortunately

What about the other collider(s) that you want your player to overlap? Do their meshes have proper collision and are the actors set to generate overlap events? If these are all true, then try drawing a debug shape around your capsule to ensure that it is actually overlapping.

1 Like

found the issue, it was that the level geometry wasn’t automatically set to generate overlap events. is there a way to make everything automatically set generate overlap events to true? because this system is intended to specifically detect overlap events with the world, and it’d be annoying to have to set generate overlap events to true every time i make anything

I agree: it is very annoying. However, there is currently no other way to enable overlaps. If applicable, you could perform a sphere trace/sphere overlap on Tick, but that would certainly be less efficient.