Skip to main content
Glama
playcanvas

PlayCanvas Editor MCP Server

Official
by playcanvas

add_components

Idempotent

Add one or more components (camera, light, render, collision, rigidbody, etc.) to an existing entity by specifying initial data for each. Returns the updated entity summary.

Instructions

Add one or more components to an existing entity (camera, light, render, collision, rigidbody, element, screen, script, sound, etc.). Pass each component's initial data under its name. Returns the updated entity summary. Physics note: rigidbody/collision components only simulate when the project has the Ammo physics module enabled (Editor: IMPORT AMMO / enable physics in project settings). If it is not enabled, add the components then enable Ammo — do not stall on the decision. When NOT to use: to create a new entity (use create_entities), to tweak an existing component property (use modify_entities), or to attach a script to a script component (use attach_script).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesEntity ID
componentsYesEntity components

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed218 schema fields changedv0.7.0
    • changedInput schema / properties / components / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / description
      Previous value: -"A dictionary that contains the components of the entity and their data."New value: +"Entity components"
    • addedInput schema / properties / components / properties / anim
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Anim component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / components / properties / animation
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Animation (legacy) component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / components / properties / audiolistener / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / audiolistener / description
      Previous value: -"The data for the audio listener component."New value: +"Audio listener component"
    • removedInput schema / properties / components / properties / audiolistener / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • addedInput schema / properties / components / properties / button
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Button component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / components / properties / camera / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / camera / description
      Previous value: -"The data for the camera component."New value: +"Camera component"
    • changedInput schema / properties / components / properties / camera / properties / clearColor / description
      Previous value: -"The color used to clear the camera's render target. Default: [0.118, 0.118, 0.118, 1]"New value: +"Clear color"
    • changedInput schema / properties / components / properties / camera / properties / clearColor / items
      Previous value: -[
      -  {
      -    "description": "Red",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Green",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Blue",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Alpha",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  }
      -]New value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / components / properties / camera / properties / clearColorBuffer / description
      Previous value: -"If true, the camera will explicitly clear its render target to the chosen clear color before rendering the scene. Default: true"New value: +"Clear color buffer"
    • changedInput schema / properties / components / properties / camera / properties / clearDepthBuffer / description
      Previous value: -"If true, the camera will explicitly clear the depth buffer of its render target before rendering the scene. Default: true"New value: +"Clear depth buffer"
    • removedInput schema / properties / components / properties / camera / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • removedInput schema / properties / components / properties / camera / properties / farClip / description
      Removed value: -"The distance in camera space from the camera's eye point to the far plane. Default: 1000"
    • changedInput schema / properties / components / properties / camera / properties / fov / description
      Previous value: -"The angle (in degrees) between top and bottom clip planes of a perspective camera. Default: 45"New value: +"Field of view degrees"
    • removedInput schema / properties / components / properties / camera / properties / frustumCulling / description
      Removed value: -"Controls the culling of mesh instances against the camera frustum. If true, culling is enabled. If false, all mesh instances in the scene are rendered by the camera, regardless of visibility. Default: true"
    • changedInput schema / properties / components / properties / camera / properties / gammaCorrection / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "GAMMA_NONE",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "GAMMA_SRGB",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "None",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "sRGB",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / camera / properties / gammaCorrection / description
      Removed value: -"The gamma correction to apply to the final color of the camera. Default: 1 (GAMMA_SRGB)"
    • removedInput schema / properties / components / properties / camera / properties / layers / description
      Removed value: -"An array of layer id's that this camera will render. Default: [0, 1, 2, 3, 4]"
    • removedInput schema / properties / components / properties / camera / properties / nearClip / description
      Removed value: -"The distance in camera space from the camera's eye point to the near plane. Default: 0.1"
    • changedInput schema / properties / components / properties / camera / properties / orthoHeight / description
      Previous value: -"The distance in world units between the top and bottom clip planes of an orthographic camera. Default: 4"New value: +"Ortho height"
    • removedInput schema / properties / components / properties / camera / properties / priority / description
      Removed value: -"A number that defines the order in which camera views are rendered by the engine. Smaller numbers are rendered first. Default: 0"
    • changedInput schema / properties / components / properties / camera / properties / projection / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "PROJECTION_PERSPECTIVE",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "PROJECTION_ORTHOGRAPHIC",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "Perspective",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "Orthographic",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / camera / properties / projection / description
      Removed value: -"The projection type of the camera. Default: 0 (PROJECTION_PERSPECTIVE)"
    • changedInput schema / properties / components / properties / camera / properties / rect / description
      Previous value: -"An array of 4 numbers that represents the rectangle that specifies the viewport onto the camera's attached render target. This allows you to implement features like split-screen or picture-in-picture. It is defined by normalized coordinates (0 to 1) in the following format: [The lower left x coordinate, The lower left y coordinate, The width of the rectangle, The height of the rectangle]. Default: [0, 0, 1, 1]"New value: +"Viewport rect [x,y,w,h]"
    • changedInput schema / properties / components / properties / camera / properties / rect / items
      Previous value: -[
      -  {
      -    "description": "X",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Y",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Z",
      -    "type": "number"
      -  },
      -  {
      -    "description": "W",
      -    "type": "number"
      -  }
      -]New value: +{
      +  "type": "number"
      +}
    • removedInput schema / properties / components / properties / camera / properties / renderSceneColorMap / description
      Removed value: -"If true, the camera will render the scene color map. Default: false"
    • removedInput schema / properties / components / properties / camera / properties / renderSceneDepthMap / description
      Removed value: -"If true, the camera will render the scene depth map. Default: false"
    • changedInput schema / properties / components / properties / camera / properties / toneMapping / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "TONEMAP_LINEAR",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "TONEMAP_FILMIC",
      -    "type": "number"
      -  },
      -  {
      -    "const": 2,
      -    "description": "TONEMAP_HEJL",
      -    "type": "number"
      -  },
      -  {
      -    "const": 3,
      -    "description": "TONEMAP_ACES",
      -    "type": "number"
      -  },
      -  {
      -    "const": 4,
      -    "description": "TONEMAP_ACES2",
      -    "type": "number"
      -  },
      -  {
      -    "const": 5,
      -    "description": "TONEMAP_NEUTRAL",
      -    "type": "number"
      -  },
      -  {
      -    "const": 6,
      -    "description": "TONEMAP_NONE",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "Linear",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "Filmic",
      +    "type": "number"
      +  },
      +  {
      +    "const": 2,
      +    "description": "Hejl",
      +    "type": "number"
      +  },
      +  {
      +    "const": 3,
      +    "description": "ACES",
      +    "type": "number"
      +  },
      +  {
      +    "const": 4,
      +    "description": "ACES2",
      +    "type": "number"
      +  },
      +  {
      +    "const": 5,
      +    "description": "Neutral",
      +    "type": "number"
      +  },
      +  {
      +    "const": 6,
      +    "description": "None",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / camera / properties / toneMapping / description
      Removed value: -"The tonemapping transform to apply to the final color of the camera. Default: 0 (TONEMAP_LINEAR)"
    • changedInput schema / properties / components / properties / collision / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / collision / description
      Previous value: -"The data for the collision component."New value: +"Collision component. Requires the Ammo physics module to be enabled in the project (IMPORT AMMO) to take effect. halfExtents/radius are in LOCAL space and are multiplied by the entity world scale — size the collider via these fields rather than relying on entity scale."
    • changedInput schema / properties / components / properties / collision / properties / angularOffset / description
      Previous value: -"The rotational offset of the collision shape from the Entity rotation in local space. Default: [0, 0, 0]"New value: +"[x,y,z]"
    • changedInput schema / properties / components / properties / collision / properties / asset / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Asset ID",
      +    "exclusiveMinimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / components / properties / collision / properties / asset / description
      Previous value: -"The `id` of the model asset that will be used as a source for the triangle-based collision mesh. Default: null"New value: +"Model asset"
    • removedInput schema / properties / components / properties / collision / properties / axis / description
      Removed value: -"Aligns the capsule/cylinder with the local-space X, Y or Z axis of the entity. Default: 1"
    • removedInput schema / properties / components / properties / collision / properties / convexHull / description
      Removed value: -"If true, the collision shape will be a convex hull. Default: false"
    • removedInput schema / properties / components / properties / collision / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • changedInput schema / properties / components / properties / collision / properties / halfExtents / description
      Previous value: -"The half-extents of the collision box. This is an array of 3 numbers: local space half-width, half-height, and half-depth. Default: [0.5, 0.5, 0.5]"New value: +"Box half-extents"
    • changedInput schema / properties / components / properties / collision / properties / halfExtents / items
      Previous value: -[
      -  {
      -    "description": "X",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Y",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Z",
      -    "type": "number"
      -  }
      -]New value: +{
      +  "type": "number"
      +}
    • removedInput schema / properties / components / properties / collision / properties / height / description
      Removed value: -"The tip-to-tip height of the capsule/cylinder. Default: 2"
    • changedInput schema / properties / components / properties / collision / properties / linearOffset / description
      Previous value: -"The positional offset of the collision shape from the Entity position along the local axes. Default: [0, 0, 0]"New value: +"[x,y,z]"
    • removedInput schema / properties / components / properties / collision / properties / radius / description
      Removed value: -"The radius of the capsule/cylinder body. Default: 0.5"
    • changedInput schema / properties / components / properties / collision / properties / renderAsset / description
      Previous value: -"The `id` of the render asset that will be used as a source for the triangle-based collision mesh. Default: null"New value: +"Render asset"
    • removedInput schema / properties / components / properties / collision / properties / type / description
      Removed value: -"The type of collision primitive. Can be: box, sphere, capsule, cylinder, mesh. Default: \"box\""
    • changedInput schema / properties / components / properties / element / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / element / description
      Previous value: -"The data for the element component."New value: +"UI element component"
    • changedInput schema / properties / components / properties / element / properties / alignment / description
      Previous value: -"Horizontal and vertical alignment of the text relative to its element transform. Default: [0.5, 0.5]"New value: +"[x,y]"
    • changedInput schema / properties / components / properties / element / properties / anchor / description
      Previous value: -"An array of 4 numbers controlling the left, bottom, right and top anchors of the element. Default: [0.5, 0.5, 0.5, 0.5]"New value: +"[left,bottom,right,top]"
    • removedInput schema / properties / components / properties / element / properties / autoFitHeight / description
      Removed value: -"Automatically scale the font size to fit the element's height. Default: false"
    • removedInput schema / properties / components / properties / element / properties / autoFitWidth / description
      Removed value: -"Automatically scale the font size to fit the element's width. Default: false"
    • removedInput schema / properties / components / properties / element / properties / autoHeight / description
      Removed value: -"Automatically size height to match text content. Default: false"
    • removedInput schema / properties / components / properties / element / properties / autoWidth / description
      Removed value: -"Automatically size width to match text content. Default: false"
    • removedInput schema / properties / components / properties / element / properties / batchGroupId / description
      Removed value: -"The batch group id that this element belongs to. Default: null"
    • changedInput schema / properties / components / properties / element / properties / color / description
      Previous value: -"The RGB color of the element. Default: [1, 1, 1]"New value: +"RGB color [r,g,b] 0-1"
    • changedInput schema / properties / components / properties / element / properties / color / items
      Previous value: -[
      -  {
      -    "description": "Red",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Green",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Blue",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  }
      -]New value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • removedInput schema / properties / components / properties / element / properties / enableMarkup / description
      Removed value: -"Enable markup processing (only for text elements). Default: false"
    • removedInput schema / properties / components / properties / element / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • removedInput schema / properties / components / properties / element / properties / fitMode / description
      Removed value: -"Set how the content should be fitted and preserve the aspect ratio. Default: \"stretch\""
    • changedInput schema / properties / components / properties / element / properties / fontAsset / description
      Previous value: -"The `id` of the font asset used by the element. Default: null"New value: +"Nullable asset reference"
    • removedInput schema / properties / components / properties / element / properties / fontSize / description
      Removed value: -"The size of the font used by the element. Default: 32"
    • removedInput schema / properties / components / properties / element / properties / height / description
      Removed value: -"The height of the element. Default: 32"
    • changedInput schema / properties / components / properties / element / properties / key / description
      Previous value: -"The localization key of the element. Default: null"New value: +"Localization key"
    • removedInput schema / properties / components / properties / element / properties / layers / description
      Removed value: -"An array of layer ids that this element belongs to. Default: [4]"
    • removedInput schema / properties / components / properties / element / properties / lineHeight / description
      Removed value: -"The height of each line of text. Default: 32"
    • changedInput schema / properties / components / properties / element / properties / margin / description
      Previous value: -"Spacing between each edge of the element and the respective anchor. Default: [-16, -16, -16, -16]"New value: +"[x,y,z,w]"
    • removedInput schema / properties / components / properties / element / properties / mask / description
      Removed value: -"If true, this element acts as a mask for its children. Default: false"
    • changedInput schema / properties / components / properties / element / properties / materialAsset / description
      Previous value: -"The `id` of the material asset used by this element. Default: null"New value: +"Nullable asset reference"
    • removedInput schema / properties / components / properties / element / properties / maxFontSize / description
      Removed value: -"The maximum size of the font when using `autoFitWidth` or `autoFitHeight`. Default: 32"
    • removedInput schema / properties / components / properties / element / properties / maxLines / description
      Removed value: -"The maximum number of lines that this element can display. Default: null"
    • removedInput schema / properties / components / properties / element / properties / minFontSize / description
      Removed value: -"The minimum size of the font when using `autoFitWidth` or `autoFitHeight`. Default: 8"
    • removedInput schema / properties / components / properties / element / properties / opacity / description
      Removed value: -"The opacity of the element. Default: 1"
    • changedInput schema / properties / components / properties / element / properties / outlineColor / description
      Previous value: -"Text outline effect color and opacity. Default: [0, 0, 0, 1]"New value: +"RGBA color [r,g,b,a] 0-1"
    • removedInput schema / properties / components / properties / element / properties / outlineThickness / description
      Removed value: -"Text outline effect width (0–1). Default: 0"
    • changedInput schema / properties / components / properties / element / properties / pivot / description
      Previous value: -"An array of 2 numbers controlling the origin of the element. Default: [0.5, 0.5]"New value: +"[x,y]"
    • changedInput schema / properties / components / properties / element / properties / pivot / items
      Previous value: -[
      -  {
      -    "description": "X",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Y",
      -    "type": "number"
      -  }
      -]New value: +{
      +  "type": "number"
      +}
    • removedInput schema / properties / components / properties / element / properties / pixelsPerUnit / description
      Removed value: -"Number of pixels per PlayCanvas unit (used for 9-sliced sprites). Default: null"
    • changedInput schema / properties / components / properties / element / properties / rect / description
      Previous value: -"Texture rect for the image element (u, v, width, height). Default: [0, 0, 1, 1]"New value: +"Texture rect [u,v,w,h]"
    • changedInput schema / properties / components / properties / element / properties / shadowColor / description
      Previous value: -"Text shadow color and opacity. Default: [0, 0, 0, 1]"New value: +"RGBA color [r,g,b,a] 0-1"
    • changedInput schema / properties / components / properties / element / properties / shadowOffset / description
      Previous value: -"Horizontal and vertical offset of the text shadow. Default: [0.0, 0.0]"New value: +"[x,y]"
    • changedInput schema / properties / components / properties / element / properties / spacing / description
      Previous value: -"The spacing between each letter of the text. Default: 1"New value: +"Letter spacing"
    • changedInput schema / properties / components / properties / element / properties / spriteAsset / description
      Previous value: -"The `id` of the sprite asset to be used by the element. Default: null"New value: +"Nullable asset reference"
    • removedInput schema / properties / components / properties / element / properties / spriteFrame / description
      Removed value: -"The frame from the sprite asset to render. Default: 0"
    • removedInput schema / properties / components / properties / element / properties / text / description
      Removed value: -"The text content of the element. Default: \"\""
    • changedInput schema / properties / components / properties / element / properties / textureAsset / description
      Previous value: -"The `id` of the texture asset to be used by the element. Default: null"New value: +"Nullable asset reference"
    • removedInput schema / properties / components / properties / element / properties / type / description
      Removed value: -"The type of the element. Default: \"text\""
    • removedInput schema / properties / components / properties / element / properties / useInput / description
      Removed value: -"Enable this to make the element respond to input events. Default: false"
    • removedInput schema / properties / components / properties / element / properties / width / description
      Removed value: -"The width of the element. Default: 32"
    • removedInput schema / properties / components / properties / element / properties / wrapLines / description
      Removed value: -"Automatically wrap lines based on the element width. Default: true"
    • addedInput schema / properties / components / properties / layoutchild
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Layout child component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / components / properties / layoutgroup
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Layout group component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / components / properties / light / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / light / description
      Previous value: -"The data for the light component."New value: +"Light component"
    • removedInput schema / properties / components / properties / light / properties / affectDynamic / description
      Removed value: -"If true the light will affect non-lightmapped objects. Default: true"
    • removedInput schema / properties / components / properties / light / properties / affectLightmapped / description
      Removed value: -"If true the light will affect lightmapped objects. Default: false"
    • removedInput schema / properties / components / properties / light / properties / affectSpecularity / description
      Removed value: -"If true the light will affect material specularity. For directional light only. Default: true."
    • changedInput schema / properties / components / properties / light / properties / bake / description
      Previous value: -"If true the light will be rendered into lightmaps. Default: false"New value: +"Bake to lightmap"
    • removedInput schema / properties / components / properties / light / properties / bakeArea / description
      Removed value: -"If bake is enabled, specifies the directional light penumbra angle in degrees, allowing soft shadows. Default: 0"
    • removedInput schema / properties / components / properties / light / properties / bakeDir / description
      Removed value: -"If true and `bake` is true, the light's direction will contribute to directional lightmaps. Default: true"
    • removedInput schema / properties / components / properties / light / properties / bakeNumSamples / description
      Removed value: -"If bake is enabled, specifies the number of samples used to bake this light into the lightmap. Default: 1"
    • removedInput schema / properties / components / properties / light / properties / cascadeDistribution / description
      Removed value: -"The distribution of subdivision of the camera frustum for individual shadow cascades. Default: 0.5"
    • removedInput schema / properties / components / properties / light / properties / castShadows / description
      Removed value: -"If true, the light will cause shadow casting models to cast shadows. Default: false"
    • changedInput schema / properties / components / properties / light / properties / color / description
      Previous value: -"An array of 3 numbers that represents the color of the emitted light. Default: [1, 1, 1]"New value: +"RGB color [r,g,b] 0-1"
    • removedInput schema / properties / components / properties / light / properties / cookieAngle / description
      Removed value: -"Angle for spotlight cookie rotation. Default: 0.0"
    • changedInput schema / properties / components / properties / light / properties / cookieAsset / description
      Previous value: -"The id of a texture asset that represents that light cookie. Default: null"New value: +"Nullable asset reference"
    • removedInput schema / properties / components / properties / light / properties / cookieChannel / description
      Removed value: -"Color channels of the projection texture to use. Can be \"r\", \"g\", \"b\", \"a\", \"rgb\" or any swizzled combination. Default: \"rgb\""
    • removedInput schema / properties / components / properties / light / properties / cookieFalloff / description
      Removed value: -"Toggle normal spotlight falloff when projection texture is used. Default: true"
    • removedInput schema / properties / components / properties / light / properties / cookieIntensity / description
      Removed value: -"Projection texture intensity. Default: 1.0"
    • changedInput schema / properties / components / properties / light / properties / cookieOffset / description
      Previous value: -"Spotlight cookie position offset. Default: [0.0, 0.0]"New value: +"[x,y]"
    • changedInput schema / properties / components / properties / light / properties / cookieScale / description
      Previous value: -"Spotlight cookie scale. Default: [1.0, 1.0]"New value: +"[x,y]"
    • removedInput schema / properties / components / properties / light / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • changedInput schema / properties / components / properties / light / properties / falloffMode / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "LIGHTFALLOFF_LINEAR",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "LIGHTFALLOFF_INVERSESQUARED",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "Linear",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "InverseSquared",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / light / properties / falloffMode / description
      Removed value: -"Controls the rate at which a light attenuates from its position. Default: 0 (LIGHTFALLOFF_LINEAR)"
    • removedInput schema / properties / components / properties / light / properties / innerConeAngle / description
      Removed value: -"The angle at which the spotlight cone starts to fade off (degrees). Affects spot lights only. Default: 40"
    • removedInput schema / properties / components / properties / light / properties / intensity / description
      Removed value: -"The intensity of the light, this acts as a scalar value for the light's color. This value can exceed 1. Default: 1"
    • removedInput schema / properties / components / properties / light / properties / isStatic / description
      Removed value: -"Mark light as non-movable (optimization). Default: false"
    • removedInput schema / properties / components / properties / light / properties / layers / description
      Removed value: -"An array of layer id's that this light will affect. Default: [0]"
    • removedInput schema / properties / components / properties / light / properties / normalOffsetBias / description
      Removed value: -"Normal offset depth bias. Default: 0.05"
    • removedInput schema / properties / components / properties / light / properties / numCascades / description
      Removed value: -"Number of shadow cascades. Default: 1"
    • removedInput schema / properties / components / properties / light / properties / outerConeAngle / description
      Removed value: -"The angle at which the spotlight cone has faded to nothing (degrees). Affects spot lights only. Default: 45"
    • changedInput schema / properties / components / properties / light / properties / range / description
      Previous value: -"The distance from the spotlight source at which its contribution falls to zero. Default: 8"New value: +"Light range"
    • removedInput schema / properties / components / properties / light / properties / shadowBias / description
      Removed value: -"Constant depth offset applied to a shadow map to eliminate artifacts. Default: 0.2"
    • removedInput schema / properties / components / properties / light / properties / shadowDistance / description
      Removed value: -"The shadow distance is the maximum distance from the camera beyond which shadows from Directional Lights are no longer visible. Default: 16"
    • removedInput schema / properties / components / properties / light / properties / shadowIntensity / description
      Removed value: -"The intensity of the shadow darkening, 1 being shadows are entirely black. Default: 1"
    • removedInput schema / properties / components / properties / light / properties / shadowResolution / anyOf
      Removed value: -[
      -  {
      -    "const": 16,
      -    "description": "16x16",
      -    "type": "number"
      -  },
      -  {
      -    "const": 32,
      -    "description": "32x32",
      -    "type": "number"
      -  },
      -  {
      -    "const": 64,
      -    "description": "64x64",
      -    "type": "number"
      -  },
      -  {
      -    "const": 128,
      -    "description": "128x128",
      -    "type": "number"
      -  },
      -  {
      -    "const": 256,
      -    "description": "256x256",
      -    "type": "number"
      -  },
      -  {
      -    "const": 512,
      -    "description": "512x512",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1024,
      -    "description": "1024x1024",
      -    "type": "number"
      -  },
      -  {
      -    "const": 2048,
      -    "description": "2048x2048",
      -    "type": "number"
      -  },
      -  {
      -    "const": 4096,
      -    "description": "4096x4096",
      -    "type": "number"
      -  }
      -]
    • removedInput schema / properties / components / properties / light / properties / shadowResolution / description
      Removed value: -"The size of the texture used for the shadow map (power of 2). Default: 1024"
    • addedInput schema / properties / components / properties / light / properties / shadowResolution / enum
      Added value: +[
      +  16,
      +  32,
      +  64,
      +  128,
      +  256,
      +  512,
      +  1024,
      +  2048,
      +  4096
      +]
    • addedInput schema / properties / components / properties / light / properties / shadowResolution / type
      Added value: +"number"
    • changedInput schema / properties / components / properties / light / properties / shadowType / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "SHADOW_PCF3_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 2,
      -    "description": "SHADOW_VSM_16F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 3,
      -    "description": "SHADOW_VSM_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 4,
      -    "description": "SHADOW_PCF5_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 5,
      -    "description": "SHADOW_PCF1_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 6,
      -    "description": "SHADOW_PCSS_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 7,
      -    "description": "SHADOW_PCF1_16F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 8,
      -    "description": "SHADOW_PCF3_16F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 9,
      -    "description": "SHADOW_PCF5_16F",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "PCF3_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 2,
      +    "description": "VSM_16F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 3,
      +    "description": "VSM_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 4,
      +    "description": "PCF5_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 5,
      +    "description": "PCF1_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 6,
      +    "description": "PCSS_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 7,
      +    "description": "PCF1_16F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 8,
      +    "description": "PCF3_16F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 9,
      +    "description": "PCF5_16F",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / light / properties / shadowType / description
      Removed value: -"Type of shadows being rendered by this light. Default: 0 (SHADOW_PCF3_32F)"
    • changedInput schema / properties / components / properties / light / properties / shadowUpdateMode / anyOf
      Previous value: -[
      -  {
      -    "const": 1,
      -    "description": "SHADOWUPDATE_THISFRAME",
      -    "type": "number"
      -  },
      -  {
      -    "const": 2,
      -    "description": "SHADOWUPDATE_REALTIME",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 1,
      +    "description": "ThisFrame",
      +    "type": "number"
      +  },
      +  {
      +    "const": 2,
      +    "description": "Realtime",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / light / properties / shadowUpdateMode / description
      Removed value: -"Tells the renderer how often shadows must be updated for this light. Default: 2 (SHADOWUPDATE_REALTIME)"
    • changedInput schema / properties / components / properties / light / properties / shape / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "LIGHTSHAPE_PUNCTUAL",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "LIGHTSHAPE_RECT",
      -    "type": "number"
      -  },
      -  {
      -    "const": 2,
      -    "description": "LIGHTSHAPE_DISK",
      -    "type": "number"
      -  },
      -  {
      -    "const": 3,
      -    "description": "LIGHTSHAPE_SPHERE",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "Punctual",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "Rect",
      +    "type": "number"
      +  },
      +  {
      +    "const": 2,
      +    "description": "Disk",
      +    "type": "number"
      +  },
      +  {
      +    "const": 3,
      +    "description": "Sphere",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / light / properties / shape / description
      Removed value: -"The shape of the light source. Default: 0 (LIGHTSHAPE_PUNCTUAL)"
    • removedInput schema / properties / components / properties / light / properties / type / description
      Removed value: -"The type of light. Can be: directional, spot, omni. Default: \"directional\""
    • removedInput schema / properties / components / properties / light / properties / vsmBias / description
      Removed value: -"Constant depth offset applied to a shadow map to eliminate rendering artifacts like shadow acne. Default: 0.01"
    • changedInput schema / properties / components / properties / light / properties / vsmBlurMode / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "BLUR_BOX",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "BLUR_GAUSSIAN",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "Box",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "Gaussian",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / components / properties / light / properties / vsmBlurMode / description
      Removed value: -"Blurring mode for variance shadow maps. Default: 1 (BLUR_GAUSSIAN)"
    • removedInput schema / properties / components / properties / light / properties / vsmBlurSize / description
      Removed value: -"Number of samples used for blurring a variance shadow map. Only uneven numbers work, even are incremented. Minimum value is 1, maximum is 25. Default: 11"
    • addedInput schema / properties / components / properties / model
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Model (legacy) component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / components / properties / particlesystem
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Particle system component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / components / properties / render / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / render / description
      Previous value: -"The data for the render component."New value: +"Render component"
    • changedInput schema / properties / components / properties / render / properties / aabbCenter / description
      Previous value: -"An array of 3 numbers controlling the center of the AABB to be used. Default: [0, 0, 0]"New value: +"[x,y,z]"
    • changedInput schema / properties / components / properties / render / properties / aabbHalfExtents / description
      Previous value: -"An array of 3 numbers controlling the half extents of the AABB to be used. Default: [0.5, 0.5, 0.5]"New value: +"[x,y,z]"
    • addedInput schema / properties / components / properties / render / properties / asset / $ref
      Added value: +"#/properties/components/properties/collision/properties/asset"
    • removedInput schema / properties / components / properties / render / properties / asset / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / components / properties / render / properties / asset / description
      Previous value: -"The `id` of the render asset for the render component (only applies to type \"asset\"). Default: null"New value: +"Render asset"
    • removedInput schema / properties / components / properties / render / properties / batchGroupId / description
      Removed value: -"The batch group id that the meshes should belong to. Default: null"
    • removedInput schema / properties / components / properties / render / properties / castShadows / description
      Removed value: -"If true, attached meshes will cast shadows for lights that have shadow casting enabled. Default: true"
    • removedInput schema / properties / components / properties / render / properties / castShadowsLightmap / description
      Removed value: -"If true, the meshes will cast shadows when rendering lightmaps. Default: true"
    • removedInput schema / properties / components / properties / render / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • removedInput schema / properties / components / properties / render / properties / isStatic / description
      Removed value: -"Mark meshes as non-movable (optimization). Default: false"
    • removedInput schema / properties / components / properties / render / properties / layers / description
      Removed value: -"An array of layer id's to which the meshes should belong. Default: [0]"
    • removedInput schema / properties / components / properties / render / properties / lightmapSizeMultiplier / description
      Removed value: -"Lightmap resolution multiplier. Default: 1.0"
    • removedInput schema / properties / components / properties / render / properties / lightmapped / description
      Removed value: -"If true, the meshes will be lightmapped after using lightmapper.bake(). Default: false"
    • removedInput schema / properties / components / properties / render / properties / materialAssets / description
      Removed value: -"An array of material asset `id`s that will be used to render the meshes. Each material corresponds to the respective mesh instance. Default: []"
    • addedInput schema / properties / components / properties / render / properties / materialAssets / items / $ref
      Added value: +"#/properties/components/properties/collision/properties/asset"
    • removedInput schema / properties / components / properties / render / properties / materialAssets / items / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / components / properties / render / properties / receiveShadows / description
      Removed value: -"If true, shadows will be cast on attached meshes. Default: true"
    • removedInput schema / properties / components / properties / render / properties / rootBone / description
      Removed value: -"The `resource_id` of the entity to be used as the root bone for any skinned meshes that are rendered by this component. Default: null"
    • removedInput schema / properties / components / properties / render / properties / type / description
      Removed value: -"The type of the render component. Can be: asset, box, capsule, cone, cylinder, plane, sphere. Default: \"asset\""
    • changedInput schema / properties / components / properties / rigidbody / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / rigidbody / description
      Previous value: -"The data for the rigidbody component."New value: +"Rigidbody component. Requires the Ammo physics module to be enabled in the project (IMPORT AMMO); without it the body will not simulate. Usually paired with a collision component."
    • removedInput schema / properties / components / properties / rigidbody / properties / angularDamping / description
      Removed value: -"Controls the rate at which a body loses angular velocity over time. Default: 0"
    • changedInput schema / properties / components / properties / rigidbody / properties / angularFactor / description
      Previous value: -"An array of 3 numbers that represents the scaling factor for angular movement of the body in each axis. Default: [1, 1, 1]"New value: +"[x,y,z]"
    • removedInput schema / properties / components / properties / rigidbody / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • removedInput schema / properties / components / properties / rigidbody / properties / friction / description
      Removed value: -"The friction value used when contacts occur between two bodies. Default: 0.5"
    • removedInput schema / properties / components / properties / rigidbody / properties / linearDamping / description
      Removed value: -"Controls the rate at which a body loses linear velocity over time. Default: 0"
    • changedInput schema / properties / components / properties / rigidbody / properties / linearFactor / description
      Previous value: -"An array of 3 numbers that represents the scaling factor for linear movement of the body in each axis. Default: [1, 1, 1]"New value: +"[x,y,z]"
    • removedInput schema / properties / components / properties / rigidbody / properties / mass / description
      Removed value: -"The mass of the body. Default: 1"
    • changedInput schema / properties / components / properties / rigidbody / properties / restitution / description
      Previous value: -"The amount of energy lost when two objects collide, this determines the bounciness of the object. Default: 0.5"New value: +"Bounciness"
    • removedInput schema / properties / components / properties / rigidbody / properties / type / description
      Removed value: -"The type of RigidBody determines how it is simulated. Can be one of: static, dynamic, kinematic. Default: \"static\""
    • changedInput schema / properties / components / properties / screen / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / screen / description
      Previous value: -"The data for the screen component."New value: +"Screen component"
    • removedInput schema / properties / components / properties / screen / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • removedInput schema / properties / components / properties / screen / properties / priority / description
      Removed value: -"Determines the order in which Screen components in the same layer are rendered (higher priority is rendered on top). Number must be an integer between 0 and 127. Default: 0"
    • changedInput schema / properties / components / properties / screen / properties / referenceResolution / description
      Previous value: -"An array of 2 numbers that represents the reference resolution of the screen. If the window size changes the screen will adjust its size based on `scaleMode` using the reference resolution. Default: [1280, 720]"New value: +"[x,y]"
    • changedInput schema / properties / components / properties / screen / properties / resolution / description
      Previous value: -"An array of 2 numbers that represents the resolution of the screen. Default: [1280, 720]"New value: +"[x,y]"
    • removedInput schema / properties / components / properties / screen / properties / scaleBlend / description
      Removed value: -"Set this to 0 to only adjust to changes between the width of the window and the x of the reference resolution. Set this to 1 to only adjust to changes between the window height and the y of the reference resolution. A value in the middle will try to adjust to both. Default: 0.5"
    • removedInput schema / properties / components / properties / screen / properties / scaleMode / description
      Removed value: -"Controls how a screen-space screen is resized when the window size changes. Can be: `pc.SCALEMODE_BLEND`: Use it to have the screen adjust between the difference of the window resolution and the screen's reference resolution. `pc.SCALEMODE_NONE`: Use it to make the screen always have a size equal to its resolution. Default: \"blend\""
    • changedInput schema / properties / components / properties / screen / properties / screenSpace / description
      Previous value: -"If true then the screen will display its child Elements in 2D. Set this to false to make this a 3D screen. Default: true"New value: +"2D screen mode"
    • changedInput schema / properties / components / properties / script / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / script / description
      Previous value: -"The data for the script component."New value: +"Script component"
    • removedInput schema / properties / components / properties / script / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • changedInput schema / properties / components / properties / script / properties / order / description
      Previous value: -"An array of script names in the order in which they should be executed at runtime. Default: []"New value: +"Script execution order"
    • changedInput schema / properties / components / properties / script / properties / scripts / additionalProperties / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / script / properties / scripts / additionalProperties / properties / attributes / additionalProperties / description
      Previous value: -"A dictionary that holds the values of each attribute. The keys in the dictionary are the attribute names."New value: +"Script attribute values"
    • removedInput schema / properties / components / properties / script / properties / scripts / additionalProperties / properties / attributes / description
      Removed value: -"A dictionary that holds the values of each attribute. The keys in the dictionary are the attribute names. Default: {}"
    • removedInput schema / properties / components / properties / script / properties / scripts / additionalProperties / properties / enabled / description
      Removed value: -"Whether the script instance is enabled. Default: true"
    • changedInput schema / properties / components / properties / script / properties / scripts / description
      Previous value: -"A dictionary that contains all the scripts attached to this script component. Each key in the dictionary is the script name. Default: {}"New value: +"Script instances"
    • addedInput schema / properties / components / properties / scrollbar
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Scrollbar component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / components / properties / scrollview
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Scroll view component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / components / properties / sound / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / sound / description
      Previous value: -"The data for the sound component."New value: +"Sound component"
    • removedInput schema / properties / components / properties / sound / properties / distanceModel / description
      Removed value: -"Determines which algorithm to use to reduce the volume of the audio as it moves away from the listener. Can be one of: \"inverse\", \"linear\", \"exponential\". Default: \"linear\""
    • removedInput schema / properties / components / properties / sound / properties / enabled / description
      Removed value: -"Whether the component is enabled. Default: true"
    • removedInput schema / properties / components / properties / sound / properties / maxDistance / description
      Removed value: -"The maximum distance from the listener at which audio falloff stops. Note the volume of the audio is not 0 after this distance, but just doesn't fall off anymore. Default: 10000"
    • removedInput schema / properties / components / properties / sound / properties / pitch / description
      Removed value: -"The pitch to playback the audio at. A value of 1 means the audio is played back at the original pitch. The pitch of each slot is multiplied with this value. Default: 1"
    • changedInput schema / properties / components / properties / sound / properties / positional / description
      Previous value: -"If true, the component will play back audio assets as if played from the location of the entity in 3D space. Default: true"New value: +"3D audio"
    • removedInput schema / properties / components / properties / sound / properties / refDistance / description
      Removed value: -"The reference distance for reducing volume as the sound source moves further from the listener. Default: 1"
    • removedInput schema / properties / components / properties / sound / properties / rollOffFactor / description
      Removed value: -"The rate at which volume fall-off occurs. Default: 1"
    • changedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / asset / description
      Previous value: -"The `id` of the audio asset that can be played from this sound slot. Default: null"New value: +"Audio asset"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / autoPlay / description
      Removed value: -"If true, the slot will be played on load. Otherwise, sound slots will need to be played by scripts. Default: false"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / duration / description
      Removed value: -"The duration of the sound that the slot will play starting from startTime. Default: null"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / loop / description
      Removed value: -"If true, the slot will loop playback continuously. Otherwise, it will be played once to completion. Default: false"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / name / description
      Removed value: -"The name of the sound slot. Default: \"Slot 1\""
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / overlap / description
      Removed value: -"If true then sounds played from slot will be played independently of each other. Otherwise the slot will first stop the current sound before starting the new one. Default: false"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / pitch / description
      Removed value: -"The pitch to playback the audio at. A value of 1 means the audio is played back at the original pitch. Default: 1"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / startTime / description
      Removed value: -"The start time from which the sound will start playing. Default: 0"
    • removedInput schema / properties / components / properties / sound / properties / slots / additionalProperties / properties / volume / description
      Removed value: -"The volume modifier to play the audio with. Default: 1"
    • changedInput schema / properties / components / properties / sound / properties / slots / description
      Previous value: -"A dictionary of sound slots. Each sound slot controls playback of an audio asset. Each key in the dictionary is a number representing the index of each sound slot."New value: +"Sound slots"
    • removedInput schema / properties / components / properties / sound / properties / volume / description
      Removed value: -"The volume modifier to play the audio with. The volume of each slot is multiplied with this value. Default: 1"
    • addedInput schema / properties / components / properties / sprite
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Sprite component (loosely typed; pass any valid component fields)",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / id / description
      Previous value: -"An entity ID."New value: +"Entity ID"
  2. First observedv1.0.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal idempotentHint=true and destructiveHint=false, so the description does not need to restate safety. It adds meaningful behavioral context beyond annotations: the return value is the updated entity summary, and rigidbody/collision components only simulate when the Ammo physics module is enabled. This is useful operational information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average, but every sentence carries practical weight: action, parameter mapping, return value, physics prerequisite, and exclusions. It is front-loaded with the core operation and the physics note is dense but directly actionable, not filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the large nested schema and no output schema, the description covers the essential missing pieces: what to pass, what comes back, and a critical environmental prerequisite. It also handles sibling-tool routing. Component-specific field details are already in the schema, so the description does not need to enumerate them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents both parameters well. The description still adds value by clarifying the components object structure: pass each component's initial data under its component name. This helps an agent understand that property names in the components object correspond to component types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Add'), a specific resource ('components to an existing entity'), and enumerates concrete component types. It also explicitly distinguishes itself from create_entities, modify_entities, and attach_script, so an agent can select it without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When NOT to use' section explicitly names the alternative tools and the conditions that route to them. The physics note also gives actionable guidance: if Ammo is not enabled, add the components then enable it rather than stalling. This is complete decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/playcanvas/editor-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server