Scriban templating syntax — variables, conditions, and functions you can use in character and scenario fields.
Most dynamic fields in Voxta — character descriptions, scenario text, prompts, bootstrap messages — accept Scriban templates. Scriban is a fast, sandboxed templating language that supports variable interpolation, conditionals, loops, and function calls.
For the full language reference, see the official Scriban docs. This page documents the Voxta-specific variables and functions you can use in templates.
{{ user }} and {{ char }} finally arrive to the designated location.{{~ if has_flag "night" ~}}It was dark, they had no idea where the box was.{{~ else ~}}It was day, they could clearly see the box.{{~ end ~}}
If the chat has the night flag set, that template renders one way; if not, the other.
Not all fields support every variable. Character fields can use character variables but not scenario-level ones. Scenario fields see everything. When in doubt, try it — Voxta will tell you in the prompt preview if a variable resolved to nothing.
Note the ~ symbols ({{~ ... ~}}) — those trim whitespace around the directive so conditional blocks don't leave blank lines in the rendered output. Worth using for almost every if / else / end.