dialogue

Reads or answers the conversation on screen, or skips a cutscene. While a conversation is open, health reports mode dialog.

action:

  • look: returns the conversation: the line spoken last, its speaker, by and to, the conversation’s owner, and the replies you can choose from now, each with its place. cutscene and movie say whether one is playing.
  • choose: picks the reply at place (as look lists them), like clicking it.
  • continue: like the skip key. It cuts the current line short and shows its replies, and goes through a reply with no text.
  • skip_cutscene: like Escape in a cutscene or a pre-rendered movie.

With until: "choice", the call carries on to the next real choice. A choice the game ignored is made again, replies with no text are gone through, and lines play at normal speed (skipLines: true cuts each short). The answer lists every line spoken on the way (lines: the speaker as the file names it, by and to as creatures, and the text), then either the replies of the next choice, or ended and the mode after (explore, a cutscene, a fight, an area loading).

Without until, the answer says the game was asked and gives a cursor: call wait_for from it on eluvian.dialogue.chosen, eluvian.dialogue.line or eluvian.mode.changed.

A call may take up to budgetMs milliseconds, 60000 by default.

Arguments

Name Type Required What
action "look" | "choose" | "continue" | "skip_cutscene" yes What to do; each action is described above.
place integer (≥ 0)   With choose: which reply, counting from 0, as look lists them.
until "step" | "choice"   “choice” carries on to the next real choice or the end of the conversation. Default “step”: one step only.
skipLines boolean   With until: cut each line short. Default false.
budgetMs integer (≥ 1000, ≤ 300000)   The longest an until call may take, in milliseconds. Default 60000.

Call it as dialogue over MCP, or POST /api/tool/dialogue with the arguments as JSON.