A few macros that produce interactive elements, like [[harlowe:cycling-link|(cycling-link:)]], have the ability to automatically update a variable whenever the player interacts with them. There needs to be a way to specify which variable these will update: simply giving the macro the variable itself, such as in `(cycling-link: $hat, "Poker visor", "Beret")`, won't work - the value that's currently inside `$hat` will be given instead, as one would expect for every other kind of macro. So, the `bind` keyword is needed to make your intent unambiguous: `bind $hat` produces a "bound variable". One can bind any kind of variable: story-wide variables like `$morality`, temp variables like `_glance`, and data values and positions inside them, like `$diary's 1st's event`. Once bound, the macro's element will set data to it automatically, as if by a series of unseen [[harlowe:set|(set:)]]s or [[harlowe:move|(move:)]]s. Note that bound variables can't be [[harlowe:set|(set:)]] into variables themselves, because there's no real point to doing so (and it could lead to a lot of undue confusion). | **Operator** | **Purpose** | **Example**| | ''%%bind%%'' | Binds the named variable on the right. | ''%%bind $weapon%%'', ''%%bind _hat%%'', ''%%bind $profile's age%%'' |