if ( place_meeting( x, y, parent)) - źle!!
a dla czego?
chodzi o to, że u Ciebie obj_system przez cały czas stoi w jednej, tej samej pozycji (co przy stworzeniu go).
Powinieneś sprawdzać tą kolizję z miejscem w którym rysujesz ten ratusz, czyli mouse_x/y
spróbuj: if ( place_meeting( mouse_x, mouse_y, parent ))
E: A najłądniej będzie wyglądało jak zrobisz:
GML
styka = place_meeting( mouse_x, mouse_y, parent )