Make Actor Trigger Overlap But Not Block Physics


What’s the best way to make an actor trigger on collision enters but not block pawns and actors from passing through them?
Seems like a very common thing one would want to do, but I’m having a devil of a time figuring out how to get the job done.

To elaborate a little further, my actor is a “cleaning” actor that should be detected by whatever is underneath it by triggering the floor’s collision enter delegate connected to a very tall boxcomponent.
I want any other actors to be able to pass directly through this cleaning actor, but I want it to still be detected by the floor tiles.


Could you elaborate more on what you are trying to achieve? Are you trying to have overlap events but still have physics??

i edited the question to hopefully make it a little clearer! thanks for the response

You should be able to set the collision response settings on your trigger component. Below is an example of setting up a trigger volume using this method. I set the collision channel on everything to ignore all. This allows me to choose only the channels I particularly care about. I then set it to overlap pawns, so it triggers an event that can be used to interact with the actor but they can pass through the volume no problem. I also set it to collide with world static which will be your floor (Unless your floor moves then you’ll need WorldDynamic I believe). So it shouldn’t fall through the floor, and your pawns should be able to pass through it.

AMyTriggerActor::AMyTriggerActor(const FObjectInitializer& OI)
     : Super(OI)
     // I'm using a sphere here but you can use any UShapeComponent you wish
     TriggerVolume = CreateDefaultSubobject<USphereComponent>(TEXT("TriggerVolume"));
     TriggerVolume->SetCollisionResponseToChannel(ECollisionChannel::ECC_WorldStatic, ECR_Block);
     TriggerVolume->OnComponentBeginOverlap.AddUniqueDynamic(this, &AMyTriggerActor::PawnOverlapEvent);