Вот тут как раз бы и пригодился SCREENSHOT($x1, $y1, $x2, $y2)
Нужен, нужен, давно говорил. Только выглядеть он должен так:
SCREENSHOT(x1, y1, x2, y2, name)
Автор просто не делает, потому что не видит применения или думает что можно заменить другим кодом.
Приведу пример на зомби ферме. Нет надёжных средств узнать положение острова в окне программы, особенно если мы или скрипт его двигали. Просто не к чему привязаться. Все узнаваемые элементы которые мы заготовим в картинках могут не сработать если элемент закроется постройками/растениями/декором. А закрываются они очень часто, катастрофически часто. Нужно заготавливать десяток таких мест для каждого острова и то гарантии никакой. Плюс может быть разный масштаб (умножим ещё на 4).
Из-за разных разрешений экрана сдвиг острова может "упереться" в край и сбить весь процесс.
Даже простое возвращение в первоначальное положение становится трудной задачей. Здесь бы сделать 1-2 скриншота участков, а после действий/перемещений пытаться найти их поиском двигая остров.
Понимаю гарантии тоже нет если попал на динамический объект, но это можно обойти дублированием областей.