Brick Breaker game only occasionally breaks bricks

Hit events only fire on blocking collisions as far as I know.
Blocking collisions only occur between two actors when actor A is set to type X and is blocking channel Y, AND when actor B is set to type Y and is blocking channel X. Otherwise the most you’ll get is an Overlap event (which you can also use in this situation but it will not automatically bounce things away).
That being said, X and Y can be the same channel if you want, and I think for a simple brick breaking game, that might be just fine, perhaps WorldDynamic.

I do not think Physics Simulation is required to get a Hit event.

These collision type/channel settings might have to be set on the root components of the actors. I’m still finding out about that.

The colliding meshes must have simple collision primitives set up on their static mesh asset in order to have anything to collide with. The visible 3-D mesh is not enough.

If you are moving the ball via SetActorLocation or AddRelativeTransform or similar, then it may be a good idea to turn on the Sweep checkbox on that node to make sure it doesn’t pass through the brick when moving quickly.

Are you using ProjectileMovement component? If so, what are your settings on that?

Those are all the things I would check on.