Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Chrrxs/robloxstudio-mcp/llms.txt

Use this file to discover all available pages before exploring further.

Properties, attributes, and tags are the three main data layers on any Roblox instance. Built-in properties like Transparency, Anchored, and Position are set with the property tools. Custom key-value pairs that your game code defines are managed with the attribute tools. CollectionService tags — used for grouping instances by behavior — are managed with the tag tools. All three groups follow the same canonical instancePath convention and support the instance_id parameter for multi-place sessions.

Properties

set_property

Set a single property on one instance. The value type is inferred for primitives; for Roblox value types, pass a typed object.
instancePath
string
required
Canonical DataModel path of the instance to modify (e.g. game.Workspace.Part).
propertyName
string
required
The exact property name (e.g. "Transparency", "Anchored", "BrickColor").
propertyValue
string | number | boolean | object
required
The value to set. Pass a plain string, number, or boolean for primitive properties. For structured types, pass an object:
  • Vector3: { x: 0, y: 5, z: 0 }
  • Color3 (RGB 0–1): { r: 1, g: 0, b: 0 }
  • UDim2: { xScale: 0, xOffset: 100, yScale: 0, yOffset: 50 }
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
// Set a part's position using a Vector3 object
{
  "instancePath": "game.Workspace.SpawnPlatform",
  "propertyName": "Position",
  "propertyValue": { "x": 0, "y": 5, "z": 0 }
}

mass_set_property

Set the same property to the same value on multiple instances in a single call. Dramatically faster than calling set_property in a loop for large batches.
paths
string[]
required
Array of canonical DataModel paths — one per instance to update.
propertyName
string
required
The property name to set on every instance.
propertyValue
string | number | boolean | object
required
The value to set (same format as set_property).
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
// Make 3 parts semi-transparent at once
{
  "paths": [
    "game.Workspace.Wall1",
    "game.Workspace.Wall2",
    "game.Workspace.Wall3"
  ],
  "propertyName": "Transparency",
  "propertyValue": 0.5
}

mass_get_property

Read the same property from multiple instances in one call. Returns a map of path → value, letting you inspect a large set of instances without individual round-trips.
paths
string[]
required
Array of canonical DataModel paths to read from.
propertyName
string
required
The property name to read from each instance.
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.

set_properties

Set multiple properties on a single instance in one call. More efficient than issuing individual set_property calls when you need to configure several properties at once during creation or bulk editing.
instancePath
string
required
Canonical DataModel path of the instance to modify.
properties
object
required
A map of property name → value. Each value follows the same type rules as set_property (primitives or typed objects for Vector3/Color3/UDim2).
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
// Configure a PointLight in one call
{
  "instancePath": "game.Workspace.Lamp.PointLight",
  "properties": {
    "Brightness": 5,
    "Range": 20,
    "Color": { "r": 1, "g": 0.9, "b": 0.7 },
    "Enabled": true
  }
}

Attributes

Attributes are custom key-value pairs stored directly on an instance. They are accessible from Luau via instance:GetAttribute("key") and instance:SetAttribute("key", value). The MCP attribute tools let an agent read, write, and delete these pairs without executing Luau.

set_attribute

Set a single custom attribute on an instance. Supports all attribute-compatible types.
instancePath
string
required
Canonical DataModel path of the instance.
attributeName
string
required
The attribute key (e.g. "MaxHealth", "Team", "SpawnGroup").
attributeValue
string | number | boolean | object
required
The attribute value. Primitives are inferred automatically. For typed values, pass an object using the same convention as property values:
  • Vector3: { x, y, z }
  • Color3: { r, g, b } (values 0–1)
  • UDim2: { xScale, xOffset, yScale, yOffset }
  • BrickColor: pass the name string (e.g. "Bright red") and set valueType: "BrickColor"
valueType
string
Optional type hint for disambiguation (e.g. "BrickColor" when passing a color name string as attributeValue).
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
// Set a numeric health attribute
{
  "instancePath": "game.Workspace.NPC_Goblin",
  "attributeName": "MaxHealth",
  "attributeValue": 150
}

// Set a Color3 team color attribute
{
  "instancePath": "game.Workspace.NPC_Goblin",
  "attributeName": "TeamColor",
  "attributeValue": { "r": 0, "g": 0.5, "b": 1 }
}

get_attributes

Read all custom attributes on an instance and return them as a key-value map.
instancePath
string
required
Canonical DataModel path of the instance to read from.
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.

delete_attribute

Remove a single custom attribute from an instance.
instancePath
string
required
Canonical DataModel path of the instance.
attributeName
string
required
The attribute key to remove.
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.

bulk_set_attributes

Set multiple custom attributes on a single instance in one call. More efficient than repeated set_attribute calls when initialising a freshly created NPC, item, or configuration object with several attributes at once.
instancePath
string
required
Canonical DataModel path of the instance to modify.
attributes
object
required
A map of attribute name → value. Complex types (Vector3, Color3, UDim2) are expressed using the _type convention understood by the plugin. Primitive values (number, boolean, string) are inferred directly.
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
// Initialise an NPC with several attributes at once
{
  "instancePath": "game.Workspace.NPC_Troll",
  "attributes": {
    "MaxHealth": 300,
    "AttackDamage": 25,
    "Loot": "Troll_Loot_Table",
    "IsElite": true
  }
}

Tags (CollectionService)

CollectionService tags are string labels attached to instances. Your game scripts can query all instances that share a tag with CollectionService:GetTagged("TagName"), making tags a lightweight way to define groups and behaviours without extra scripts. The tag tools let an agent read and modify tags directly.

get_tags

Read all CollectionService tags currently applied to an instance.
instancePath
string
required
Canonical DataModel path of the instance.
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.

add_tag

Add a CollectionService tag to an instance.
instancePath
string
required
Canonical DataModel path of the instance.
tagName
string
required
The tag string to add (e.g. "Enemy", "Interactable", "DamagePart").
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
// Tag a part as a damage zone
{
  "instancePath": "game.Workspace.LavaPool",
  "tagName": "DamagePart"
}

remove_tag

Remove a CollectionService tag from an instance.
instancePath
string
required
Canonical DataModel path of the instance.
tagName
string
required
The tag string to remove.
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.

get_tagged

Get every instance in the place that currently has a specific CollectionService tag. The response includes each instance’s full canonical path so you can pass the results directly into property or attribute tools.
tagName
string
required
The tag to query (e.g. "Enemy", "Checkpoint").
instance_id
string
Which connected Studio place to target. Required when multiple places are connected.
Combine get_tagged with mass_set_property for powerful tag-driven bulk edits: query all "Enemy" instances, extract their paths, then pass the array to mass_set_property to update their MaxHealth attribute or any other shared property in one call.

Build docs developers (and LLMs) love