Skip to main content
Browse guides

Chat Panel

Type a request and see what the current game build understood.

What it is

The panel is a text line at the bottom of the game window. You type a request, and the current game compares it with a small list of recognized phrases. The technical name for a recognized request is an intent. This is a command interface for the game, not a live conversation service.

Note
What works now
The current method uses fixed keyword and phrase rules. Source documents discuss two possible later methods: a compact mathematical classifier and an outside language model. Those are plans, not part of the basic instructions on this page. See How the game reads requests.

Basic flow

  1. Press /. The text line becomes active and movement is suspended.
  2. Type your request in plain language.
  3. Press Enter. The game checks the request, tries the matching action, and returns control to movement.
  4. Press Esc at any point to cancel without running an action.
Example session
/ ← focuses the panel
> spawn cube at 5 5 5 ← enter
Recognized: SpawnAt { kind: 0, pos: [5.0, 5.0, 5.0] }
Action: render.spawn_stress · completed
/
> illuminant d65
Recognized: SetIlluminant { name: "D65" }
Action: render.set_illuminant · completed
/
> snapshot
Recognized: Snapshot
Action: render.snapshot_png · saved snapshots/snap_142_1714123412.png

History

While the chat-line is focused, ↑ and ↓ cycle through your last 16 submissions. The game keeps that fixed-length recent list for the intent.recent MCP tool — capacity is the RECENT_INTENT_CAP constant in loa-host/src/intent_router.rs.

Sample intents to try

Calibration + camera
snapshot
burst 30
tour walls
intensity fog 0.5
illuminant d50
World manipulation
spawn cube at 5 5 5
drop sphere at 0 0 0
place pyramid at 1.5 0 -3
teleport to color room
go to material
Material + pattern setup
set wall north pattern qr
floor sw checker
material on plinth 3 brass
set illuminant d65

When the classifier doesn't understand

The current rule list returns Intent::Unknown when no rule matches. The text line echoes the normalized input back so you can see what the classifier saw. A typical fix is one of:

  • Use a verb the rule-table knows · see /docs/intents for the full list.
  • Spell room or material names from the alias tables (e.g. color, material, brass).
  • Swap word order · the classifier accepts several phrasings per intent.
Important
Current release boundary
The current panel is documented as a local rule-based game control. A future connection to an outside language model would be a separate network feature and would require a clear, specific permission before use. It is not implied by typing into the current panel.

Programmatic access

The chat panel is one way to use the same request handler. Advanced testers can also use Model Context Protocol (MCP), a technical format that lets another local program call named developer functions. Do not expose the local developer port to another computer or the internet.

Equivalent MCP calls
// Tool · intent.translate
{ "text": "spawn cube at 5 5 5" }
// → returns the typed Intent JSON · without running it.
// Tool · intent.recent
// → returns the last 16 dispatches + per-kind counters.