How to Immediately stop actor on Overlap event?

Here is my scenario: Multiplayer game. Player pawns moving around level controled by players. Spread around the level are several “Encounter” actors (just cubes) that trigger an event when a player pawn overlaps it’s detection box.

I want all player movement to freeze as soon as an encounter triggers the BeginEncounter event. I have currently set up the encounter to loop the pawns and set a flag false on each one (canMove). The pawns check this flag in each tick and disallow moving if it is false. This works - to an extent.

The problem is that the pawns dont trigger the event until after they have passed the overlap boundary and thus do not stop moving until after they have crossed the boundary. I need them to stop immediately on the boundary and not a few feet past it depending on how fast they are going.

I thought of makeing the box block pawns but that will not stop the other players on the map wherever they are, just the one hitting the box.

Any ideas?

Many Thanks,

How are you stopping their movement? You need to zero out their linear velocity as soon as the overlap happens. Sounds like you just aren’t adding to their existing velocity, so it takes a bit for it to zero out due to friction.