Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Message dialogs

Message dialogs are the small native windows opened by actions such as sense and look. They are WindowMessageDialogPane instances, not merchant or pursuit dialogs, and do not use the NPC dialog model.

Reading current dialogs

GET /clients/{client}/message-dialogs

The response contains observation metadata and a state with a wrapping revision and a dialogs array. Each dialog has an opaque id, nullable text, and a truncated flag. IDs contain no client addresses. Text is capped at 4096 client bytes. The daemon coalesces concurrent reads and may reuse a serialized snapshot for up to 250 milliseconds after it is received.

Dismissing a dialog

POST /clients/{client}/message-dialogs/dismiss

{"revision":7,"id":3}

The direct client provides the same operation:

darpc message-dialog dismiss --pid 1234 7 3

The DLL revalidates the revision, ID, pane type, registration, and visibility on the client main thread before calling the native close operation. The dismissal path forces a fresh snapshot before submission, and a stale revision fails closed.

Events

message_dialogs.changed carries observation metadata and the complete current state whenever a message dialog opens, changes, or closes. An empty dialogs array means none remains. After an SSE resync, reread the resource.

The DLL observes applicable SMessage packets and, while a dialog is active, checks the pane collection at most once every 100 milliseconds for native closes.