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: thelinespoken last, its speaker,byandto, the conversation’sowner, and therepliesyou can choose from now, each with itsplace.cutsceneandmoviesay whether one is playing.choose: picks the reply atplace(aslooklists 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.