Click Randomization

How tap positions are varied on each run

When click randomization is enabled in your macro settings, TapForge doesn't tap the exact center of a matched object every time — it picks a slightly different spot within the object on each run.

Which functions are affected?

Randomization applies whenever TapForge knows the size of the object being tapped:

  • findAndTap — randomized. The match gives TapForge the object's width and height, so jitter is applied before the tap fires.
  • findAndLongPress — randomized. Same as above: match-based, dimensions are known.
  • tapAt("objectName") — randomized. Same as above: the object's dimensions are known.
  • tapCurrentMatch() — randomized. The match data from getPositions is used.
  • tapAt(x, y) with raw coordinatesnot randomized. When you pass plain numbers, TapForge has no object size to work with, so it taps exactly where you say.

What exactly gets randomized?

Only the touch position (X and Y coordinates). The offset is sampled from a uniform circular area centered on the match. The radius of that area is 25% of the object's smaller dimension — so on a 100×60 px element, touches can land anywhere within roughly 15 px of center. The distribution is flat across the whole circle, not concentrated in the middle, so you get genuine spread rather than clustering.

What is never randomized?

  • Timing — delays between steps are not affected. If you want variable timing, add a wait with a range in your script.
  • Swipes and gestures — start and end points are used as-is.
  • longPress(x, y) with raw coordinates — not randomized, same reason as tapAt(x, y): no object size is known.
  • Text input and key events — no randomization applies.

Why enable it?

Games that track repeated input patterns may flag or rate-limit actions that land on the exact same pixel every time. Randomization makes each tap land in a slightly different spot, which looks closer to natural human input. It also helps if a button has a slightly different hit area at runtime than the center of your template suggests.

Does it affect accuracy?

It shouldn't for any reasonably sized element. The jitter stays within the matched object's bounds. If you're tapping a very small target — say, under 20 px — the radius collapses proportionally, so the spread is still contained. If you see missed taps, check whether the object is being found at the right position first (use getPosition to inspect the match) before suspecting randomization.