Dialog Block

To define an MGS Natlang dialog, start a new block at the root level:

dialog $dialogName:string {}

As these dialog blocks aren't being defined inside a script body, a dialog name is required. (The name is whatever is given for string.)

Inside the curly braces may be any number of dialogs. For example:

dialog bobTalk {
  Bob "Hi there! I'm speaking to you!"
}

The pair to the above usage is the action SHOW_DIALOG:

exampleScript {
  show dialog bobTalk;
}

Defining the dialog externally and "calling" it within a script by name is comparable to what has to be done with game files in raw JSON.

Show Dialog Block

A combination of the action SHOW_DIALOG and a dialog block:

show dialog $dialogName:string {}
// or
show dialog {}

Inside the curly braces may be any number of dialogs.

This block can be defined with or without a dialog name (whatever is given for string). Providing a name means other scripts are able to refer to that dialog, too, but this is rarely necessary. When a dialog name isn't given, one will be generated one based on the file name and line number.

Both patterns are valid anywhere actions are allowed (i.e. inside script blocks).

exampleScript {
  show dialog {
    Bob "Hi there! I'm speaking to you!"
  }
}