Skip to main content
Glama

create_volume

Spawn a labeled Blocking, KillZ, PainCausing, PostProcess, or Trigger volume with a real cube brush in the editor world as one undo step; the level is not saved.

Instructions

Spawn a BlockingVolume, KillZVolume, PainCausingVolume, PostProcessVolume or TriggerVolume in the editor world with a real cube brush, labelled volume_name, as one undo step; the level is not saved. Returns actor_name, actor_path, actor_class and brush_built. For other AVolume classes or box extents use spawn_box_volume.

Returns: { volume_name, volume_type, actor_name, actor_path, actor_class, brush_built, success }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizeNoEdge length in cm of the cube brush (the full side, not a half-extent); omitted or not positive gives 200.
locationNoWorld location [x, y, z] in cm of the volume center (default [0, 0, 0]).
volume_nameYesEditor label for the new actor; its object name is generated and returned as actor_name.
volume_typeNoVolume class, case-insensitive: "BlockingVolume" (default), "KillZVolume", "PainCausingVolume", "PostProcessVolume" or "TriggerVolume"; any other value spawns a BlockingVolume.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.2.0
    • changedInput schema / properties / location / description
      Previous value: -"World location for the spawned volume"New value: +"World location [x, y, z] in cm of the volume center (default [0, 0, 0])."
    • changedInput schema / properties / size / description
      Previous value: -"Optional cube brush size in unreal units"New value: +"Edge length in cm of the cube brush (the full side, not a half-extent); omitted or not positive gives 200."
    • changedInput schema / properties / volume_name / description
      Previous value: -"Name label for the volume actor"New value: +"Editor label for the new actor; its object name is generated and returned as actor_name."
    • changedInput schema / properties / volume_type / description
      Previous value: -"Volume class to spawn (defaults to BlockingVolume)"New value: +"Volume class, case-insensitive: \"BlockingVolume\" (default), \"KillZVolume\", \"PainCausingVolume\", \"PostProcessVolume\" or \"TriggerVolume\"; any other value spawns a BlockingVolume."
  2. First observedv1.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=false), and the description adds meaningful behavioral context beyond them: the operation is 'one undo step' and 'the level is not saved', plus the brush is a 'real cube brush'. It stops short of stating prerequisites like needing an open editor world, but it adds genuinely useful traits.

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?

Front-loaded with the core action and scope, and efficient overall. The only waste is mild redundancy between the prose 'Returns actor_name, actor_path...' and the following 'Returns: {...}' line, which repeat the same return fields.

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 mutation tool with no output schema, the description compensates by listing the returned fields and disclosing the undo-grouping and non-persistence behavior. Combined with annotations covering the safety profile, an agent has what it needs to call it correctly, though it omits error/failure conditions.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (size, location, volume_name, volume_type) are already documented in the schema. The description restates the volume_name labeling and the cube brush but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb (spawn) and resource (volume) and enumerates exactly which classes it creates (BlockingVolume, KillZVolume, etc.), distinguishing it from other volume creators. The explicit hand-off to spawn_box_volume for other cases makes the boundary with siblings unambiguous.

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?

Explicitly names the alternative (spawn_box_volume) and the condition that selects it ('For other AVolume classes or box extents'), so an agent can route correctly without inspecting either schema. This is the when/when-not/alternative pattern at its clearest.

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

Deploy Server

Other Tools