clockwork¶
clockwork is a MacroQuest-style automation framework for EverQuest II.
An out-of-process loader (eq2loader.exe) injects a core DLL (eq2core.dll)
into EverQuest2.exe, which brings up a hook engine, a DirectX 11 overlay, a
game-data layer, and a Lua scripting surface. Automation is written in Lua —
there is no C-ABI plugin API.
Documentation status
clockwork is under active development and this reference tracks a moving target. Pages note where a feature is experimental or where a value is a best-guess read that hasn't been confirmed against a live client yet. If a page and the source disagree, the source wins — please open an issue.
Where to start¶
-
Get the loader and core onto your machine and inject into a client.
-
Write your first script, register a command, subscribe to events.
-
Every
/commandclockwork adds, core and script-provided. -
mq.TLO.Me,mq.TLO.Target,mq.TLO.Spawn[...]and friends.
A 20-second tour¶
Drop a file at lua/hello.lua inside your clockwork folder:
-- lua/hello.lua
for i = 1, 5 do
eq2.print("tick " .. i)
eq2.cmd("/gsay clockwork lua tick " .. i)
eq2.delay(1000)
end
eq2.print("done")
Then in the game's chat box:
/lua run hello
/lua stop hello
Relationship to MacroQuest¶
clockwork borrows MacroQuest's architecture — the command registry, the TLO
concept, the Lua scripting model, the multibox broadcast layer. It shares no
code and no offsets: EverQuest II is a different client from EverQuest, so
nothing in eqlib applies.
The most important practical differences for someone coming from MacroQuest:
| MacroQuest | clockwork |
|---|---|
${Me.PctHP} string parser |
mq.TLO.Me.PctHP() — real Lua function calls, no ${...} evaluator |
.mac macro language |
Lua only |
C++ plugins (MQ2Foo.dll) |
Lua only — no plugin ABI, by design |
/dgae, /bcaa (EQBC/DanNet) |
/dga, /dge (built-in WM_COPYDATA mesh) |
See Differences from MacroQuest for the longer list.