No-code data flow
Logic, variables, arrays, and data
ScriptTap scripts can read typed values, calculate and classify results, branch, loop, coordinate concurrent work, call reusable child scripts, and exchange structured data without embedded code.
Typed values and arrays
ScriptTap supports Integer, Decimal, Boolean, Hex, String, and Time variables. The same typed families can be used as sparse arrays for screen results, coordinate lists, parsed data, classifications, and repeated calculations.
Flow and reusable scripts
- Conditions
- Use up to five rows in IF(OR), IF(AND), or IF(XOR), plus ELSE, comparisons, ranges, and string containment. These multi-row conditions have no shared confidence control; use IF(RGB Confidence) for color confidence.
- Loops and arrays
- Use Loop, ForEachIndex, ArrayGet, ArraySet, ArraySegmentScan, AppendPoints, and ColorClassify for repeated work. End Loop repeats until its count is met; an infinite Loop continues until stopped or exited. GoTo within a Loop or ForEachIndex keeps its progress; GoTo out ends it. A jump in from outside counts the arrival at End Loop as the first pass, while End ForEachIndex returns to ForEachIndex before its first indexed pass. Turning ForEachIndex Stop Variable off retains its configured variable.
- Concurrent control
- Run concurrent loop branches and protect exact sections with Exclusive, End Exclusive, and Break Exclusive.
- Call Script
- Build a parent and reusable child-script hierarchy, with THREAD variables available for typed values shared across calls.
Array and classification limits
- SetVariable Array Capacity accepts 1–4096 as an Integer value or a prior Integer variable.
- ArraySet Bulk accepts at most 255 total rows. Overflow is rejected rather than truncated.
- ArraySet Single, Bulk, Fill Range, and Sequence each save their selected mode's fields. Sparse and offset array diagnostics keep the accepted slot positions.
- PixelSampleBatch reads at most 2048 points from one accepted screen frame and writes fixed Hex output.
- ColorClassify accepts up to 16 row targets and writes Integer, Decimal, or String results.
- AppendPoints is limited to 4096 points and commits no partial append on failure. In Grid mode, X Pitch advances columns and Y Pitch advances rows. A blank Max Count can be saved or imported as an incomplete draft; complete it before Play.
- ArraySegmentScan output toggles retain their destinations. Its Aggregate sums are Integer or Decimal.
Data sources and persistence
Clipboard, TextTransform, JSON, HTTP, File, StateGet, OCR, image matching, and pixel commands can feed the same variable system. HTTP supports GET reads, POST submits or creates, PUT replacements, PATCH partial updates, and DELETE removals with user-controlled headers and POST/PUT/PATCH bodies. Same-origin redirects keep configured headers; cross-origin redirects omit them, and HTTPS-to-HTTP redirects are rejected. Timeout accepts 1000–60000 ms; an invalid visible value remains incomplete rather than being clamped.
Runtime variables start fresh for every Play session. File can read or create user-selected Text, CSV, or JSON, and append Text or CSV only. JSON append is not supported.
Selected HTTP response text is available to later commands and the live variable panel; HTTP logs retain request metadata rather than response content. Manual AM/PM Time editing uses dedicated clock fields, while supported whole Time-variable JSON values keep their loaded raw-value representation.
Structured composition
ScriptTap logic is assembled from the visible command catalog. Call Script composes reusable scripts, typed variables and arrays carry data, and branches, loops, and concurrent blocks control execution.