GML Help with Brick Breaker collisions


I am pretty new to GML and Game Maker in general, and have been following the tutorials to learn up on it, however I am having issues with the collision of the ball and the brick. The ball will only go in the opposite direction of the original bounce (like 95% of the time) even though I changed the code to ensure that it would not be the case.

if speed < 12 speed += 0.1;
global.player_score = +15
audio_play_sound(snd_Break, 0, false);

this is the code I have with it currently, removed the variable stuff to see if it would fix it but it didn't help

Any help is greatly appreciated!!
I dont like the move_bounce_all function. You have zero control over it. If your bricks are all square you should instead check if there is a collision on the y-axis (above or bellow) and then only reverse the vspeed, and do the same for the x-axis.
If you have bricks that have angels, I think the best way, (but pretty difficult) would be to give each brick an array of points. These points will outline the shape of the brick. Then use math to find the normals of the collision.