The first time someone writes a game script, they usually stall in the same place. The screenshot is there. A “start challenge” button is on the screen. The coordinates are not. Methods that can read interface elements return empty inside a game. The game picture is drawn by the engine. The system layer cannot see the button.
Game screens have no readable controls
In an ordinary app, the system can tell you which buttons are on screen, what text they show, and where they are. A script finds an element by text, and an interface redesign does not break it badly. Mainstream mobile games are drawn by engines such as Unity and Cocos. What the system sees is a canvas with no readable controls, and the canvas keeps refreshing.
Game automation is left with a screenshot, then a search through the pixels for the target. One screenshot plus a match usually takes a few hundred milliseconds, an order of magnitude slower than reading an element. Where you used to make three or four decisions in a second, you now make one every two or three seconds. When the interface changes, coordinates you measured and template images you cropped can all be useless. Rewriting half the script after one update is normal. Every step depends on a successful match, and a failed match pulls the flow off course. A wrong tap in a game often cannot be undone, such as tapping “spend diamonds.” Random waits, a little slack in the threshold, and splitting the script into modules are all there to hit that kind of mistake less often.
Recognition has three layers, and each layer costs more than the one before. Template matching crops the button image in advance and finds that patch on screen at runtime. Fixed interfaces are usually covered. OCR reads text. Task lists, chat boxes, and number displays move, and local OCR does not need a network. Object detection is for things whose look is not fixed, such as small monsters and drops, where size and angle keep changing. That layer needs a trained model. Real projects usually mix them: fixed buttons go through template matching, text through OCR, moving targets through detection. For the last two, see how image and color matching works and the full YOLO detection flow.
The bottleneck is usually the power supply and the USB controller, ahead of the computer’s CPU. A computer with an ordinary spec can handle mirroring and screenshots for ten to twenty devices. Devices that keep dropping offline are often short on USB power. Use a hub with its own power supply, and spread the devices across different USB controllers. Screenshots and recognition are what use the CPU. Add more devices and split them across several computers.
Android or iPhone depends on whether the account is worth money. Android is cheap, a few hundred for a used phone, which fits a large volume of low-value farming accounts. Model fragmentation is severe. Different resolutions need different coordinates, so buy the same model when you can. iPhones of the same model share resolution and system behavior, so coordinates can be reused. That fits accounts you would hate to lose, and you can still use the phone day to day. The HID path does not need a jailbreak. USB HID without a Bluetooth or OTG board has been available since EasyClick iOS USB 10.7.0 (2026-09-08). The phone needs iOS 17 or later, and it is mutually exclusive with Start Automation. For the install path, iOS 15 and later can use the offline main program v7.2.0 or later as the USB automation program. The official download page has a pre-signed IPA for testing. The offline build supports iOS 15 and later only. From 7.0.0, a single-app setup installs only the main program. A dual-app setup also installs the proxy IPA. If you sign with your own developer account, an Apple developer account is 688 yuan a year, covers up to 100 devices, and the system is iOS 12 or later. The account only handles signing. TrollStore works on iOS 15 through 16.6.1, and the signature drops after the phone reboots. Accounts spread across a few iPhones means one central control watching several states at once. You do not walk each phone when one is stuck. How to choose among the three paths is in this comparison.
A script that lasts picks up a few habits from updates. Split it into login, daily tasks, claiming rewards, and switching accounts. Each piece can run and be tuned on its own. An update usually touches one or two modules. Use image feature matching and write fewer absolute coordinates. After an update the button may move while the look is often still there. Write coordinates only where you have no other option, and keep them in one place. Write waits as a range, with no fixed interval. A person sometimes glances and taps, and sometimes pauses for several seconds. Give the script a schedule. An account online for 24 hours straight is conspicuous on its own.
The user agreement says assist tools are not allowed
The user agreement of most games explicitly forbids third-party assist tools. Breaking that means a ban, and this kind of ban basically has no record of a successful appeal. The chance of detection and whether the agreement allows it are two separate accounts.
If the account holds spending, time, and social ties, running a script on it usually loses more in a ban than the time idling saves. A farming account is not worth much, so the risk is smaller, and the account can also disappear at any time. Whether to use one depends on your own account.
For more, read Android automation scripts: how image and color matching works, with OpenCV, Android automation scripts: the full YOLO detection flow, Android automation scripts keep hanging: a stability checklist, and How to choose among three iOS cluster control HID paths: Bluetooth, OTG, and USB.
About EasyClick: A mobile automation script development platform covering three phone ecosystems: Android without root, iOS without jailbreak, and HarmonyOS. It also offers Apple script writing, Apple cluster control, Android cluster control, remote cloud control, and AI phone cluster control. → Explore all products · iOS cluster control product site
Ready to build it for real?
Every approach in this article can be built with EasyClick capabilities on iEasyClick — full documentation, developer tools and automation products, free to try.