How to get a physics-based ball to stick onto specific surfaces?

I want my ball (that incorporates physics) to roll along specific surfaces of certain objects without the possibility of flying and/or falling off from the surface for my pinball game.

How would I implement something like that in Blueprints?

You can use physic constraint to constraint the ball to the surface with only xy plane and lock z axis.

I did that but the ball hardly moves.

I should tell you that I’ve implemented a blue print on the ball where depending on the direction the it is placed at, it will move in a certain direction; if the ball is located in +ve Y location it will move in the +ve Y direction at around 90 cm per second otherwise it will move in the opposite Y-direction at the same speed.