For this I suggest using a grid-placement system. You can find information on creating a system like this in this devforum post: