How do you make a collision that blocks a character?

Hi, I want to limit the walkable area of my character to the inside of a circle.

Rather then setting up a bunch of invisible collision walls in a circular pattern I thought I’d do it in Blueprint.
Detecting if I’m going outside of the circle is pretty easy since I just have to compare my character’s distance from the center to the circles radius. But once this ‘collision’ with the outer circle is detected, I have to make sure that the character can’t walk further without setting the velocity entirely to 0 (because then the character can’t move at all).
I tried to only set the velocity component going out of the circle to 0 and while this does slow the character down when trying to leave the circle, I can’t seem to completely stop him.

So my question is: how does Unreal engine do this when colliding with walls? Is there a better way to do this?
Here’s how I calculate the new velocity now:

56736-boundbycircle.jpeg

And here it is in blueprint:

Thank you for looking at my question.