Skip to content

Client bricked by EvilQuest client bundle update (window.gm removed + manager refactor) #26

Description

@atapifire

EvilQuest shipped a client bundle update that breaks the EvilLite client.

Symptoms

  • After login: no player position, no live NPCs, map follow + click-to-move dead, Collection Log doesn't load. Effectively the whole client is non-functional on the new bundle.

Root cause (diagnosed live)

  1. window.gm was removed. EQ no longer assigns the game manager to window.gm (confirmed: window.gm = appears 0 times in the captured bundle). Our Reflector parse poller in client.ts was gated on window.gm existing, so it never parsed → zero hooks bound → gameHooks empty → plugins never start.
  2. Managers were renamed/refactored wholesale. Of ~25 class signatures, only GameManager and EntityManager still match; ~23 others + all enums no longer match (e.g. SocketManager → gm.network ctor ft with openSockets/sendFrame; context menus moved onto GameManager + a new class). This is a core/reflector signature refresh (separate, larger).

Fix in this PR (client-side, unblocks the client)

  • client.ts: the Reflector parse gate no longer requires window.gm; it keys off "GameManager's source is present in the captured bundle" (window.gm-independent), so the Reflector parses, binds GameManager/EntityManager, captures the instance, and plugins start. Verified live: player position, follow, NPCs, click-to-move, terrain, and Collection Log all restored.
  • CollectionLogPlugin.ts: item icons now use EQ's items/3d/<id>.png endpoint (EQ added it this update — the inventory renders model-only items from exactly this URL), fixing missing icons for model-only items (Raw Chicken, Raw Rat Meat, Log, Coins) without relying on inventory harvesting.

Follow-up (core, Oni)

The ~23 stale manager signatures + enums need re-deriving in packages/core/src/reflector/signatures.ts, and the context-menu integration needs rewriting to EQ's new structure. Our plugins use only GameManager + EntityManager (+ DOM), so they work with this PR; core features (context menus, etc.) need that refresh.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions