Equivalent functionality in Harlowe 3.2.1

Examples taken from the Harlowe online documentation

Harlowe and Moontale have fundamentally different use-cases! This guide is not exhaustive - in particular, it does not cover Styling, Input, Transitions, and utility functions.

Hooks vs. Render functions

In Harlowe, a Hook is a specific instance of content in a passage. A Hook can be hidden or shown at will, causing it to be inserted/removed from the passage text. A Hook name, when used in code, acts like a selector and is used to modify all Hooks with that name.

In contrast, Moontale render functions are a set of instructions for displaying content. Render functions can be combined with Changers, stored and retrieved like normal variables, and used in-line with other text as many times as desired. It is not possible to select and mutate text segments that have already been outputted; instead, use a variable to control what is outputted in a given block and call reload() to make the changes visible.


The following syntax is identical in both Harlowe and Moontale:

  • [[Passage]]

  • [[Link->Target]]

  • [[Target<-Link]]

  • ~~Strike through~~

  • *Emphasis*

  • **Strong emphasis**

  • $variable

  • Special passage tags: startup, header, and footer

Last updated