/uiclick¶
One-shot script
uiclick is a one-shot script — run it with /lua run uiclick <args> and it
exits after printing its result. No persistent slash command is registered.
Syntax¶
/lua run uiclick list
/lua run uiclick all
/lua run uiclick tree <Window> [depth]
/lua run uiclick text <path>
/lua run uiclick press <path>
/lua run uiclick <path>
Description¶
Inspect and press controls in live on-screen windows — lists top-level windows, dumps a window's control tree, reads a control's text, or presses a control.
Verbs¶
| Verb | What |
|---|---|
list |
List every visible top-level live window (children of _HUD). |
all |
List every top-level live window, visible or not. |
tree <Window> [depth] |
Dump the control hierarchy under <Window>, showing names, visibility, and text. Default depth 4. |
text <path> |
Print the text value of the control at <path>. |
press <path> |
Press the control at <path>. |
<path> |
Bare path — same as press <path>. |
Paths¶
A path is a dot-separated chain of SIDL Name= segments, e.g.
MercHire.HireButton or RewardPack.Accept. Intermediate levels may be
skipped — the walker checks every descendant at each step, so
MercHire.HireButton and HireButton both resolve to the same control as long
as it is unique. Ambiguous paths (the same name appearing under multiple
parents) resolve to the first match in tree order.
The answer key for control names is the game's own UI XML at
EverQuest II\UI\Default\eq2ui_*.xml.
How it works¶
uiclick reads the live _HUD window tree via lib/uilive.lua — the same
substrate the game itself draws. This bypasses eq2.ui.window():find(), which
only resolves named windows by exact SIDL ID and cannot walk anonymous children
(see lib/uilive.lua for why). Pressing a control replays the
LButtonDown/LButtonUp UI messages the game itself sends (mouse-message
dispatch via h:send_msg(9/10)).
Examples¶
/lua run uiclick list
/lua run uiclick tree MercHire
/lua run uiclick tree RewardPack 5
/lua run uiclick text QuestComplete.Status
/lua run uiclick press MercHire.HireButton
/lua run uiclick RewardPack.Accept
See also¶
lib/uilive— the live window walker./merc hire— hires a merc via replayed verbs rather than a button press.