SCHEMAS DOCUMENTATION Version: 1.21.40.3
Index
Back to top
Overview
These are the data format schemas for content creators to reference when editing or creating new content.Back to top
Schemas
```--------chance_information:1.14.0:{ int "numerator"<0-*> int "denominator"<1-*>}----------block_reference:1.10.0:{ string "name" object "states" { bool "\w*:?\w+" : opt int "\w*:?\w+" : opt string "\w*:?\w+" : opt }}----------persona_actor_animation:1.8.0:{ version "format_version" object "animations" { object "animation." { bool "loop" : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame" string "loop"<"hold_on_last_frame"> : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame" molang "start_delay" : opt // How long to wait in seconds before playing this animation. Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again. A looping animation should use 'loop_delay' if it wants a delay between loops. molang "loop_delay" : opt // How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only. molang "anim_time_update" : opt // how does time pass when playing the animation. Defaults to "query.anim_time + query.delta_time" which means advance in seconds. molang "blend_weight" : opt bool "override_previous_animation" : opt // reset bones in this animation to the default pose before applying this animation object "bones" : opt { object "" { object "relative_to" : opt { string "rotation"<"entity"> : opt // if set, makes the bone rotation relative to the entity instead of the bone's parent } molang "position" : opt array "position" : opt { molang "" } object "position" : opt { array ""[3] { molang "" } object "" { enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt array "pre"[3] : opt { molang "" } array "post"[3] : opt { molang "" } } } molang "rotation" : opt array "rotation" : opt { molang "" object "" { molang "[xyz]" } } object "rotation" : opt { array ""[3] { molang "" } object "" { enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt array "pre"[3] : opt { molang "" } array "post"[3] : opt { molang "" } } } molang "scale" : opt array "scale" : opt { molang "" } object "scale" : opt { array ""[3] { molang "" } object "" { enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt array "pre"[3] : opt { molang "" } array "post"[3] : opt { molang "" } } } } } object "particle_effects" : opt { object "" : opt { string "effect" // The name of a particle effect that should be played string "locator" : opt // The name of a locator on the actor where the effect should be located molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor). } array "" : opt { object "" : opt { string "effect" // The name of a particle effect that should be played string "locator" : opt // The name of a locator on the actor where the effect should be located molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor). } } } object "sound_effects" : opt // sound effects to trigger as this animation plays, keyed by time { object "" : opt { string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file. } array "" : opt { object "" : opt { string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file. } } } object "timeline" : opt { string "" : opt array "" : opt { string "" : opt } } float "animation_length" : opt // override calculated value (set as the max keyframe or event time) and set animation length in seconds. } }}----------geometry:1.8.0:{ bool "debug" : opt version "format_version" object "geometry.[a-zA-Z0-9_.'-:]+" { bool "debug" : opt float "visible_bounds_width" : opt float "visible_bounds_height" : opt array "visible_bounds_offset"[3] : opt { float "" } int "texturewidth" : opt int "textureheight" : opt string "cape" : opt array "bones" : opt { object "" : opt { string "name" bool "reset" : opt bool "neverRender" : opt string "parent" : opt array "pivot"[3] : opt { float "" } array "rotation"[3] : opt { float "" } array "bind_pose_rotation"[3] : opt { float "" : opt } bool "mirror" : opt float "inflate" : opt bool "debug" : opt int "render_group_id"<0-*> : opt array "cubes" : opt { object "" : opt { array "origin"[3] : opt { float "" } array "size"[3] : opt { float "" } array "uv"[2] : opt { float "" } float "inflate" : opt bool "mirror" : opt } } object "locators" : opt { array "" : opt { float "" : opt } } object "poly_mesh" : opt { bool "normalized_uvs" : opt array "positions" : opt { array ""[3] : opt { float "" } } array "normals" : opt { array ""[3] : opt { float "" } } array "uvs" : opt { array ""[2] : opt { float "" } } array "polys" { array ""[3,4] : opt { array ""[3] { float "" } } } string "polys"<"tri_list", "quad_list"> } array "texture_meshes" : opt { object "" { string "texture" array "position"[3] : opt { float "" } array "local_pivot"[3] : opt { float "" } array "rotation"[3] : opt { float "" } array "scale"[3] : opt { float "" } } } } } }}----------geometry:1.12.0:{ bool "debug" : opt version "format_version" array "minecraft:geometry"[1,*] { object "" { object "description" { string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier. float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units). float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units). array "visible_bounds_offset"[3] : opt { float "" // Offset of the visibility bounding box from the entity location point (in model space units). } int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry. int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry. } string "cape" : opt array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached. { object "" : opt { string "name" // Animation files refer to this bone via this identifier. string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it. array "pivot"[3] : opt { float "" // The bone pivots around this point (in model space units). } array "rotation"[3] : opt { float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order). } bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped. float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units). bool "debug" : opt int "render_group_id"<0-*> : opt array "cubes" : opt // This is the list of cubes associated with this bone. { object "" : opt { array "origin"[3] : opt { float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units). } array "size"[3] : opt { float "" // The cube extends this amount relative to its origin (in model space units). } array "rotation"[3] : opt { float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot. } array "pivot"[3] : opt { float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14. } float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only. bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube. array "uv"[2] : opt { float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box. } object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn. { object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis. { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } } } } object "locators" : opt { array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { float "" : opt // Position of the locator in model space. } object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { array "offset" { float "" : opt // Position of the locator in model space. } array "rotation" { float "" : opt // Rotation of the locator in model space. } bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone. } } object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry. { bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively. array "positions" : opt { array ""[3] : opt { float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections. } } array "normals" : opt { array ""[3] : opt { float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections. } } array "uvs" : opt { array ""[2] : opt { float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections. } } array "polys" { array ""[3,4] : opt { array ""[3] { float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order). } } } string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list" } array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes { object "" { string "texture" // The friendly-named texture to use. array "position"[3] : opt { float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry } array "local_pivot"[3] : opt { float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry } array "rotation"[3] : opt { float "" // The rotation (in degrees) of the texture geometry relative to the offset } array "scale"[3] : opt { float "" // The scale (in degrees) of the texture geometry relative to the offset } } } } } } }}----------geometry:1.14.0:{ version "format_version" bool "debug" : opt array "minecraft:geometry"[1,*] { object "" { object "description" { string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier. float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units). float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units). array "visible_bounds_offset"[3] : opt { float "" // Offset of the visibility bounding box from the entity location point (in model space units). } int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry. int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry. } string "cape" : opt array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached. { object "" : opt { string "name" // Animation files refer to this bone via this identifier. string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it. array "pivot"[3] : opt { float "" // The bone pivots around this point (in model space units). } array "rotation"[3] : opt { float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order). } bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped. float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units). bool "debug" : opt int "render_group_id"<0-*> : opt array "cubes" : opt // This is the list of cubes associated with this bone. { object "" : opt { array "origin"[3] : opt { float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units). } array "size"[3] : opt { float "" // The cube extends this amount relative to its origin (in model space units). } array "rotation"[3] : opt { float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot. } array "pivot"[3] : opt { float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. } float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only. bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube. array "uv"[2] : opt { float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box. } object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn. { object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis. { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } } } } object "locators" : opt { array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { float "" : opt // Position of the locator in model space. } object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { array "offset" { float "" : opt // Position of the locator in model space. } array "rotation" { float "" : opt // Rotation of the locator in model space. } bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone. } } object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry. { bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively. array "positions" : opt { array ""[3] : opt { float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections. } } array "normals" : opt { array ""[3] : opt { float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections. } } array "uvs" : opt { array ""[2] : opt { float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections. } } array "polys" { array ""[3,4] : opt { array ""[3] { float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order). } } } string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list" } array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes { object "" { string "texture" // The friendly-named texture to use. array "position"[3] : opt { float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry } array "local_pivot"[3] : opt { float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry } array "rotation"[3] : opt { float "" // The rotation (in degrees) of the texture geometry relative to the offset } array "scale"[3] : opt { float "" // The scale (in degrees) of the texture geometry relative to the offset } } } } } } }}----------geometry:1.16.0:{ version "format_version" bool "debug" : opt array "minecraft:geometry"[1,*] { object "" { object "description" { string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier. float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units). float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units). array "visible_bounds_offset"[3] : opt { float "" // Offset of the visibility bounding box from the entity location point (in model space units). } int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry. int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry. } string "cape" : opt array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached. { object "" : opt { string "name" // Animation files refer to this bone via this identifier. string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it. array "pivot"[3] : opt { float "" // The bone pivots around this point (in model space units). } array "rotation"[3] : opt { float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order). } bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped. float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units). bool "debug" : opt int "render_group_id"<0-*> : opt array "cubes" : opt // This is the list of cubes associated with this bone. { object "" : opt { array "origin"[3] : opt { float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units). } array "size"[3] : opt { float "" // The cube extends this amount relative to its origin (in model space units). } array "rotation"[3] : opt { float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot. } array "pivot"[3] : opt { float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. } float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only. bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube. array "uv"[2] : opt { float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box. } object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn. { object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis. { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } } } } molang "binding" : opt // useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the "parent" field). If that is also missing, it will attach to the owning entity's root transform. object "locators" : opt { array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { float "" : opt // Position of the locator in model space. } object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { array "offset" { float "" : opt // Position of the locator in model space. } array "rotation" { float "" : opt // Rotation of the locator in model space. } bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone. } } object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry. { bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively. array "positions" : opt { array ""[3] : opt { float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections. } } array "normals" : opt { array ""[3] : opt { float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections. } } array "uvs" : opt { array ""[2] : opt { float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections. } } array "polys" { array ""[3,4] : opt { array ""[3] { float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order). } } } string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list" } array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes { object "" { string "texture" // The friendly-named texture to use. array "position"[3] : opt { float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry } array "local_pivot"[3] : opt { float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry } array "rotation"[3] : opt { float "" // The rotation (in degrees) of the texture geometry relative to the offset } array "scale"[3] : opt { float "" // The scale (in degrees) of the texture geometry relative to the offset } } } } } } }}----------geometry:1.19.30:{ version "format_version" bool "debug" : opt array "minecraft:geometry"[1,*] { object "" { object "description" { string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier. float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units). float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units). array "visible_bounds_offset"[3] : opt { float "" // Offset of the visibility bounding box from the entity location point (in model space units). } int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry. int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry. } string "cape" : opt array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached. { object "" : opt { string "name" // Animation files refer to this bone via this identifier. string "parent" : opt // Bone that this bone is relative to. If the parent bone moves, this bone will move along with it. array "pivot"[3] : opt { float "" // The bone pivots around this point (in model space units). } array "rotation"[3] : opt { float "" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order). } bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped. float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units). bool "debug" : opt int "render_group_id"<0-*> : opt array "cubes" : opt // This is the list of cubes associated with this bone. { object "" : opt { array "origin"[3] : opt { float "" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units). } array "size"[3] : opt { float "" // The cube extends this amount relative to its origin (in model space units). } array "rotation"[3] : opt { float "" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot. } array "pivot"[3] : opt { float "" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. } float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only. bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube. array "uv"[2] : opt { float "" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box. } object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn. { object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis. { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis { array "uv"[2] { float "" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube. } array "uv_size"[2] : opt { float "" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead. } string "material_instance" : opt } } } } molang "binding" : opt // useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the "parent" field). If that is also missing, it will attach to the owning entity's root transform. object "locators" : opt { array "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { float "" : opt // Position of the locator in model space. } object "" : opt // This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation). { array "offset" { float "" : opt // Position of the locator in model space. } array "rotation" { float "" : opt // Rotation of the locator in model space. } bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone. } } object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry. { bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively. array "positions" : opt { array ""[3] : opt { float "" // Vertex positions for the mesh. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections. } } array "normals" : opt { array ""[3] : opt { float "" // Vertex normals. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections. } } array "uvs" : opt { array ""[2] : opt { float "" // Vertex UVs. Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections. } } array "polys" { array ""[3,4] : opt { array ""[3] { float "" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order). } } } string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list" } array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes { object "" { string "texture" // The friendly-named texture to use. array "position"[3] : opt { float "" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry } array "local_pivot"[3] : opt { float "" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry } array "rotation"[3] : opt { float "" // The rotation (in degrees) of the texture geometry relative to the offset } array "scale"[3] : opt { float "" // The scale (in degrees) of the texture geometry relative to the offset } } } } } } }}----------geometry:1.21.0:{ version "format_version" bool "debug" : opt array "minecraft:geometry"[1,*] { object "" { object "description" { string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier. float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units). float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units). array "visible_bounds_offset"[3] : opt { float "" // Offset of the visibility bounding box from the entity location point (in model space units). } int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry. int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry. } object "item_display_transforms" : opt // Components of the 3d matrix transform to be applied to this geometry when displayed in this item rendering context. Valid contexts: ["gui", "firstperson_righthand", "firstperson_lefthand", "thirdperson_righthand", "thirdperson_lefthand", "ground", "fixed", "head"]. { object "gui" : opt { array "translation"[3] : opt { float "" // Range: (-80, -80, -80) to (80, 80, 80). } array "rotation"[3] : opt { float "" // Range (in degrees): (-360, -360, -360) to (360, 360, 360). } array "scale"[3] : opt { float "" // Range: (0, 0, 0) to (4, 4, 4). } array "rotation_pivot"[3] : opt { float "" // The pivot point for the applied rotation. Range: (-80, -80, -80) to (80, 80, 80). } array "scale_pivot"[3] : opt { float "" // The pivot point for the applied scale. Range: (-80, -80, -80) to (80, 80, 80). } bool "fit_to_frame" : opt // If true, the geometry will be automatically scaled and translated to fit within the GUI frame. Default is 'true'. } object "firstperson_righthand" : opt { array "translation"[3] : opt { float "" // Range: (-80, -80, -80) to (80, 80, 80). } array "rotation"[3] : opt { float "" // Range (in degrees): (-360, -360, -360) to (360, 360, 360). } array "scale"[3] : opt { float "" // Range: (0, 0, 0) to (4, 4, 4). } array "rotation_pivot"[3] : opt { float "" // The pivot point for the applied rotation. Range: (-80, -80, -80) to (80, 80, 80). } array "scale_pivot"[3] : opt { float "" // The pivot point for the applied scale. Range: (-80, -80, -80) to (80, 80, 80). } } object "firstperson_lefthand" : opt { array "translation"[3] : opt { float "" // Range: (-80, -80, -80) to (80, 80, 80). } array "rotation"[3] : opt { float "" // Range (in degrees): (-360, -360, -360) to (360, 360, 360). } array "scale"[3] : opt { float "" // Range: (0, 0, 0) to (4, 4, 4). } array "rotation_pivot"[3] : opt { float "" // The pivot point for the applied rotation. Range: (-80, -80, -80) to (80, 80, 80). } array "scale_pivot"[3] : opt { float "" // The pivot point for the applied scale. Range: (-80, -80, -80) to (80, 80, 80). } } object "thirdperson_righthand" : opt { array "translation"[3] : opt { float "" // Range: (-80, -80, -80) to (80, 80, 80). } array "rotation"[3] : opt { float "" // Range (in degrees): (-360, -360, -360) to (360, 360, 360). } array "scale"[3] : opt { float "" // Range: (0, 0, 0) to (4, 4, 4). } array "rotation_pivot"[3] : opt { float "" // The pivot point for the applied rotation. Range: (-80, -80, -80) to (80, 80, 80). } array "scale_pivot"[3] : opt { float "" // The pivot point for the applied scale. Range: (-80, -80, -80) to (80, 80, 80). } } object "thirdperson_lefthand" : opt { array "translation"[3] : opt { float "" // Range: (-80, -80, -80) to (80, 80, 80). } array "rotation"[3] : opt { float "" // Range (in degrees): (-360, -360, -360) to (360, 360, 360). } array "scale"[3] : opt { float "" // Range: (0, 0, 0) to (4, 4, 4). } array "rotation_pivot"[3] : opt { float "" // The pivot point for the applied rotation. Range: (-80, -80, -80) to (80, 80, 80). } array "scale_pivot"[3] : opt { float "" // The pivot point for the applied scale. Range: (-80, -80, -80) to (80, 80, 80). } } object "ground" : opt { array "translation"[3] : opt { float "" // Range: (-80, -80, -80) to (80, 80, 80). } array "rotation"[3] : opt { float "" // Range (in degrees): (-360, -360, -360) to (360, 360, 360). } array "scale"[3] : opt { float "" // Range: (0, 0, 0) to (4, 4, 4). } array "rotation_pivot"[3] : opt { float "" // The pivot point for the applied rotation. Range: (-80, -80, -80) to (80, 80, 80). } array "scale_pivot"[3] : opt { float "