Al usar el código en el evento draw
surface_set_target(surf);
surface_reset_target();
y en el momento en el que miniminizo y maximizo el juego, todos los instances se vuelven invisibles.
Esto me había pasado antes con el set_alpha, pero no con el surface
Puede que sea por q las surface de game maker son en memoria dinámica.
Es decir, se destruyen cuando entra en inactividad para ahorrar memoria.
Prueba usar la función de surface_existe o algo asi en step para saber cuando tu surface se borro de la memoria, si deja de existir la vuelves a crear
¡Arreglado! Era un error de la profundidad del objeto.