Commands¶
Command Syntax¶
Commands are separated by ; (wait for server prompt) or | (send
immediately, no prompt wait). Whitespace around separators is optional,
including newlines – so a;b, a ; b, and a;\nb are all equivalent.
A leading number repeats the command that follows it, separated by ;
(prompt-paced) by default.
Syntax |
Meaning |
|---|---|
|
Send “get all”, wait for prompt, then “drop sword” |
|
Send “cast heal”, then “look” immediately without waiting |
|
Repeat prefix – expands to |
|
Repeat prefix – expands to |
Escaping Separators¶
Prefix ;, |, or ` with \ to include them literally:
Syntax |
Meaning |
|---|---|
|
Send |
|
Send `say hmm |
|
Send |
Backtick Commands¶
Backtick-enclosed commands are special directives processed by the client.
They are not split on ; or | internally.
Delay¶
Pause execution for a duration.
Example |
Effect |
|---|---|
|
Pause 1 second |
|
Pause 500 milliseconds |
|
Pause 0.5 seconds |
When (Condition Gate)¶
Stop the command chain unless a condition is met. The key is the actual GMCP field name (case-sensitive) and is searched across all GMCP packages. Falls back to captured variables from highlight rules if not found in GMCP data.
Append % to compute a percentage from the field and its Max
counterpart. Operators: >, <, >=, <=, =, !=.
String comparisons work with = and !=.
Example |
Effect |
|---|---|
|
Continue only if hp is at least 80% of maxhp |
|
Continue only if mp is above 50% of maxmp |
|
Continue only if hp is at least 500 |
|
Continue only if mp is above 200 |
|
Continue only if Mode is not Rage |
|
Continue only if captured Adrenaline > 100 |
|
Continue only if Adrenaline/MaxAdrenaline > 50% |
Operators: >, <, >=, <=, =, !=
Until (Wait for Pattern)¶
Pause the chain until a regex pattern appears in server output,
or a timeout expires (default 4 seconds). Case-insensitive.
The pattern is a regex, so | inside the pattern means alternation.
Example |
Effect |
|---|---|
|
Wait up to 4s for “died.” |
|
Wait up to 10s for “died.” |
|
Wait up to 2s for “treasure” |
|
Wait for kill, miss, or error |
Untils (Case-Sensitive Until)¶
Same as until but the pattern match is case-sensitive.
Example |
Effect |
|---|---|
|
Wait up to 2s for exactly “DEAD” |
Travel¶
Navigate to a room by its GMCP room ID. Triggers fire in each room
by default; add noreply to disable them.
Example |
Effect |
|---|---|
|
Travel to room abc123 |
|
Travel with triggers disabled |
Return¶
Travel back to the room where the current macro started executing.
Example |
Effect |
|---|---|
|
Return to start room |
|
Return with triggers disabled |
Home¶
Fast travel to the home room of your current area. Set a home room in the room browser (Alt + R) using the Home button.
Example |
Effect |
|---|---|
|
Travel to area home room |
Autodiscover¶
BFS-explore unvisited exits from nearby rooms. Optional arguments
(in any order after the verb, except roomcmd which must be last):
limit – maximum exits to explore (default 999)
bfs / dfs – search strategy (default bfs)
noreply – completely disable trigger processing during the walk
delay – seconds between movement commands (default 0.25); increase for servers that limit movement speed (e.g. breath or fatigue systems)
roomcmd cmds – commands to run in each new room; everything after
roomcmdis the command string, processed through the full client pipeline (semicolons wait for prompt,|sends immediately, backtick commands run locally – escape backticks inside the string as `````)
Example |
Effect |
|---|---|
|
Explore up to 999 unvisited exits |
|
Explore up to 50 exits |
|
DFS explore with triggers disabled |
|
Explore, running search and survey in each room |
|
Explore with triggers off, running a hunt script |
Random Walk¶
Walk randomly, preferring rooms with unvisited exits. Optional
arguments (in any order after the verb, except roomcmd which must be last):
limit – maximum steps (default 999)
visit_level – minimum visits per room before stopping (default 2)
noreply – completely disable trigger processing during the walk
delay – seconds between movement commands (default 0.25); increase for servers that limit movement speed (e.g. breath or fatigue systems)
roomcmd cmds – commands to run in each new room; everything after
roomcmdis the command string, processed through the full client pipeline (semicolons wait for prompt,|sends immediately, backtick commands run locally – escape backticks inside the string as `````)
Example |
Effect |
|---|---|
|
Random walk up to 999 steps |
|
Random walk up to 100 steps |
|
Walk with triggers disabled |
|
Walk, running search and survey in each room |
|
Walk with triggers off and full room sweep |
Script¶
Run an async Python script. Scripts are searched in the current directory
and ~/.config/telix/scripts/.
`async NAME` fires the script in the background and returns immediately;
`await NAME` runs the script and waits for it to finish before
continuing – useful inside roomcmd sequences where you need the script to
complete before the walk moves on.
Warning: Scripts run concurrently and asynchronously. Multiple scripts
(or a script combined with active triggers) can send commands simultaneously,
potentially flooding the server with rapid input – a “server storm”. Use
`stopscript` or press Alt + Q to stop all running scripts immediately.
Example |
Effect |
|---|---|
|
Fire-and-forget async Python script NAME |
|
Run a specific named async function from MODULE |
|
Run script NAME and block until it finishes |
|
Run a specific function and wait for completion |
|
List all currently running scripts |
|
Stop all running scripts |
|
Stop the named script |
Resume¶
Resume the last autodiscover or randomwalk from where it stopped, carrying over the visited/tried state. Only works if still in the same room. Optional arguments:
limit – override step limit
noreply – override the noreply setting (otherwise inherited from original walk)
Example |
Effect |
|---|---|
|
Resume last walk mode |
|
Resume with a 200-step limit |
Combining Commands¶
Commands, backtick directives, repeat prefixes, and separators can be freely mixed:
kill bear;`until 10 died\.\|You killed\|Kill what \?`;get all
Kill a bear, wait for it to die (or detect a miss), then loot.
`travel 8bd9a5e5`;5order splint;5order bandage;`return`
Travel to a shop, order supplies with repeat prefixes, then return.
Dingo;`until 10 Password`
Send a name, then wait up to 10s for a password prompt (login sequence).