Hola Todos. Tengo un problema en mi proyecto estoy usando algunos objetos sin colision por funcion de mi juego, pero ahi momentos que se juntan y queda uno sobre el otro y esa no es la idea, y quiero saber como puedo hacer que mantengan cierta distancia entre ellos. mi objeto que se llama objAliado tiene este codigo en el evento Step pero al perseguir a objSoldier se ponen unos sobre otros y quedan visiblemente como uno quisiera saber como mantener la distancia entre el objAliado espero puedan ayudarme y se halla entendido  :(
ex = instance_nearest(x, y, objSoldier).x;
ey = instance_nearest(x, y, objSoldier).y;

// lo persigue a cierta distancia y si la distancia es mayor deja de perseguir
if distance_to_object (objSoldier)<= 250
{
    move_towards_point( ex, ey, 1)
       
}
else speed = 0;
//al llegar a cierta distancia se detiene para evitar colisionar   
if distance_to_object (objSoldier)<= 50
{
    speed = 0;
}

Deberías usar mascaras padre, haces un obj_controlparent o obj_controlcolision, a partir de eso creas una colisión hacia el obj_controlparent dentro de los aliados y tu personaje y ahí metes una acción para que suceda lo que quieres.

Hay bastante por Google sobre estas cosas, o en este mismo foro debería de haber algo también sobre este tipo de colisiones, búscalo seguro que lo encuentras, y sino ya te hecho una mano.

Pero sin usar mascara ni que sea colisionable se podría ? Es  que si tiene mascara y  o lo hago sólido pierdo otras funciones en mi juego.

Ponerle colisión o en el evento STEP algo como
if(distance_to_object(elOtroObjeto)<=1)
{
... //Alejarse, transportarse unos pixeles hacia atrás, etc...
}