SNTX language


SNTX refers to the rules used by the Convo and Astrip sources. The meanings of the symbols change in each application, but the relationship and overall idea is the same.

Each line in SNTX is basically a node parameter declaration.  As such it contains 4 basic things: the node’s type, its name, its parameter, and the value of the parameter.

The node’s type is first identified by a 2-character symbol, These symbols indicate what kind of node it is, and the one in the Convo system means differently from the ones in the Astrip.

  • ++
  • ==
  • ->
  • >>

(There is an exceptions with defining Choice Groups, and that will be covered in the Convo documentation.)

The name of the node must follow immediately after the 2-characters symbol:

==your_name -1 ~text::We don't have names. Just numbers.

This identifies the node to another nodes that may need to reference it.

The node must announce the parameter it’s defining:

==your_name -1 ~text::We don't have names. Just numbers.

Finally, the value of the parameter (i.e. in the above example, it is the text parameter) is defined by delimiting the value with the node definition with ::

==your_name -1 ~text::We don't have names. Just numbers.

Conditions and Variants

In both Convo and Astrip applications, Conditions and Variants can be used be extending the node identifier.


Using Conditions require the ? symbol, followed by the declaration of the Condition itself.

==more ?@insulted ~text::Have you got anything else insulting to say, hm?

In the case above, the Condition being checked for was @insulted. The use of the @ symbol denotes that the NPC’s action_state variable was queried with the insulted string to see if the value was present (i.e. contains).

Alternately, it is possible to check against the Accomps:

==more ?$insulted_chuck ~text::Have you got anything else insulting to say, hm?

Notice the use of the $ symbol which means the Accomps.


Variants is a way to randomise the choosing of a particular node over another. But before Variants can be used, the node identifier must specify that it has any number of particular variants.

==more ~vars::2

This specifies that ==more has 2 variants. Then we declare the node parameter values with a - symbol to indicate which variant we are declaring.

==more -1 ~text::You still around?
==more -1 ~choices::/group3
==more -2 ~text::Got any other question?
==more -2 ~choices::/group3


SNTX files are Markdown friendly in order to make them more readable. SNTX files borrow the .md extension for this purpose.

%d bloggers like this: