Objects and Lookup Variables

In addition to variables you create, Chapbook also maintains a number of built-in variables called lookups. Unlike regular variables, lookups cannot be changed by you. Instead, they correspond to properties in the environment–the current date and time when the player is interacting with your story, for example, or even the story itself.

Introducing Objects

In order to leave as many variable names available to you as possible, Chapbook groups its built-in lookup variables together using objects. An objects are another type of variable–like a string, boolean, or number–that acts as a container for other variables. Unlike simple variable types like strings or numbers, objects don't have values unto themselves. They only contain other variables.

To access a variable inside an object container, enter the object's name, then a period (.), then the variable. For instance, story.name accesses the variable named name inside of story.

You can nest objects as much as you'd like, and you can also write something like this in the vars section of a passage:

my.favorite.variable: 'red'

Chapbook will create each object variable (e.g. my and favorite) for you if it doesn't already exist.

Built-In Lookup Variables

Below is a list of lookups that Chapbook maintains for you:

Variable Name Description Example
browser.darkTheme Whether the effective theme currently used by Chapbook is dark. See Dark Theme for more details. true
browser.darkSystemTheme Whether the browser is currently set to use a dark user interface. Typically, this done through a system preference. true
browser.height The height of the browser window in pixels. 768
browser.online Whether the browser currently has a network connection. true
browser.width The width of the browser window in pixels. 1024
engine.version The version of Chapbook currently running, as a string. '1.0.0'
now.datestamp A short human-readable description of the date right now. '2/15/2011'
now.day The current day of the month, 1-31. 15
now.hour The hour of the time right now, where midnight is 0 and 11:00 PM is 23. 18
now.minute The minute of the time right now, 0-59. 15
now.month The current month, 1-12. 2
now.monthName The name of the current month. 'February'
now.second The second of the time right now, 0-59. 45
now.timestamp A short human-readable description of the time right now. '6:18:15 PM'
now.weekday The current day of the week, where Sunday is 1, Wednesday is 4, and Saturday is 7. 3
now.weekdayName The name of the current day of the week. 'Tuesday'
now.year The current four-digit year. 2011
passage.from The name of the last passage the player visited, as set in the Twine editor. If the player has only visited a single passage, this is undefined. 'Untitled Passage 1'
passage.fromText The text of the last link the player used to go to a new passage. If the player has only visited a single passage, this is undefined. If the player moved to another passage by some other means that didn't involve clicking a link, then this reflects the last link used. 'Link name'
passage.name The name of the current passage as set in the Twine editor. 'Untitled Passage'
passage.visits The number of times the player has seen the current passage, including the current time. That is, the first time the player sees a passage, this lookup's value is 1. 1
story.name The name of the story as set in the Twine editor. 'Untitled Story'

Note that now lookup values reflect when they were last accessed, which is usually when a passage is navigated to. String values like now.monthName will vary by the language the player has set as default in their browser– a French person will see Août where an American sees August, for example, and similarly the French will see now.datestamp as '15/2/2011' where Americans see it as '2/15/2011'.

results matching ""

    No results matching ""