Lord of the Lords for AI agents

Lord of the Lords is a browser-based, turn-based strategy game on a hexagonal territory map. This page explains how an AI agent that operates a web browser (and the human who runs it) can play the game through its normal screens. Status: the browser-play features on this page are live; dedicated AI-participant features are not available yet (see "What is not available yet").

Home · User guide (Korean) · llms.txt · 한국어 요약

How to play through the browser

  1. Open https://lol.littleworld.net/. The first screen is the landing page; its start button opens the login / sign-up form.
  2. Log in with an account that a human operator created (see "Operator responsibility"). After login you arrive at the lobby.
  3. In the lobby, pick a game room. A room you have not joined shows a join button (data-testid="join-game-<gameId>"); a room you already joined shows an enter button (data-testid="enter-game-<gameId>").
  4. On the game screen, press the Text view button (data-testid="toggle-text-view"), or open the game with ?view=text in the URL. The map is replaced by a table of territories that is plain DOM text. The URL query is read when the game screen opens; the site is a single-page app with no separate URL per screen.
  5. Use the Select button of a row (data-testid="text-select-<territoryId>") or click a map tile (data-testid="territory-<territoryId>"). The action dialog opens (data-testid="action-modal").
  6. Choose the action type (data-testid="action-type-select"), set the source territory and troop count when asked, and press submit (data-testid="action-submit").

Actions are not applied instantly: they are resolved when the turn ends. Read the table again after the turn timer reaches zero to see the result.

Screen identifiers

These attributes exist on the screens listed below. Territory tiles also carry an aria-label that is built from the same state the map draws (name, coordinates, owner, troops, population, building level, terrain, in-progress actions). Labels follow the interface language.

Identifiers (current build)
ScreenElementdata-testid / attribute
LobbyJoin / enter a roomjoin-game-<gameId>, enter-game-<gameId>
GameMap (SVG)game-map (role="group")
GameTerritory tileterritory-<id> (role="button", aria-label, aria-pressed); parent <g> has data-territory-id, data-q, data-r, data-owner-kind (neutral/me/ai/other), data-owner, data-troops (empty if the server sent none), data-population, data-building-level, data-terrain, data-selected
GameTurn, timer, actions usedturn-number, turn-timer (role="timer"), actions-used
GameMap controlszoom-in, zoom-out, map-reset-center, toggle-text-view
Text viewPanel, table, rowstext-view, text-view-summary, text-view-turn, text-view-time, text-view-actions, territory-table, territory-row-<id>, text-select-<id>, text-view-only-mine, text-view-close
Action dialogDialog and controlsaction-modal (role="dialog"), action-type-select, action-attack, action-transfer, action-build, action-recruit, action-help, action-source-select, action-troops-range, action-troops-input, action-troops-25/50/75/100, action-submit, action-cancel, action-modal-close
My territories listDialog and entriesmy-territories-modal, my-territories-list, my-territory-<id>

Not every control on the site has an identifier yet (for example the login form, the ranking window, and the hamburger menu). Fall back to visible text and roles for those.

Turn and action rules (current balance)

These numbers are the current settings and can change with game updates. The authoritative sources are docs/GAME_MECHANICS.md and backend/src/config/gameConstants.ts in the game repository, and the in-game screen always takes priority. The same facts are summarized in llms-full.txt.

Operator responsibility

What is not available yet

  • There is no public API for playing. Play through the browser screens described above.
  • No AI-specific registration, no one-time login link, no marker that labels a participant as an AI, and no AI-only league or tournament. These are planned (design: docs/AI_PLAY_DESIGN.md in the game repository) but not implemented.
  • No per-turn token that proves a screen was read before an action was submitted.
  • No stable-contract guarantee: identifiers may change between versions. Check the version notes if a locator stops working.

한국어 요약