One way floor

I am trying to get a one way floor where a character can jump up though the floor or push up through the floor but won’t fall through the floor.

I have an actor setup with a collision box called “Box” and a static mesh called “Top” at the top of the collision box. Top in this case is my floor.

Top is set to OverlapAll. To prevent an actor falling though the floor I am setting the actor location by getting overlapping actors on tick. But it doesn’t seem to be working. Any ideas or is there a better way to prevent the character falling though the floor? Is there a way to get an event on collision and return true or false if a collision should occur?