Docs Tools

Farsight console

A local web console and the single entry point: set the game folder, start and stop services and game instances, set up the next game, see what the AI is thinking, issue manual commands, direct the camera, and review match history.

Farsight is a web console that runs on your machine and listens only on 127.0.0.1. It’s also the single entry point to the whole system: starting games, switching AIs, the gateway, speech bubbles and the local LLM are all controlled here, with no other scripts to hunt down.

start.bat                 # deployment check, then open Farsight at http://127.0.0.1:8866
start.bat 5 6             # also start tests on instances 5 and 6 (game + reference brain)
start.bat restart         # restart only the Farsight backend (after changing server code; games and services are unaffected)
stop.bat                  # stop everything completely

Change the port in ports.console in openwar3.json (default 8866).

Control Center

Farsight’s home page.

  • Game folder: find it automatically or pick it yourself; Farsight checks the game version and extracts data from your own game.
  • Local services: Gateway, Chat bubbles, Local LLM (LM Studio) and Website preview. Every card can start, stop and restart its service and show its logs; the section also shows whether a client has attached the MCP server.
  • Environment check: whether Python, the runtime files, game data, AMAI data and the other parts are installed.
  • Stop all (top right): stops game instances, AIs, the gateway, bubbles, the local model this system uses and the Farsight backend, in that order; the same as double-clicking stop.bat. The MCP server is managed by clients such as Claude and is not stopped; the LM Studio app itself isn’t closed either.

Pages

GroupPageWhat it does
HubControl CenterSee the previous section
GameOverviewSummary of the current instance’s game
BattlefieldMap view; you can issue manual commands (manual commands have the highest priority in the claim table: 95)
Unit dataEach unit’s order, task target, mana, hero level and XP, ability cooldowns, inventory
AI decisions / Combat decisionsWhat the reference brain is thinking this tick, and the details of every combat decision
Strategy coachStatus of the LLM strategy coach: whether the model server is up, whether each instance is connected, the latest advice and the input it saw
DirectorAuto camera, overhead health bars
Chat BubblesMake units speak, chat with the local model, peasant break room, camera dialogue, battle triggers, model settings. See Speech bubbles and local models
Command rateAPM and command throughput
Events & inputWhat happened in this game: spell casts, chat and screen messages, button clicks, hotkeys, ground clicks, selection, players leaving, filterable by category; alongside are the cursor position, the hovered item and the local selection. See UI & input
RecordsLogs / Match historyLog sources for each instance; each game’s result, duration and peak army size
Issue notesPress Pause/Break in the game to pause and mark the timestamp, then add a description here later
SystemInstances & SetupStart and stop instances; set the next game’s map (a melee map, or an RPG / custom map), both races, difficulty and game speed; pick an AI scheme for each instance; Start test launches the game + AI in one click
AI schemesImport, export, copy, trust and delete schemes; switch an instance’s scheme (even the game in progress can be handed over right away); see each scheme’s results. See AI schemes
JASS consoleWrite a JASS script and hit Run; on the right, browse 1291 functions by category and click one to insert it into the script. Variables persist for the whole game. See JASS channel
Connect & extendGateway status and one-click start; connection URLs generated per role (dev / player / observer), MCP setup commands and config; JS and Python examples. See Gateway and MCP
Data & diskHow much disk space recordings, match history, logs and other run data take, how much was added in the last day, and what can be deleted (Farsight never deletes anything automatically)
SettingsGame folder, interface language, appearance (dark / light, modern / Warcraft style) and more
FeedbackReport a problem or make a suggestion straight to us; diagnostic information is attached only if you tick the box, and you can preview it before sending

Press Ctrl + K to open the command palette: jump to a page, switch instances, end the current game, or start a new brain.

What’s new at the bottom of the sidebar lists what was recently added to Farsight and the platform. At startup (and every 6 hours after that), Farsight asks War3AI.com whether there’s a new version and lets you know if there is. When Farsight is updated, a banner appears at the top of the page; save whatever you’re typing, then click Refresh.

Multiple instances

runtime/farm.py handles running multiple copies (Farsight calls it for you when starting and stopping instances): it copies the original War3.exe launcher to War3-<N>.exe (without modifying any game file), and each instance gets its own number and directory (bin/inst<N>/). When a game ends, the next one starts automatically according to next_game.json (which is exactly what the console’s Instances & Setup page edits).

Your bot connects to a specific instance with --inst N. The console’s Instances & Setup page shows which numbers are in use, so you don’t collide with the reference brain.

Live page

http://127.0.0.1:8866/live is a scrolling log page designed to drop into an OBS Browser Source, showing the AI’s decisions and how the battle is going.

API

The console’s server is a set of local REST + WebSocket APIs (instance status, next-game settings, unit details, manual commands, logs, match history, director, AI schemes, JASS calls, canvas…), and the web page is just one of its clients — programs in any language can call them directly. The API list is in the header comment of console/server/app.py; for how to use the scheme, JASS and canvas groups, see AI schemes, JASS channel and Canvas.