Hi!
what you need is and event with these two properties:
1: the event need to pick objects close to each other. This is done through distance. you basically calculate the distance between two points. the first is the original block that is checked, the second, is all other instances individually. compute this and check if distance is below a certain value.
2: since the original instance must be picked to start the comparison, the picking list must be killed before sub-events can be checked. this is to check all instances (ie. which ones are close?). however, killing the picking list will remove the information of the original position to compare the positions to. Meaning that you must save the position of the original object that get deleted inside a local or scene variable that will serve as a “reminder” of where the deleted object was.
doing this is basically a “state spreading”. like a fire that spreads, or explosions that explode other bombs etc…
here is a solved discussion about state spreading. Status spreading help
I also recorded and edited a video about status spreading, but i procrastinated publishing it. let me know if you want to see it uploaded. (it also talk about self-collision if i remember correctly)