This is an old revision of the document!
Variables are a good way to keep track of what a reader has chosen in a story, or to manage some other part of the story state. For example, many gamebooks start off with something like this:
All you possess is an Axe (note under Weapons on your Action Chart) and a Backpack containing 1 Meal (note under Meals on your Action Chart).
(Joe Dever, Flight from the Dark)
You can keep track of the number of meals that the protagonist carries with the
«set» macro, like so:
All you possess is an Axe and a Backpack containing 1 Meal. <<set $meals to 1>>
Later on in the story, you can change the value of a variable with another
You are feeling tired and hungry and you must stop to eat. <<set $meals -= 1>>
If you make a mistake with
«set», a pink highlighted message will appear where you invoked it. Here's a sample error message, in this case forgetting the sigil before the variable
bad expression: meals is not defined
-= are special operators called setter operators - while expressions may contain comparison operators like
not, setter operators are commands to modify the values of variables. The
-= operator lowers the variable on the left by the value on the right. There is also a
+= operator that does the opposite.
The most useful setter operators are as follows:
|to, =||Sets the variable on the left to the value on the right||
|+=|| Increases the variable on the left by the number on the right, OR adds the string on the right to the end of the variable. ||
|-=|| Decreases the variable on the left by the number on the right. ||
|*=|| Multiplies the variable on the left by the number on the right. ||
|/=|| Divides the variable on the left by the number on the right. ||