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 it as a string, or defaultValue when nothing is read. In the param table, correct (for example { l = "1", O = "0" }) fixes common OCR confusions and pattern extracts the first match.
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, defaultValue (omit to pass nil and use the runtime default). Returns a string.
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(800, 100, 280, 80)
local score = region:readAsString({ correct = { l = "1", O = "0" }, pattern = "[0-9]+" }, "")
print(score)From 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(800, 100, 280, 80)
local score = region:readAsString({ correct = { l = "1", O = "0" }, pattern = "[0-9]+" }, "")
print(score)local stepOk = true
local region = Region(800, 100, 280, 80)
local score = region:readAsString({ correct = { l = "1", O = "0" }, pattern = "[0-9]+" }, "")
print(score)
if stepOk then
wait(200)
endlocal ok, err = pcall(function()
local region = Region(800, 100, 280, 80)
local score = region:readAsString({ correct = { l = "1", O = "0" }, pattern = "[0-9]+" }, "")
print(score)
end)
if not ok then
print("API step failed: Region:readAsString: " .. 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_readasstring_step()
local region = Region(800, 100, 280, 80)
local score = region:readAsString({ correct = { l = "1", O = "0" }, pattern = "[0-9]+" }, "")
print(score)
end
local ok, err = pcall(run_readasstring_step)
if not ok then
toast("Step failed")
print(err)
endSnap.screenRefresh()
local region = Region(800, 100, 280, 80)
local score = region:readAsString({ correct = { l = "1", O = "0" }, pattern = "[0-9]+" }, "")
print(score)
local target = Region():find(Asset.image("target"), FindParam.timeout(3000))
if target then
quickTap(target)
end
toast("Detection step completed")