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.
Basic flow
- Press /. The text line becomes active and movement is suspended.
- Type your request in plain language.
- Press Enter. The game checks the request, tries the matching action, and returns control to movement.
- Press Esc at any point to cancel without running an action.
/ ← focuses the panel> spawn cube at 5 5 5 ← enterRecognized: SpawnAt { kind: 0, pos: [5.0, 5.0, 5.0] }Action: render.spawn_stress · completed/> illuminant d65Recognized: SetIlluminant { name: "D65" }Action: render.set_illuminant · completed/> snapshotRecognized: SnapshotAction: render.snapshot_png · saved snapshots/snap_142_1714123412.pngHistory
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
snapshotburst 30tour wallsintensity fog 0.5illuminant d50spawn cube at 5 5 5drop sphere at 0 0 0place pyramid at 1.5 0 -3teleport to color roomgo to materialset wall north pattern qrfloor sw checkermaterial on plinth 3 brassset illuminant d65When 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.
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.
// 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.