How to set up a complex collision determination for making a crush event?

I’m developing an RTS game in which there are Red Alert 3 style crush events, and it needs make a vehicle can crush units that have a [crushed level] smaller than its crushed level while it’s in move, and can’t crush units that have a [crushed level] larger than its crushed level, for example, if a tank has a crush/crushed level of 20/30, it can crush units with a crushed level of 20 or less, and can’t crush units with a crushed level of more than 20

That means it needs to have two collision type for one unit type at the same time, an overlap and a block, the overlap used for make a crush event and the block used for avoid the unit in front of it if no crush event happened

Both events will happen in the same unit type, those that can crush each other will overlap with each other, and those that can’t will be blocked, and they are all pawn collision type

how can I make it? I don’t know if UE can’t do this on its own or if I haven’t found a way to do this, if anyone knows how to do this (either through blueprints or C++) please let me know!

the engine prefers to, and is optimized to determine block-overlap-ignore on the channel level.

you will probably want to have these crush colliders on their own collision channel.
the easiest way to add them is in the editor->ProjectSettings->Engine->Collision
(these names are exact match only when used as FName in C++)

and have this Crush-Channel set to block everything except Pawn (at least to start you can tune as needed)

then let the Engine handle the blocking collision testing. just make sure that on all your actors/Pawns that have volumes on this channel that it resides inside the standard collider.