place_meeting détecte le masque. Collisions => masques, toujours.
Après oui GM génère un masque pixel perfect pour les sprites, mais c'est rarement conseillé de l'utiliser.
Pour les masques multiples, tu peux utiliser mask_index.
Par exemple, tu as dessiné deux masques différents pour un objet. Tu veux tester la collision avec l'un puis l'autre:
with(Object) mask_index = spr_masque1
test avec place_meeting
with(Object) mask_index = spr_masque2
test avec place_meeting
Bon par contre c'est pas super opti si t'as vraiment beaucoup d'instances du type Object, mais sous GM y a pas vraiment moyen de faire mieux a première vue.