How To Call It
This is an object method: call it with a colon on a Region object created with Region(x, y, w, h), or Region() for the whole screen (region:<method>(...)). The global Region table does not have this method.
Reads the text in this region with OCR and returns a table with a Result (getText, getPoint) per recognised text piece; an empty table when there is no text.
Documented for app version 1.0.51Updated:
This is an object method: call it with a colon on a Region object created with Region(x, y, w, h), or Region() for the whole screen (region:<method>(...)). The global Region table does not have this method.
In detection flow, refresh the screen with Snap.screenRefresh() first, then narrow the search area and confidence using Region and FindParam.
Optional: param (omit to pass nil and use the runtime default). Returns a Lua table.
It is typically combined with Snap, Region, Asset, and FindParam; you can feed the result into quickTap(), click(), or a follow-up OCR step.
The snippet below is a starter pattern that can be applied directly in runtime flow.
local region = Region(0, 0, 1080, 300)
local pieces = region:read()
for _, piece in ipairs(pieces) do
print(piece:getText())
endFrom foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.
local region = Region(0, 0, 1080, 300)
local pieces = region:read()
for _, piece in ipairs(pieces) do
print(piece:getText())
endlocal stepOk = true
local region = Region(0, 0, 1080, 300)
local pieces = region:read()
for _, piece in ipairs(pieces) do
print(piece:getText())
end
if stepOk then
wait(200)
endlocal ok, err = pcall(function()
local region = Region(0, 0, 1080, 300)
local pieces = region:read()
for _, piece in ipairs(pieces) do
print(piece:getText())
end
end)
if not ok then
print("API step failed: Region:read: " .. tostring(err))
requestStop()
end-- In detection flow, refresh the screen with Snap.screenRefresh() first, then narrow the search area and confidence using Region and FindParam.
local function run_read_step()
local region = Region(0, 0, 1080, 300)
local pieces = region:read()
for _, piece in ipairs(pieces) do
print(piece:getText())
end
end
local ok, err = pcall(run_read_step)
if not ok then
toast("Step failed")
print(err)
endSnap.screenRefresh()
local region = Region(0, 0, 1080, 300)
local pieces = region:read()
for _, piece in ipairs(pieces) do
print(piece:getText())
end
local target = Region():find(Asset.image("target"), FindParam.timeout(3000))
if target then
quickTap(target)
end
toast("Detection step completed")