Metatext

**Needs updating**.

There are some special behaviours that can occur when editing things in the Level Editor. These are labelled here as they are not an intended feature, and require the level to be specifically made in the level editor for them to exist at all.

The name "Metatext" is unofficial, but it is the most commonly used name for this mechanic.

When naming a text with type 0 "text\_**X**", where **X** is the name of any text block in the level (eg. X = "text\_is", so the text name is "text\_text\_is"), that text will refer to instances of the text X.

* Objects can transform into/HAS/MAKE/FEAR/MIMIC metatext.
* The text can have the properties  with full function except particles and specific interactions with .  works, but only the overlap check and not the collision check. Transformation and all other properties and verbs do not function.
* Using the metatext as the condition in an infix condition does not work.
* Note that these rules don't apply if using the literal , which will still function as normal.

When two objects have the same name, the game will differentiate between them when placed in the level. However, the level will have a preference (seemingly based on something the creator has control over - more investigation needed) of one to spawn when one is needed to spawn, including when undoing after destruction.

* Destruction that works for this purpose includes literal destruction, transformation,  being destroyed, Infinite Loop, and Too Complex.
* If an object gets transformed (or has/make) into , the text it becomes is the one with "text\_" prepended to its name. (The game will throw an error if one does not exist.)

"text\_not you" functions exactly as expected, except forming baba is not not you will cause a lua error. This works with other properties too, though trying to create compound words in other places usually won't work.

Also, check group/mimic with metatext?

## Mesatext

Text with a name that does not start with "text\_" will refer to objects (including itself, as metatext) with the same name as it. It is also referred to (as metatext) with normal text that would refer to it, as well (as metatext) as being in . It is also still normal metatext, so it can accept all properties through .

Note that text of type 0 (noun) will still function as a property. This can be used to do something like  and have it actually work.

## Trivia

In an older version of the game, a different form of metatext worked because in that version, if an object with a name that starts with "text\_" was WORD, the object it referred to had that initial text\_ stripped off. With this, a similar effect to modern metatext could be achieved by setting X (where X is a noun text) to object, then making it PUSH and WORD using text\_X, which is text with type 0 (or, as that's a noun text, does this again with an extra text\_ in front).

* As everything was an object, it did not have any of the rule restrictions in the current form of metatext, and worked as expected.
* This also worked on properties, because WORD just makes stuff parse as type 0, and those work fine as properties.
* This had the side effect of transforming X into text actually transforming it into the 1 layer above, and  only referring to top layer metatext.