wyOOtdocs

Start here

Coming from Twine, ChoiceScript or Ink

Your existing words, mapped to Wyoot's.

On this page
Already know this?Memory: variables

If you have written in Twine, ChoiceScript or Ink, you already know the hard part, which is thinking in branches. This page maps what you know onto Wyoot's words, then lists the places where Wyoot works differently enough to trip you up.

Word for word#

You sayWyoot saysNotes
Passage (Twine), scene or label (ChoiceScript), knot or stitch (Ink)SceneA scene is prose followed by choices.
Link, [[text->target]], *choice, * [choice]ChoiceText plus a destination scene. Lettered A, B, C for the reader.
Final passage with no linksEndingEndings are their own kind of node and carry a type: good, bad, neutral or secret.
Invisible routing passage, *goto behind an *if, a divert behind a conditionForkNever shown to the reader. Picks a destination from what the story remembers.
Variable, $gold, *create, VARRemembered valueDeclared once in the right panel. Types: yes/no, number, text, list.
<<set>>, (set:), *set, ~ x = x + 1Choice effect, or Set a value on arrivalPicked from a menu: Set to, Add, Subtract, Flip it, and so on.
<<if>> or *if on a linkOnly show this if…Hides a choice unless the condition holds.
<<if>> around a paragraph, {cond: text}Shown-only-if paragraphA paragraph that appears only when the condition holds.
(either:), random(), RANDOMRoll a number, chance, or pick from a listProduces a value you then test. There is no random jump.
Gather, -A scene two choices both lead toAny scene can be reached from several places.

What is different#

There is no code#

Everything above is a control in the editor, not syntax. You cannot write a syntax error, and you do not need to remember which bracket goes where. The trade is that you can only do what the editor offers. There are no functions, no loops and no arbitrary expressions.

Values are declared and typed#

Every remembered value is declared in the right panel before you use it, with a type and a starting value. Names use letters, numbers and underscores, with no spaces. A yes/no value can be flipped or set. A number can be added to or subtracted from. You cannot add to a yes/no value or compare text with "is more than".

A scene must have at least one choice#

There is no "click to continue" passage without a choice. If you want the story to move on, give the scene one choice such as "Keep reading" or a short action. An ending is the only node with no choices.

Conditions are a list of checks that must all hold#

The editor builds conditions as a list where every check has to be true. There is no OR or NOT in the interface. You can get OR from a fork, because a fork tries its rules top to bottom and the first one that holds wins, so two rules that point at the same scene mean "either".

Values are frozen when the reader sees a scene#

If a scene prints a value, it prints the value as it was when the reader arrived. A later change does not rewrite scenes the reader has already passed. Readers never see a stats panel. If you want them to know their number, print it in the text.

State is replayed, not stored#

Wyoot works out the current values by replaying the reader's choices from the start. That means you can add, rename or remove a value in a draft without worrying about saved games. It also means randomness is seeded: a roll gives the same result when a reader resumes.

Endings are tracked#

Readers see how many endings they have found and how many remain, and they can replay to look for the rest. That makes the number and variety of endings a real design decision, not just where a story stops. See Endings.

Where to go from here#

Skim Scenes, Choices and Endings for the small differences above. Then read A notebook the story keeps and Hiding choices and forking. Those two pages cover what you would do with $variables elsewhere.