Hola chicos como dice el titulo estoy intentando averiguar como detectar cuando mi personaje se va a caer del suelo al vacio para hacer ciertas cosas.

Podrías revisar un punto de colisión abajo del personaje y desplazado en dirección de la velocidad horizontal. Por ejemplo:
[gml]
if not position_meeting( x+vspeed, y+20, obj_piso )
{
    // acciones
}
[/gml]

una pregunta por que para hacer la comprobacion a la x le sumas su hspeed?

Cierto es hspeed, me equivoqué; sí, se suma para revisar si hay piso hacia donde se va a mover. También podría ser una variable personalizada que indique la dirección de movimiento.


y no te serviria usar la funcion:

place_free?

puedes checar cuando tienes un espacio libre abajo, indicar o mandar llamar una alarma de que te vas a caer

aqui el link:
https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/place_free.html

solo ten cuidado, para que funcione los objetos tienen que ser marcados como solidos
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala