clockwork is under active development against a live game client. This page is
a snapshot of what's shipped, what's in progress, and what's next — not a
promise of dates. If a feature you're relying on shows up here as unfinished,
that's the state of it; if a page elsewhere on this site describes something
that contradicts this one, this page is more likely to be stale — check the
project's issue tracker for the current word.
jidou now fights. The rotation executor is wired in: it walks dynamic,
reorderable priority passes (each with its own on/off toggle), driven by
per-class config profiles, with single-vs-group heal detection and a working
pull module. See /jidou. What's left is
refinement — weave/Ascension-combo awareness so a non-landing ability doesn't
starve the passes below it, closing per-class rotation gaps, and RGMercs UI
parity. clockwork also ships the alternative, self-contained
/gyonin rotation engine.
What
Status
Rotation executor — dynamic, reorderable priority passes with per-pass on/off toggles, one cast per pulse
Buff-starvation fix across several shipped class configs (an over-broad "self-maintained buffs" list can starve rotation rows below it)
In progress
Autoloot — pipeline works end to end, blocked on knowing free bag space before looting
Blocked
jidou UI parity with RGMercs (HUD mode, theming, 2D map) — status, settings, and target windows plus a compact HUD mode, a theme engine, animated widgets and toasts (native ImAnim tweens), a peers window and a 2D map now exist; remaining parity polish is ongoing
In progress
Item/clicky use inside rotations
Planned
A handful of specific per-class rotation gaps (e.g. a Fury precast chain, Swashbuckler flanking detection)
Offline-baked zone navmeshes — clockwork bakes its own (VDB → Recast/Detour via eq2meshgen), superseding the earlier .jbm approach. The .voc scene-graph format is now fully decoded, so placed props (torches, fences, whole effect assemblies) sit at their true world positions instead of collapsing to the origin and trapping bots; every zone (800+) is baked and shipped
Shipped
Navmesh/path overlay + click-to-navigate — mesh, path, and point-of-interest overlays are live; drawing them over the real (non-top-down) camera view needs camera-matrix access clockwork doesn't have yet
In progress
Swimming/flying movement — 3D movement primitives exist (fishing move-to, direct-move) and /nav followclose now follows a leader in flight and underwater; general swim/fly pathing is still being built out
In progress
Modern-overland "missing floor" — a handful of zones still lack decoded CDLOD heightmap terrain in the mesh bake
Blocked
Full raid-roster detection — the client's raid-subgroup layout in memory hasn't been located yet, which caps how complete Raid and raid-scoped multibox broadcasts (/dgra//dgre) can be
Background hotbar/key broadcast across peers — the full input-relay pipeline is built and reverse-engineered, but hasn't been run against a live client yet
In progress
A general cross-client messaging bus — /dga//dge are wired directly for now and will become this bus's first built-in user once it lands
Quest-update event — eq2.on_quest_update raises every quest's full objective checklist on each details update (the ISXEQ2 EQ2_onQuestUpdate analog), with a per-quest cache in lib.questjournal. Delta-only for now: a login-time replay so it can describe quests accepted before clockwork loaded is the next step
Shipped
Any-actor cast state — the per-actor casting cluster (spell id, start, duration, interrupted flag) is now readable for any actor, not just yourself, so Target/Spawn[..]/group members expose what they're casting; plus eq2.ability_name(id) and eq2.now_unix_ms()
Shipped
LuaJIT FFI — enabled behind eq2.ffi with a guarded struct registry, so scripts can declare and read game structs directly
Shipped
Direct memory access — generic eq2.mem.* read and write primitives (with eq2.sig.* signature scanning) for building thin features in Lua
Shipped
ImGui.Image / ImageButton — real textures now render: DDS icon sheets are loaded into an image cache and bound safely (binding a raw game-owned texture id is still refused, since doing it wrong crashes the client)
Shipped
A key-binding system — react to a real physical keypress, not just polling inside an ImGui frame