Tengo un objeto que al chocar con otro, suena un sonido, pero cuando se reproduce muchas veces en poco tiempo se escucha feo, entonces quiero hacer que solo suene ese sonido si al menos el anterior se escuchó hace unos 0.5 segundos, ayuda.

En los docs existe esta función: https://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/audio/audio_sound_get_track_position.html

Si no te sirve, cada vez que uses el sonido, pon una variable digamos delay = 0 y en el evento step lo subes 1 cada vez. Y cuando vayas a crear el audio, compruebas;

[gml]
if (delay >= room_speed / 2) {
    // Han pasado 0.5 segundos, iniciar audio
}
[/gml]