albion/agent
Заид Омар Медхат 742b7c2085 Travel directions, agent resilience, opportunities clarity
- Travel planner shows the compass bearing (N/NE/.../NW) of each hop,
  computed from world-map coordinates (+x East, +y North, calibrated
  against Bridgewatch=south, Lymhurst=east). Zone positions parsed from
  world.bin into new zones.pos_x/pos_y columns.
- Agent: retry ingest POSTs with backoff + longer timeout, graceful
  failure (no more uncaught crash on a transient connect timeout).
- Opportunities: state the city prices apply to in the breakdown, and
  show tier+enchant as one "T4.3" chip with a tooltip.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 04:53:28 +05:00
..
src Travel directions, agent resilience, opportunities clarity 2026-08-23 04:53:28 +05:00
package.json Client/server split, Postgres, auth, Windows agent, Docker deploy 2026-08-23 04:10:08 +05:00
README.md Client/server split, Postgres, auth, Windows agent, Docker deploy 2026-08-23 04:10:08 +05:00
tsconfig.json Client/server split, Postgres, auth, Windows agent, Docker deploy 2026-08-23 04:10:08 +05:00

Albion Companion Agent

Runs on your gaming PC. Reads game-local data a deployed server can't see and pushes it to your server:

  • World map — parsed from the game's world.bin (read-only), uploaded once.
  • Market orders — passively captured while you play; every marketplace you open records firsthand prices.

Read-only observation only — the SBI-tolerated technique (same as the Albion Data Project client). No memory reading, no injection, no automation.

Requirements

  • Wireshark installed with the bundled Npcap driver (the agent uses tshark to capture your own traffic).
  • Node.js 20+.

Setup

npm install                 # from the repo root (installs all workspaces)
npm run agent -- init       # writes a config file, prints its path

Edit the config file (%APPDATA%\albion-agent\config.json):

{
  "serverUrl": "https://albion.yourdomain.com",
  "apiKey": "the-same-key-as-ALBION_API_KEY-on-the-server",
  "gamePath": "E:\\albion",
  "interfaces": [],
  "orderFlushSeconds": 15
}

interfaces: [] captures on all adapters. To narrow it down:

npm run agent -- interfaces

Run

npm run agent               # uploads world map, then streams market orders (Ctrl+C to stop)
npm run agent -- world      # just upload the world map and exit

Only run it while you play — that's when the data exists. Everything else (prices from the community API, calculations, alerts, the web UI) lives on the server and runs 24/7 without this.