-
Notifications
You must be signed in to change notification settings - Fork 0
Dashboard
http://localhost:8766/ (stdlib HTTP, no dependencies), refreshes every
second. Machine-readable snapshot: /api/state. Liveness probe:
/health → {status, uptime, players_online, memory_mb}.
Two consoles share the port: / serves the original dashboard
(dashboard.html — the Panels section below) while /v2 serves
the rebuild (dashboard2.html — Tabs and World map v2).
Both read the same snapshot; the GM tab exists in both and only works
on the server machine (loopback-only GM stream).
- World — connected surface map (rooms + labeled exits); per-room players (HP bars), NPCs (alive/dead/hp), ground loot. Dungeon instances are NOT merged into the map (private per party).
- Market — treasury, lifetime tax, open orders, buy/sell history.
- Dungeons — world buffs, live bosses, per-instance floor progress.
-
GM — console on the loopback GM stream: reward gold/item, timed 2×
buffs, elite boss spawns, announcements, heals, teleports, slays, kicks;
autocomplete, presets, per-action tax previews. Loopback-only caveat:
the GM stream binds
127.0.0.1, so this tab works on the server machine only — opening the dashboard from another LAN machine shows everything except GM actions. - Performance — one row per online client (score, kills, deaths, gold, HP, room); all-time leaderboard; live command feed.
- History — player-count + top-score line charts (30s sampling, ~1hr buffer).
- Track character — follow one character's recent actions (survives busy servers, unlike the world feed).
Overview (default landing): health cards derived client-side from the snapshot (players, connections, treasury, orders, lifetime trades, dungeons, uptime) plus a Healthy/Idle status pill, players/top-score/ market-orders trend charts, and the last 10 activity entries. Agents / Quests / Crafting / Config tabs are placeholders pointing at their issues until Phases 3-4 land them. Only the active tab renders each tick, so hidden tabs cost no DOM churn.
Canvas 2D replacing the old SVG: same BFS-layered layout, drag to pan, wheel to zoom, click a room for a slide-in detail drawer (players, NPCs, items, gold, exits; live-refreshed while open). No quadtree, dirty rects, or rAF loop — 32 nodes redrawn per 1s tick is trivial; revisit if the map ever grows 10x. Rooms grid stays unvirtualized for the same reason.
Telemetry knobs live in the "Telemetry + live dashboard" block of
server.py (HTTP_PORT, ACTIVITY_LOG_SIZE, TRACK_LOG_SIZE,
SCORE_HISTORY_SIZE). TEXTMMO_VERBOSE=1 (as start.bat does) also
prints every command, HTTP request, and connect/disconnect to console.