Error
MoCHI diagnostics have MOCHInnnn numbers, 61 in total. The origin category for each number tells you where to fix it.
| Category | Number count | What to do |
|---|---|---|
subset | 45 | Fix the markup (origin category). |
environment | 14 | Fix the project (origin category). |
tool | 2 | It’s a problem on MoCHI’s side (origin category). |
XML, elements, attributes, values
Section titled “XML, elements, attributes, values”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI1001 | subset | Not well-formed XML (unclosed tag, unquoted attribute, DOCTYPE). | |
MOCHI1003 | subset | The root element’s name doesn’t match the file name (case-sensitive). | root-name-mismatch |
MOCHI1004 | subset | An element that can’t be written at that position (<At> outside <Prefab>, <Props> not directly under the root element, a second <Props>, <Transform>, a component outside a host, a child element of a component or <Slot>, <Row> and <Grid> under a Canvas, <TMP_SubMesh> and <TMP_SubMeshUI>, which Unity does not save in a prefab, and so on). | at-outside-prefab・component-in-for・else-without-if・prop-child・row-in-canvas・transform-element・two-props |
MOCHI1005 | subset | An attribute that element doesn’t take (including position and size under a Canvas, anchoredPosition3D on the root of a Canvas, and anchoredPosition together with anchoredPosition3D on the same GameObject). The message usually lists the attributes it takes. | anchored-position3d-root・anchored-position3d-with-anchored-position・component-attribute・prop-object-default・props-attribute・rect-position・root-attribute・row-child-position・row-with-size・tag-attribute |
MOCHI1006 | subset | There’s text inside the element. Write values in attributes. | text-in-element |
MOCHI1007 | subset | XML namespaces (prefixes, xmlns) can’t be used. | namespace |
MOCHI1008 | subset | A required attribute is missing (src, path, each and in, test, columns, size on a child of <Row> or <Grid>, size for pivot, gap for overflow="repeat", material for mainTexture and color, and so on). | grid-without-columns・pivot-without-size・repeat-without-gap・row-child-without-size・texture-without-material |
MOCHI1009 | subset | The value has the wrong format (float, int, bool, Vector3, Color, an enum, a static word, a <Slot> name, a fill pattern and so on). Also reported when a path without #key points to a GameObject with two or more UdonBehaviours (including a GameObject inside a placed <Prefab>) | bool-capital・color-name・color-short・columns-too-many・enum-case・fill-binding・layer-name-unknown・name-empty・number-exponent・slot-binding・static-unknown・value-out-of-range・vector-comma・vector-two-numbers |
MOCHI1010 | subset | A Unity component VRChat does not allow in worlds. VRChat removes it on upload. | component-not-allowed |
MOCHI1011 | subset | A component needed on the same GameObject is missing (an Audio Filter needs an AudioSource). | audio-filter-alone |
MOCHI1012 | subset | The programs of UdonBehaviours on the same GameObject declare different sync modes other than None. VRChat gives the synced UdonBehaviours on one GameObject only one sync mode |
Paths, files, data
Section titled “Paths, files, data”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI2001 | subset | The path’s format is wrong, or it points outside Assets/ and Packages/. This also covers using a builtin: name in place of a path. | builtin-material-color・path-backslash・path-outside |
MOCHI2002 | environment | The file the path points to (a part, a prefab, an asset, a table) doesn’t exist. | |
MOCHI2003 | environment | The folder in folder() doesn’t exist. | |
MOCHI2004 | environment | The file the table’s file column points to doesn’t exist. | |
MOCHI2005 | environment | The table’s (CSV or JSON) format is wrong, or it uses a reserved column name. | table-key-column |
MOCHI2006 | environment | The table row has no key (there’s neither an id column nor a file column, id is empty, or a JSON table mixes rows with and without id). | table-empty-id・table-row-without-key |
MOCHI2007 | subset | in isn’t in the form folder('…') or table('…'), or the table is neither .csv nor .json. | data-source-double-quote・for-in-from-prop |
MOCHI2008 | subset | The asset’s type is wrong (src that isn’t a .prefab, material that isn’t a .mat, .asset that isn’t a Mesh, an asset that doesn’t match a prop’s type, and so on). | |
MOCHI2009 | environment | The asset has no .meta. Unity hasn’t imported it yet. | |
MOCHI2010 | subset | The object <At path> or <Slot path> points to doesn’t exist in the prefab, or the name is ambiguous because it’s duplicated. This also covers no object matching a fill pattern. | at-path-not-found |
MOCHI2011 | environment | Can’t read the prefab or .mat. | |
MOCHI2012 | subset | The part has no <Slot> for the content’s destination. | slot-unknown |
MOCHI2013 | environment | Next to a part with a T# script, there’s no T# program asset for its .cs. | |
MOCHI2014 | environment | A <Name>.Mochi.cs that’s no longer needed is left behind (warning). | |
MOCHI2015 | subset | There is no GameObject at the path that points to something in the same prefab (including a path that goes above the root of the prefab). | object-ref-not-found・prop-object-not-found |
MOCHI2016 | subset | The GameObject at the path has no component of the attribute’s type (for onClick, it is not a part with a T# script). | object-ref-no-component |
MOCHI2017 | environment | Unity has not read what is inside the model file (such as .fbx) yet (when checked outside Unity; save the file once in Unity and it can be read) | |
MOCHI2018 | environment | A mesh inside a <Prefab> placed in a <Row> or <Grid> without size comes from a model Unity has not read yet, so its size can’t be measured. Save the file in Unity once, or write size. | |
MOCHI2019 | environment | A file that MoCHI did not generate is where the generated file would be written. MoCHI does not overwrite it and generates nothing. Rename or move that file to generate |
Parts and props
Section titled “Parts and props”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI3001 | subset | There’s no element or part with that name. This also covers a Unity component not in the table. | |
MOCHI3002 | subset | There are two or more parts with the same name. | duplicate-part-name |
MOCHI3003 | subset | The part’s name is a built-in element’s name. | builtin-part-name |
MOCHI3004 | subset | The part uses itself. | part-cycle |
MOCHI3005 | subset | The part is passed props it doesn’t declare. | prop-undeclared |
MOCHI3006 | subset | The prop’s value doesn’t match its type, or the type name is unknown. This also covers a runtime value whose type doesn’t match. | prop-object-as-name・prop-type-case・prop-wrong-type |
MOCHI3007 | subset | The prop’s name is slot or a host attribute’s name. | prop-reserved |
MOCHI3008 | subset | A prop with no default isn’t passed (at the entry point, this appears on the root element). | entry-prop-without-default・prop-missing |
MOCHI3009 | subset | The same prop is declared twice. | |
MOCHI3010 | subset | The prefab has no component matching what’s being changed, or the .mat has no image or color property. | override-missing-component |
MOCHI3011 | subset | The same <Slot> is placed at two spots in the part. | slot-twice |
MOCHI3012 | subset | There are more children than mount points. | too-many-to-fill |
MOCHI3013 | subset | The entry point file changes the inside of a prefab. | override-in-entry |
MOCHI3014 | subset | A part with a T# script’s prop name can’t be a C# field name. | |
MOCHI3015 | subset | The C# class doesn’t meet a part’s requirements (no class, no partial, doesn’t inherit TsukimiBehaviour directly, a name collides with a generated member, an unusable prop name). | |
MOCHI3016 | subset | The T# script can’t compile together with MoCHI’s generated files. | |
MOCHI3017 | subset | A part has the same name as a component, so the tag was read as the part (a warning). To write the component, rename the part (its file and its root element) |
Identity
Section titled “Identity”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI4001 | subset | Identity collides under the same parent, a component key is used twice on one GameObject, or two different material copies are being written to the same path. | component-key-twice・for-constant-key・same-name-different-image・same-name-siblings |
MOCHI4002 | environment | The same key is used twice in the table. | |
MOCHI4003 | tool | An ID inside the prefab collided by coincidence. |
Binding
Section titled “Binding”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI5001 | subset | The binding’s name is in neither the props nor the row, or the row has no such column. | caller-row-not-visible・default-with-binding |
MOCHI5002 | subset | The binding has the wrong format (not the whole value, a row name only, a name of the wrong form). Also reported when the active of the same GameObject is set both by a runtime value and by another value, and for a value that starts with {{ and has }} anywhere after it | binding-call・binding-empty・binding-in-text・binding-name-hyphen・binding-two-dots・literal-brace-closing-middle・literal-brace-closing・row-without-column |
MOCHI5003 | subset | <If>’s test isn’t a true or false fixed at generation. | if-not-bool |
MOCHI5004 | subset | A value that changes at runtime is written where a value fixed at generation belongs. | |
MOCHI5005 | subset | T# can’t track changes to the member written in active. | |
MOCHI5006 | subset | A function a binding calls reads a [Reactive] field, [Computed] property or runtime prop of another instance or another class (a warning). The binding is not set again when that value changes (Values that change at runtime) |
Usage rules
Section titled “Usage rules”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI6001 | subset | The class of a part with a T# script writes to the field of one of its own props (Prop values). |
Defaults of values not written (warnings)
Section titled “Defaults of values not written (warnings)”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI7001 | subset | The root of a World Space Canvas has no sizeDelta (a warning). The generated object keeps Unity’s default size (100 × 100), which is likely not the size you meant. If that size is what you want, write sizeDelta="100 100" and the warning goes away |
Whether T# is present
Section titled “Whether T# is present”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI8001 | environment | A part, or a binding that calls a function, needs T#, but T# is not in this environment. |
Unsupported and internal errors
Section titled “Unsupported and internal errors”| Number | Category | Meaning | Example |
|---|---|---|---|
MOCHI9001 | subset | Not supported yet. Write it a different way. | part-pivot-moved-root |
MOCHI9900 | tool | An internal MoCHI error. Report it with the file attached. |
Example
Section titled “Example”The following 84 examples are machine-checked down to the number that’s raised.
root-name-mismatch
Section titled “root-name-mismatch”MOCHI1003
<shelf prefab="true"> <Object name="Board"/></shelf>at-outside-prefab
Section titled “at-outside-prefab”MOCHI1004
<Room> <Object name="Door"> <At path=""/> </Object></Room><!-- file: Assets/Hall/Hall.mochi.xml --><Hall prefab="true"> <Room/></Hall>component-in-for
Section titled “component-in-for”MOCHI1004
<Stage prefab="true"> <Object name="Wall"> <For each="art" in="folder('../Gallery/art/')"> <MeshFilter mesh="builtin:Quad"/> </For> </Object></Stage>else-without-if
Section titled “else-without-if”MOCHI1004
<Shelf prefab="true"> <Object name="Top"/> <Else> <Object name="Bottom"/> </Else></Shelf>prop-child
Section titled “prop-child”MOCHI1004
<Shelf prefab="true"> <Label/></Shelf><!-- file: Assets/Example/Label.mochi.xml --><Label> <Props> <Prop name="text" type="string"> <Object name="Default"/> </Prop> </Props> <Object name="{text}"/></Label>row-in-canvas
Section titled “row-in-canvas”MOCHI1004
<Menu prefab="true"> <Object name="Panel"> <Canvas renderMode="WorldSpace"/> <Row spacing="10"> <Object name="A"><Image/></Object> <Object name="B"><Image/></Object> </Row> </Object></Menu>transform-element
Section titled “transform-element”MOCHI1004
<Stage prefab="true"> <Object name="Box"> <Transform position="0 1 0"/> </Object></Stage>two-props
Section titled “two-props”MOCHI1004
<Hall prefab="true"> <Plaque title="Welcome" offset="0 2 0"/></Hall><!-- file: Assets/Hall/Plaque.mochi.xml --><Plaque> <Props> <Prop name="title" type="string"/> </Props> <Props> <Prop name="offset" type="Vector3"/> </Props> <Object name="{title}" position="{offset}"/></Plaque>anchored-position3d-root
Section titled “anchored-position3d-root”MOCHI1005
<Sign prefab="true"> <Object name="Panel" scale="0.001 0.001 0.001" sizeDelta="800 400" anchoredPosition3D="0 0 -20"> <Canvas renderMode="WorldSpace"/> </Object></Sign>anchored-position3d-with-anchored-position
Section titled “anchored-position3d-with-anchored-position”MOCHI1005
<Sign prefab="true"> <Object name="Panel" scale="0.001 0.001 0.001" sizeDelta="800 400"> <Canvas renderMode="WorldSpace"/> <Object name="Title" anchoredPosition="0 120" anchoredPosition3D="0 120 -20" sizeDelta="600 80"> <TextMeshProUGUI text="Gallery"/> </Object> </Object></Sign>component-attribute
Section titled “component-attribute”MOCHI1005
<Lamp prefab="true"> <Object name="Bulb"> <Light brightness="2"/> </Object></Lamp>prop-object-default
Section titled “prop-object-default”MOCHI1005
<Hall prefab="true"> <Seat name="Seat"/></Hall><!-- file: Assets/Hall/Seat.mochi.xml --><Seat> <Props> <Prop name="target" type="Object" default="../Exit"/> </Props> <Object name="Cushion"> <VRCStation stationExitPlayerLocation="{target}"/> </Object></Seat>props-attribute
Section titled “props-attribute”MOCHI1005
<Sign prefab="true"> <Props count="1"/></Sign>rect-position
Section titled “rect-position”MOCHI1005
<Board prefab="true"> <Object name="Panel"> <Canvas renderMode="WorldSpace"/> <Object name="Title" position="0 40 0"> <TextMeshProUGUI text="Gallery"/> </Object> </Object></Board>root-attribute
Section titled “root-attribute”MOCHI1005
<Stage prefab="true" position="0 1 0"> <Object name="Floor"/></Stage>row-child-position
Section titled “row-child-position”MOCHI1005
<Shelf prefab="true"> <Row name="Books" spacing="0.05"> <Object name="A" size="0.1 0.3 0.2"/> <Object name="B" size="0.1 0.3 0.2" position="0.5 0 0"/> </Row></Shelf>row-with-size
Section titled “row-with-size”MOCHI1005
<Shelf prefab="true"> <Row name="Books" size="1 0.3 0.2"> <Object name="A" size="0.1 0.3 0.2"/> </Row></Shelf>tag-attribute
Section titled “tag-attribute”MOCHI1005
<Lobby prefab="true"> <Object name="Door" tag="Respawn"/></Lobby>text-in-element
Section titled “text-in-element”MOCHI1006
<Field prefab="true"> <Object name="Sign">Welcome</Object></Field>namespace
Section titled “namespace”MOCHI1007
<Sign prefab="true" xmlns="urn:example"> <Object name="Board"/></Sign>grid-without-columns
Section titled “grid-without-columns”MOCHI1008
<Tiles prefab="true"> <Grid name="Board" spacing="0.5"> <Object name="A" size="1 1 0.1"/> </Grid></Tiles>pivot-without-size
Section titled “pivot-without-size”MOCHI1008
<Office prefab="true"> <Object name="Desk" pivot="0.5 0 0.5"/></Office>repeat-without-gap
Section titled “repeat-without-gap”MOCHI1008
<Hall prefab="true"> <Prefab src="../Kit/KitRoom.prefab" fill="Mount*" overflow="repeat"> <For each="art" in="folder('../Gallery/art/')"> <Object key="{art.key}" name="{art.title}"/> </For> <For each="row" in="table('../Data/art.csv')"> <Object key="{row.key}" name="{row.title}"/> </For> <Object name="Guide"/> </Prefab></Hall>row-child-without-size
Section titled “row-child-without-size”MOCHI1008
<Shelf prefab="true"> <Row name="Books" spacing="0.05"> <Object name="A" size="0.1 0.3 0.2"/> <Object name="B"/> </Row></Shelf>texture-without-material
Section titled “texture-without-material”MOCHI1008
<Wall prefab="true"> <Object name="Canvas"> <MeshFilter mesh="builtin:Quad"/> <MeshRenderer mainTexture="art/01_Sea.png"/> </Object></Wall>bool-capital
Section titled “bool-capital”MOCHI1009
<Field prefab="true"> <Object name="Hidden" active="False"/></Field>color-name
Section titled “color-name”MOCHI1009
<Field prefab="true"> <Object name="Lamp"> <Light color="orange"/> </Object></Field>color-short
Section titled “color-short”MOCHI1009
<Lamp prefab="true"> <Object name="Bulb"> <Light color="#FFF"/> </Object></Lamp>columns-too-many
Section titled “columns-too-many”MOCHI1009
<Wall prefab="true"> <Grid columns="10001"> <Object size="1 1 0"/> </Grid></Wall>enum-case
Section titled “enum-case”MOCHI1009
<Lamp prefab="true"> <Object name="Bulb"> <Light type="point"/> </Object></Lamp>fill-binding
Section titled “fill-binding”MOCHI1009
<Room> <Props> <Prop name="mounts" type="string" default="Mount*"/> </Props> <Prefab src="../Kit/KitRoom.prefab" fill="{mounts}"/></Room><!-- file: Assets/Hall/Hall.mochi.xml --><Hall prefab="true"> <Room/></Hall>layer-name-unknown
Section titled “layer-name-unknown”MOCHI1009
<Watcher prefab="true"> <Object name="Camera"> <Camera cullingMask="Default; Glass"/> </Object></Watcher>name-empty
Section titled “name-empty”MOCHI1009
<Sign prefab="true"> <Object name=""/></Sign>number-exponent
Section titled “number-exponent”MOCHI1009
<Field prefab="true"> <Object name="Far" position="0 0 1e3"/></Field>slot-binding
Section titled “slot-binding”MOCHI1009
<Board prefab="true"> <Props> <Prop name="where" type="string" default="title"/> </Props> <Card> <Object name="Title" slot="{where}"/> </Card></Board><!-- file: Assets/Example/Card.mochi.xml --><Card> <Object name="Top"><Slot name="title"/></Object></Card>static-unknown
Section titled “static-unknown”MOCHI1009
<Lobby prefab="true"> <Object name="Floor" static="navigation"/></Lobby>value-out-of-range
Section titled “value-out-of-range”MOCHI1009
<Loud prefab="true"> <Object name="Radio"> <AudioSource volume="1.5"/> </Object></Loud>vector-comma
Section titled “vector-comma”MOCHI1009
<Field prefab="true"> <Object name="Sign" position="0,1.5,0"/></Field>vector-two-numbers
Section titled “vector-two-numbers”MOCHI1009
<Sign prefab="true"> <Object name="Board" position="0 1.5"/></Sign>component-not-allowed
Section titled “component-not-allowed”MOCHI1010
<Walker prefab="true"> <Object name="Body"> <CharacterController/> </Object></Walker>audio-filter-alone
Section titled “audio-filter-alone”MOCHI1011
<Muffled prefab="true"> <Object name="Radio"> <AudioLowPassFilter cutoffFrequency="800"/> </Object></Muffled>builtin-material-color
Section titled “builtin-material-color”MOCHI2001
<Tint prefab="true"> <Object name="Box"> <MeshFilter mesh="builtin:Cube"/> <MeshRenderer material="builtin:Default-Material" color="#FF0000"/> </Object></Tint>path-backslash
Section titled “path-backslash”MOCHI2001
<Entrance prefab="true"> <Prefab src="..\Kit\KitFrame.prefab"/></Entrance>path-outside
Section titled “path-outside”MOCHI2001
<Hall prefab="true"> <Prefab src="../../Kit/KitFrame.prefab"/></Hall>table-key-column
Section titled “table-key-column”MOCHI2005
<Index prefab="true"> <For each="r" in="table('rooms.csv')"> <Object name="{r.title}" key="{r.key}"/> </For></Index><!-- file: Assets/Example/rooms.csv -->id,key,titleeast,1,East Roomwest,2,West Roomtable-empty-id
Section titled “table-empty-id”MOCHI2006
<Index prefab="true"> <For each="r" in="table('rooms.csv')"> <Object name="{r.title}" key="{r.key}"/> </For></Index><!-- file: Assets/Example/rooms.csv -->id,titleeast,East Room,West Roomtable-row-without-key
Section titled “table-row-without-key”MOCHI2006
<Index prefab="true"> <For each="r" in="table('rooms.csv')"> <Object name="{r.title}"/> </For></Index><!-- file: Assets/Example/rooms.csv -->titleEast RoomWest Roomdata-source-double-quote
Section titled “data-source-double-quote”MOCHI2007
<Wall prefab="true"> <For each="art" in="folder("art/")"> <Object key="{art.key}" name="{art.title}"/> </For></Wall>for-in-from-prop
Section titled “for-in-from-prop”MOCHI2007
<Wall prefab="true"> <Props> <Prop name="source" type="string" default="folder('art/')"/> </Props> <For each="art" in="{source}"> <Object key="{art.key}" name="{art.title}"/> </For></Wall>at-path-not-found
Section titled “at-path-not-found”MOCHI2010
<Wall prefab="true"> <Framed/></Wall><!-- file: Assets/Example/Framed.mochi.xml --><Framed> <Prefab src="../Kit/KitFrame.prefab"> <At path="Plate/Title" active="false"/> </Prefab></Framed>slot-unknown
Section titled “slot-unknown”MOCHI2012
<Board prefab="true"> <Card> <Object name="Footer" slot="footer"/> </Card></Board><!-- file: Assets/Example/Card.mochi.xml --><Card> <Object name="Top"><Slot name="title"/></Object></Card>object-ref-not-found
Section titled “object-ref-not-found”MOCHI2015
<Menu prefab="true"> <Object name="Panel"> <Canvas renderMode="WorldSpace"/> <ScrollRect content="Contents"/> <Object name="Content"/> </Object></Menu>prop-object-not-found
Section titled “prop-object-not-found”MOCHI2015
<Hall prefab="true"> <Seat name="Seat" target="../Exit"/></Hall><!-- file: Assets/Hall/Seat.mochi.xml --><Seat> <Props> <Prop name="target" type="Object"/> </Props> <Object name="Cushion"> <VRCStation stationExitPlayerLocation="{target}"/> </Object></Seat>object-ref-no-component
Section titled “object-ref-no-component”MOCHI2016
<Menu prefab="true"> <Object name="Panel"> <Canvas renderMode="WorldSpace"/> <Object name="Close"> <Button targetGraphic="../Label"/> </Object> <Object name="Label"/> </Object></Menu>duplicate-part-name
Section titled “duplicate-part-name”MOCHI3002
<Hall prefab="true"> <Sign/></Hall><!-- file: Assets/Hall/Sign.mochi.xml --><Sign> <Object name="Board"/></Sign><!-- file: Assets/Parts/Sign.mochi.xml --><Sign> <Object name="Plate"/></Sign>builtin-part-name
Section titled “builtin-part-name”MOCHI3003
<Grid prefab="true"> <Object name="Tile"/></Grid>part-cycle
Section titled “part-cycle”MOCHI3004
<Tower prefab="true"> <Floor/></Tower><!-- file: Assets/Example/Floor.mochi.xml --><Floor> <Object name="Slab"/> <Floor position="0 3 0"/></Floor>prop-undeclared
Section titled “prop-undeclared”MOCHI3005
<Hall prefab="true"> <Plaque name="Entrance" title="Welcome" colour="#FF0000"/></Hall><!-- file: Assets/Hall/Plaque.mochi.xml --><Plaque> <Props> <Prop name="title" type="string"/> </Props> <Object name="{title}"/></Plaque>prop-object-as-name
Section titled “prop-object-as-name”MOCHI3006
<Hall prefab="true"> <Object name="Exit"/> <Sign name="Sign" target="../Exit"/></Hall><!-- file: Assets/Hall/Sign.mochi.xml --><Sign> <Props> <Prop name="target" type="Object"/> </Props> <Object name="{target}"/></Sign>prop-type-case
Section titled “prop-type-case”MOCHI3006
<Sign prefab="true"> <Props> <Prop name="count" type="Int" default="1"/> </Props></Sign>prop-wrong-type
Section titled “prop-wrong-type”MOCHI3006
<Hall prefab="true"> <Rack shelves="1.5"/></Hall><!-- file: Assets/Hall/Rack.mochi.xml --><Rack> <Props> <Prop name="shelves" type="int"/> </Props> <Object name="Frame"/></Rack>prop-reserved
Section titled “prop-reserved”MOCHI3007
<Hall prefab="true"> <Plaque/></Hall><!-- file: Assets/Hall/Plaque.mochi.xml --><Plaque> <Props> <Prop name="position" type="Vector3" default="0 1 0"/> </Props> <Object name="Board" position="{position}"/></Plaque>entry-prop-without-default
Section titled “entry-prop-without-default”MOCHI3008
<Stage prefab="true"> <Props> <Prop name="title" type="string"/> </Props> <Object name="{title}"/></Stage>prop-missing
Section titled “prop-missing”MOCHI3008
<Hall prefab="true"> <Plaque name="Entrance"/></Hall><!-- file: Assets/Hall/Plaque.mochi.xml --><Plaque> <Props> <Prop name="title" type="string"/> </Props> <Object name="{title}"/></Plaque>override-missing-component
Section titled “override-missing-component”MOCHI3010
<Wall prefab="true"> <Framed/></Wall><!-- file: Assets/Example/Framed.mochi.xml --><Framed> <Prefab src="../Kit/KitFrame.prefab"> <Light intensity="2"/> </Prefab></Framed>slot-twice
Section titled “slot-twice”MOCHI3011
<Board prefab="true"> <Card/></Board><!-- file: Assets/Example/Card.mochi.xml --><Card> <Object name="Front"><Slot/></Object> <Object name="Back"><Slot/></Object></Card>too-many-to-fill
Section titled “too-many-to-fill”MOCHI3012
<Hall prefab="true"> <Prefab src="../Kit/KitRoom.prefab" fill="Mount*"> <For each="art" in="folder('../Gallery/art/')"> <Object key="{art.key}" name="{art.title}"/> </For> <For each="row" in="table('../Data/art.csv')"> <Object key="{row.key}" name="{row.title}"/> </For> <Object name="Guide"/> </Prefab></Hall>override-in-entry
Section titled “override-in-entry”MOCHI3013
<Wall prefab="true"> <Prefab src="../Kit/KitFrame.prefab"> <At path="Plate/Label" active="false"/> </Prefab></Wall>component-key-twice
Section titled “component-key-twice”MOCHI4001
<Speaker prefab="true"> <Object name="Box"> <AudioSource key="music"/> <BoxCollider key="music"/> </Object></Speaker>for-constant-key
Section titled “for-constant-key”MOCHI4001
<Shelf prefab="true"> <For each="art" in="folder('../Gallery/art/')"> <Object key="frame" name="{art.title}"/> </For></Shelf>same-name-different-image
Section titled “same-name-different-image”MOCHI4001
<Wall prefab="true"> <Object name="Canvas"> <MeshFilter mesh="builtin:Quad"/> <MeshRenderer material="../Art/Frame.mat" mainTexture="art/01_Sea.png"/> </Object> <Object name="canvas" position="2 0 0"> <MeshFilter mesh="builtin:Quad"/> <MeshRenderer material="../Art/Frame.mat" mainTexture="art/02_Moon.png"/> </Object></Wall>same-name-siblings
Section titled “same-name-siblings”MOCHI4001
<Gate prefab="true"> <Object name="Pillar" position="-2 0 0"/> <Object name="Pillar" position="2 0 0"/></Gate>caller-row-not-visible
Section titled “caller-row-not-visible”MOCHI5001
<Wall prefab="true"> <For each="art" in="folder('art/')"> <Caption key="{art.key}"/> </For></Wall><!-- file: Assets/Gallery/Caption.mochi.xml --><Caption> <Object name="{art.title}"/></Caption>default-with-binding
Section titled “default-with-binding”MOCHI5001
<Sign prefab="true"> <Props> <Prop name="title" type="string" default="Hall"/> <Prop name="caption" type="string" default="{title}"/> </Props> <Object name="{caption}"/></Sign>binding-call
Section titled “binding-call”MOCHI5002
<Sign prefab="true"> <Object name="{Title()}"/></Sign>binding-empty
Section titled “binding-empty”MOCHI5002
<Sign prefab="true"> <Object name="{}"/></Sign>binding-in-text
Section titled “binding-in-text”MOCHI5002
<Rooms prefab="true"> <For each="art" in="folder('../Gallery/art/')"> <Object key="{art.key}" name="Room {art.title}"/> </For></Rooms>binding-name-hyphen
Section titled “binding-name-hyphen”MOCHI5002
<Hall prefab="true"> <Plaque my-title="Welcome"/></Hall><!-- file: Assets/Hall/Plaque.mochi.xml --><Plaque> <Props> <Prop name="my-title" type="string"/> </Props> <Object name="{my-title}"/></Plaque>binding-two-dots
Section titled “binding-two-dots”MOCHI5002
<Wall prefab="true"> <For each="art" in="folder('art/')"> <Object key="{art.key}" name="{art.title.text}"/> </For></Wall>literal-brace-closing-middle
Section titled “literal-brace-closing-middle”MOCHI5002
<Score prefab="true"> <Object name="{{score}} pts"/></Score>literal-brace-closing
Section titled “literal-brace-closing”MOCHI5002
<Notes prefab="true"> <Object name="{{score}}"/></Notes>row-without-column
Section titled “row-without-column”MOCHI5002
<Rooms prefab="true"> <For each="art" in="folder('../Gallery/art/')"> <Object name="{art}"/> </For></Rooms>if-not-bool
Section titled “if-not-bool”MOCHI5003
<Fair prefab="true"> <Props> <Prop name="count" type="int" default="2"/> </Props> <If test="{count}"> <Object name="Lamp"/> </If></Fair>part-pivot-moved-root
Section titled “part-pivot-moved-root”MOCHI9001
<Office prefab="true"> <Desk pivot="0.5 0 0.5"/></Office><!-- file: Assets/Example/Desk.mochi.xml --><Desk> <Object name="Top" size="1.2 0.05 0.6" rotation="0 30 0"/></Desk>