Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SimDialogsNew to Visual Studio Code? Get it now.
SimDialogs

SimDialogs

Avius

|
2 installs
| (0) | Free
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Dialog Script Guide

'#' vs '@'

All annotations that starts with '#' refer to any line below it. All annotations override each other so if you put second '#left=' annotations in the middle of file, it will affect second half of script. All annotations that starts with '@' refer only to next text line (annotations does not count as "next text line"). For example, @text=left applies to the next text line only:

@text=left
Hello there.
Goodbye.

@text=left applies only to Hello there., it does not apply to Goodbye..

Multi-line text

Wrap in quotes. It counts as one frame.

"This is a long speech
that spans multiple lines."

Characters and speaker side

#left=guard
#right=player
@text=left
Halt! Who goes there?
@text=right
Just a traveler.
  • @left=... and @right=... set the sprites for characters displayed on screen.
  • @text=left or @text=right sets which side the text is displayed on.
  • Use #left=none to hide (left) character.

Options and branches

Place options right after a text line. Indent the lines that should appear after a choice.

Do you want to buy something?
> Yes
    @trade
    Here is my stock.
> No
    @end
    Fine, goodbye.
  • Sibling options must have the same indent.
  • Indented lines are shown only if the parent option (or frame) was chosen.

Conditions

@if flag==met_king
Welcome back, my friend.
@else
Have we met before?
  • flag==name / flag!=name: campaign flag (persists across the game).
  • dialog==name / dialog!=name: dialog flag (this conversation only).
  • strength>=5: character attribute (==, !=, <, >, <=, >=).
  • @else must follow a sibling line or option at the same indent level.
  • To apply a condition to a group of lines:
#if flag==met_king
Line A
Line B
#endif

Setting flags

Place before the line that should trigger the change.

@flag+=met_king
Nice to meet you.
@flag-=met_king
Forget I said that.
@dialog+=temp_flag
Remember this for now.

Jumping within a dialog

@goto shop_menu
Let me show you around.

@anchor shop_menu
What would you like?
  • @goto is triggered when its line is shown.
  • Every @goto needs a matching @anchor on some text line.

End, trade, fight

@end
Goodbye.

@trade
Take a look.

@combat bandits
Prepare yourself!
  • @exit is an alias for @end.
  • @fight and @battle are aliases for @combat.
  • The combat scene name is optional.

Common mistakes

  • Putting annotations after the line they should affect.
  • Using @else on the first line or option of a level.
  • Using #else (only @else is allowed) or @endif (only #endif is allowed).
  • Putting an option line without a preceding text line.
  • Inconsistent indentation. A tab counts as 4 spaces.
  • Typos in @if conditions. These can throw an exception instead of reporting a normal error.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft