Skip to main content
Glama

roblox_scene

Control the camera and capture rendered screenshots in Roblox Studio to verify scene composition, placement, and orientation.

Instructions

Control the camera and capture rendered viewport screenshots.

Actions:

  • "screenshot": Render a PNG image of what the camera currently sees. Returns an image you can analyze visually. Use it to verify placement, scale, orientation, and scene composition. No textures are rendered — use roblox_get action "texture_info" if you need texture/decal context. Params: maxParts (default 2000).

  • "move_camera": Reposition the Studio camera. Two modes: (A) Auto-frame an object: set focusInstance to an instance path (e.g. "Workspace.GasStation"). The camera automatically positions itself at a good distance and angle to see the entire object. Optional: angle (elevation in degrees, default 35), yaw (horizontal rotation in degrees, default 45). (B) Explicit placement: set position {X,Y,Z} (where the camera IS in world space) and lookAt {X,Y,Z} (the world point the camera POINTS AT). Both must be provided and must be different points. Example: position {X:50, Y:20, Z:50} lookAt {X:0, Y:0, Z:0} places camera at (50,20,50) aiming at the origin.

Typical workflow: move_camera (frame your subject) → screenshot (see the result) → evaluate → adjust.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesWhich scene operation
maxPartsNoMax parts to render (default 2000, for screenshot)
focusInstanceNoFor move_camera mode A: instance path to auto-frame, e.g. "Workspace.MyModel". Camera positions itself to see the whole object.
angleNoFor move_camera with focusInstance: camera elevation angle in degrees (default 35). 0 = eye level, 90 = top-down.
yawNoFor move_camera with focusInstance: horizontal orbit angle in degrees (default 45). 0 = front, 90 = side, 180 = back.
positionNoFor move_camera mode B: where the camera IS in world space {X,Y,Z}. Must also provide lookAt.
lookAtNoFor move_camera mode B: the world point the camera AIMS AT {X,Y,Z}. Must differ from position.
Behavior4/5

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

With no annotations provided, the description carries full burden and does well. It explains what screenshots return ('PNG image you can analyze visually'), clarifies limitations ('No textures are rendered'), describes camera positioning behavior for both modes, specifies defaults (maxParts=2000, angle=35, yaw=45), and notes constraints ('Both must be provided and must be different points'). It doesn't mention rate limits or authentication needs, but provides substantial behavioral context.

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

Conciseness5/5

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

The description is well-structured with clear sections (overview, actions with sub-modes, typical workflow). Every sentence adds value: the opening states purpose, action descriptions provide specific guidance, and the workflow shows practical application. No wasted words despite the complexity of 7 parameters and multiple operation modes.

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?

For a complex tool with 7 parameters, no annotations, and no output schema, the description does an excellent job. It explains what the tool does, how to use it, parameter meanings, and provides a workflow. The only gap is not explicitly describing the return format for move_camera (though it's implied to be a camera position change), but given the rich parameter explanations and behavioral context, this is minor.

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 description coverage is 100%, so baseline is 3. The description adds significant value by explaining parameter semantics beyond the schema: it clarifies that maxParts is for screenshot only, explains the two distinct modes for move_camera with clear examples, describes what angle and yaw actually control, and provides concrete usage examples. This goes well beyond what the schema provides.

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 clearly states the tool's purpose: 'Control the camera and capture rendered viewport screenshots.' It specifies two distinct actions (screenshot and move_camera) with their specific functions, and distinguishes from sibling 'roblox_get' by noting that screenshots don't render textures. This provides specific verb+resource differentiation.

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 description provides explicit guidance on when to use each action: 'Use it to verify placement, scale, orientation, and scene composition' for screenshot, and describes two distinct modes for move_camera. It also provides a typical workflow sequence and explicitly mentions when to use the sibling tool 'roblox_get' for texture context instead.

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/paralov/roblox-studio-opencode-mcp'

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