Does anyone know if there is a way to use the WalkTo function for all interactions gamewide with the EmodeWait feature?
You mean be able to walk to objects and characters the same way you walk to hotspots?
Yes, It seems unrealistic to click things and have a reaction from across the screen, yet there must be a better way that doing walktox,y a thousand times?
You can calculate an appropriate position. Pretty straightforward for characters, and for objects the center is at x = object.X + Game.SpriteWidth[object.Graphic] / 2;
Now you have the position of the object / character. The next step is to find a suitable location near them with a reachable walkable area. Or just make the game walk to x, y + 10, that's a pretty good rule of thumb. (Avoid this if the player character is clickable, I hate having to move out of the way to click an object after trying to do something to it.)
To actually implement this, use GetLocationType and the .GetAtScreenXY functions in on_mouse_click().
Thanks :) Works good.