Skip to content

Parent Components

­Sollace edited this page Nov 14, 2020 · 13 revisions

Parent components are components capable of holding other components (children). They typically don't render anything on their own and are only there to serve as a grouping and way to transform/rotate/animate groups of model components that are otherwise static.

< Back to Component Types

Cuboid (mson:compound)

Haschildren, Rotateable, Texturable, Nameable

Default type for children: mson:compound. Default type for cubes: mson:box.

A compound. Serves as the parent to other boxes and compounds. It supports rotations and translations, and is typically needed to build more complex models that can be moved.

Aliases (Modders)

Fabric (Yarn) - ModelPart
Forge (MCP) - ModelRenderer
Blockbench - Group

Attributes

Attribute Name Attribute Type Default Value Supports Variables Description
center number[3] [0, 0, 0] Yes Defines the rotation point, the centre around which this component is rotated.
offset number[3] [0, 0, 0] Yes An offset applied to all children of this compound.
rotate number_angle[3] [0, 0, 0] Yes Defines the rotation around the centre, in degrees.
mirror boolean[3] [f, f, f] No Defines the XYZ mirroring of this component's textures.
visible boolean t No Whether this component is visible or not.
texture texture {inherited} Yes Defines the texture u, v, w, and h for this component. #see Textures for more details.
name text {none} No If given, this component will be made available to the model code at runtime by this name.
cubes Box[*] [] No A list of boxes or box-compatible components to display inside this compound.
children Component[*] [] No A list of other components (typically other Compounds to nest inside this component.

Planar (mson:planar)

Haschildren, Rotateable, Texturable, Nameable

Default type for children: mson:compound. Default type for cubes: mson:box.

Extends: mson:compound.

A special case of the mson:compound intended for adding sets of related planes more. This component supports all of the same attributes, with one small additions: You can define a list of planes to include, and each plane facing the same direction will be stitched together in a way that stretching does not cause them to overlap.

Aliases (Modders)

There is no equivalent to this in vanilla or blockbench, sorry.

Attributes

Supports all the attributes from mson:compound plus the following:

Attribute Name Attribute Type Default Value Supports Variables Description
stretch number[3] {inherited} No The XYZ stretch factor. The elements inside this component will be expanded along each axis as determined by this value.
{face} compactplane* [] No Attribute where {face} can be replaced by any of the supported directions. #See Facing for more details. When initialised, the planes in this attribute will all have the same facing, and will be stitched together into one face.

Compact Plane

Special case of a plane defined as an array of its components. Can be either one compact plane, or an array of multiples to be combined.

Typically a compact plane are defined in one of two ways: [ x, y, z, width, height ] or [ x, y, z, width, height, u, v ]. U and V are optional, and when not defined will be inherited from the parent.

Clone this wiki locally