Don't use invisible collision objects! It could make it run much slower than the loop I described using events only.
Remember the way condition works already has a built-in 'for each'. So an event reading 'A overlaps B' means 'For each A: test if overlaps B, and remember both instances if so'. Therefore, using an object to test overlap of nearby objects still tests every single instance in the game. Worse, collision checks can be much slower than just measuring the distance. So I would strongly recommend you do not use a big overlapping sprite - just use something based on the events I posted, it's the fastest and simplest way.