Bare visit (no query) — boots the login screen and
asks you to pick a server. It async-inits the renderer + CDN asset
source (manifest <assetBase>/manifest.json.zst)
and draws the real Login.img UI, but with no
?server= there is nothing to connect to yet.
?server=<name> — connect live to
that world through maple-wsgw at
<gatewayBase>/<name>/login (the channel
reconnect keeps the /<name> prefix). The name must
be one listed by GET <gatewayBase>/servers; there
is no client-side default, so a bare visit stays on the picker.
gatewayBase comes from HALCYON_CONFIG
(localhost defaults to ws://<host>:8443).
?demo=map — skip login and boot the
offline engine sandbox directly (auto-loads
Henesys). No server required; this exercises the physics, foothold
and map-rendering path only — movement, not gameplay systems.
?viewport=<WxH> — pin the in-game
logical resolution (e.g. 1280x720); also selectable
from the title-bar picker. auto derives it from the
window size.
?live=ws://host:port/<server>/login
— drive the real v83 protocol over WsTransport +
maple-wsgw against an explicit URL (bypasses
gatewayBase + ?server=; the server segment
must be in the path). Optional
&user=<u>&pass=<p>. Dev-only — the
password travels in the URL in plaintext; never use a real account.
Build & serve:
wasm-pack build --target web --out-dir pkg then serve
this directory (e.g. python3 -m http.server 3000) and
open /web/.