A que me refiero? vieron que en el explorador de archivos tenemos un conjunto de carpetas, cuadritos alineados que no importa cuantos pongas se mantendrán todos uno al lado del otro siempre ordenados...me explico, eso es lo que quiero hacer crear objetos que se pongan uno debajo del otro y que si elimino uno no quede un espacio entre ellos si no que se acomoden para estar todos de una forma simétrica.
Pregunten si no se entiende XD
Voy a inferir de que quieres cambiar el formato del "explorador de archivos", de ser ese el caso te recomiendo que te dirijas a la parte superior de la ventana donde dice "inicio", "compartir", "vista", por defecto tendrás abierto inicio asi que vaz a vista y seleccionas el formato en el cual quieres verlo, te mostrare un GIF para que lo asimiles de mejor forma.
(https://i.gyazo.com/92af399c313c1fd2f27b8df747dc51b1.gif)
De no ser esto lo que buscas, pues explícate de mejor forma :-\.
Si es una columna de objetos tendrias que comprobar si hay un objeto encima y a cierta distancia y moverlo esa distancia.
Claro que tambien hay que comprobar antes si el objeto no es el primero en la columna(parte superior)
Dependiendo de lo que quieras hacer puede ser tan simple como iterar a través de las instancias que quieres ordenar.
Por ejemplo, si quieres ordenar un grupo de instancias del mismo objeto, o que comparten un parent puedes usar este código:
[gml]n = instance_number(objeto)
for(var i=0;i<n;i++)with instance_find(objeto,i){
x = 16+48 * ((i) mod 10);
y = 16+48 * ((i) div 10);
}[/gml]
Que ordenara las instancias según su orden de creación en filas de 10 elementos, separados 48 pixeles entre si con el primero separado 16 pixeles de la esquina superior izquierda del room.
Si las instancias no pertenecen al mismo objeto ni tienen un parent en común entonces se puede usar un contador por separado, por ejemplo:
[gml]var c = 0;
for(var i=0;i<instance_count;i++)with instance_find(all,i){
if object_index != objeto1 && object_index != objeto2 && object_index != objeto3 continue
x = 16+48 * ((c) mod 10);
y = 16+48 * ((c) div 10);
c++
}[/gml]
Este código ordenará las instancias de objeto1, objeto2 y objeto3 igual que el código anterior ignorando a todas las demás instancias.
Esa seria la forma más simple que se me ocurre, a partir de ahí dependerá de que quieras hacer que tanto se complique.