/merc¶
Script-provided
Registered by merc. Start it with /lua run merc.
Syntax¶
/merc resume [slot]
/merc suspend [slot]
/merc train [slot]
/merc chain [slot]
/merc hire [name|id]
/merc stop
/merc
Description¶
Mercenary control from a slash command — resume (un-suspend), suspend, and train
your mercenary, or run the whole resume → train → suspend chain in one shot.
Replays the native mercenary-window verbs through the command queue, so it drives
the game exactly as the UI does.
Subcommands¶
| Command | What |
|---|---|
resume [slot] |
Un-suspend the mercenary (mercenary resume). |
suspend [slot] |
Suspend the mercenary (mercenary suspend). |
train [slot] |
Start mercenary training — levels a merc up (start_mercenary_training). |
chain [slot] |
The whole chain: resume, wait for it to register, train, wait, then re-suspend. |
hire [name\|id] |
Hire the merc NPC — by name substring, spawn ID, or current target (see below). |
stop |
Abort a running chain after the current step finishes. |
/merc |
Print usage. |
resume, suspend, and train also accept the aliases on/unsuspend,
off, and training respectively.
[slot] is the optional mercenary index (an integer, e.g. 1). Omit it to act
on the active mercenary. Non-numeric slots are rejected so a typo can't be
appended into the verb string.
Hiring a mercenary¶
/merc hire replays the two verbs the Hire button pushes:
mercenary hire <id> 0 followed by mercenary hire -1. The NPC is resolved
as:
- A numeric spawn ID (
/merc hire 254391) - A name substring — nearest matching spawn (
/merc hire Stamper) - Your current target (bare
/merc hire)
Hail the NPC first
Whether the server accepts mercenary hire <id> without the hire
conversation having opened the window first is unconfirmed. To be safe,
hail the merc NPC (or use /claudetalk <name> to walk up and open the
conversation) before running /merc hire. The hire verbs were captured
from a hand-clicked Hire button on the MercHire window (Freeport,
2026-09-30) — pressing that button from Lua hung the client, hence the
cmdqueue replay approach.
The chain¶
/merc chain is built for skilling a merc up hands-free: it un-suspends the
merc, starts training, then re-suspends it. Each step is a real round-trip, so
the chain waits a short settle time between them — resume has to register before
training starts, and training before the re-suspend. /merc stop ends the chain
after the current step rather than mid-verb.
How it works¶
Each action is a bare CommandQueue verb the native mercenary window itself
pushes (captured with debug/cmdspy), replayed with eq2.cmdqueue(verb) — no
leading slash. None of them raise a confirm popup, so single actions push
straight from the command handler; the multi-step chain runs from the script's
own coroutine so its settle delays yield legally.
Slotted resume is unconfirmed
Only bare resume was seen in the capture. The chain appends the slot to
every step by request; if the server ever rejects a slotted resume, that
step is the first suspect — omit the slot.
See also¶
/lua— load and unload scripts.