Read and answer what the running game is showing
live_dialogRead and answer in-game RPG Maker dialogs—messages, choices, number input—by waiting until the window can take keys, so each response lands on the intended option.
Instructions
The dialog layer of a live game, driven by intent instead of counted key presses. read says what the game is waiting for and what it is showing: the message text, the choice options with each one's enabled state and where the cursor is, the number pad's digits, and whether the window is actually able to take a key right now. answer picks an option by index or types a number, dismiss presses on until the game stops waiting, and cancel takes the cancel branch. Every one of them ends by reading the game again, so the reply tells you what came next.
Why this is a tool and not three live_key calls: $gameMessage.isChoice() turns true the moment a choice is queued, while Window_ChoiceList is still fading in, and the engine only moves the cursor when Window_Selectable.isCursorMovable() holds — which needs the window open and active. A cursor key sent in those frames is dropped, and the answer comes back as the first option whatever you meant. Measured on a real playtest: it cost a run. So answer waits for the window to be able to take keys, presses one edge at a time, and re-reads the cursor after every press instead of assuming it moved; the reply says how many presses it took and refuses an option the game has switched off, because that press does nothing and an empty wait looks like a bug.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | answer: which option, 0-based — the engine's own order, same as `make_choice_scene` options | |
| limit | No | dismiss/cancel: how many presses to try before giving up (default 12) | |
| action | No | Default read | |
| number | No | answer: the value to type into a number-input window | |
| waitMs | No | How long to wait for the window to be takeable (default 8000) |