Skip to main content
Glama

set_mesh_uvs_from_projection

DestructiveIdempotent

Replace UVs on a DynamicMeshActor's live mesh using box, plane, or cylinder projection, optionally limited to a region.

Instructions

Replace the UVs of one channel on a DynamicMeshActor's live dynamic mesh in the editor world with a box, plane or cylinder projection, optionally only inside a region. Box suits plank-and-post geometry (each face takes the axis it faces), plane only flat pieces, cylinder wrapped shapes. Returns triangles_affected and applied.

Returns: { actor_name, projection, uv_channel, region, triangles_affected: int, uv_channel_count: int, applied: bool }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scaleNo[x,y,z] size of the projection shape (default [100,100,100]). THIS IS THE UV DENSITY KNOB: bigger scale = texture repeats fewer times. A tileable material that reads too big or too small is fixed here, not in the material.
centerNoRegion parameter (box/sphere centre, plane origin).
extentNoRegion parameter: box HALF-size.
invertNoSelect the complement of a box, sphere, plane or normal_angle region (default false); the other regions ignore it.
normalNoRegion parameter: plane/normal_angle direction.
radiusNoRegion parameter: sphere radius.
regionNoOptional region to limit the projection to; same vocabulary as select_mesh_triangles (default 'all').
locationNoLocal [x,y,z] origin of the projection shape (default the mesh origin).
rotationNoPREFERRED: the OBJECT {"roll":R,"pitch":P,"yaw":Y} (any subset, absent axes are 0). The ARRAY form below is [pitch, yaw, roll] -- its index 2 is ROLL, NOT yaw, which once put a PlayerStart on its side. [pitch, yaw, roll] of the projection shape (default none). For 'plane', this is what chooses which way the plane faces.
actor_nameYesLabel or name of the target DynamicMeshActor.
projectionNo'box' (default) | 'plane' | 'cylinder'.
uv_channelNoUV channel to write (default 0).
split_angleNocylinder only: angle in degrees at which the wrap is split (default 45).
polygroup_idNoRegion parameter for region='polygroup'.
max_angle_degNoRegion parameter for region='normal_angle'.
component_indexNoIsland index when region='connected_component'.
polygroup_layerNoRegion parameter for region='polygroup': extended polygroup layer index (default the mesh's default polygroup layer).
source_material_idNoRegion parameter for region='material_id'.
min_triangle_pointsNoRegion parameter, 1-3.
min_island_tri_countNobox only: islands smaller than this are merged into a neighbour (default 2).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.2.0
    • changedInput schema / properties / invert / description
      Previous value: -"Region parameter."New value: +"Select the complement of a box, sphere, plane or normal_angle region (default false); the other regions ignore it."
    • addedInput schema / properties / polygroup_layer
      Added value: +{
      +  "description": "Region parameter for region='polygroup': extended polygroup layer index (default the mesh's default polygroup layer).",
      +  "type": "integer"
      +}
  2. First observedv1.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare destructive=true, readOnly=false, idempotent=true, and openWorld=false; the description is consistent with those and adds target/world context ('live dynamic mesh in the editor world'), scope ('one channel', optional region), and return feedback. It does not cover undo/permissions or explicitly restate idempotence, but with annotations covering the safety profile it is solidly transparent.

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 front-loads the core action and target, then adds compact projection guidance. The sentence 'Returns triangles_affected and applied.' is slightly redundant with the detailed return object that follows, but otherwise every sentence earns its place.

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 20-parameter mutation tool with no output schema, the description supplies essential missing pieces: target context, projection-type semantics, region optionality, and the return shape (actor_name, projection, uv_channel, region, triangles_affected, uv_channel_count, applied). Remaining parameter details are well covered by the 100%-described schema and safety annotations.

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 already documents all 20 parameters. The description still adds semantic value for the projection parameter by explaining which geometry each projection suits, and flags that region is optional; it does not need to repeat schema details for the other parameters.

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 first sentence states a precise verb+resource (replace UVs of one channel), the target (DynamicMeshActor's live dynamic mesh in the editor world), and the mechanism (box/plane/cylinder projection, optional region). This is specific enough to distinguish it from sibling UV tools such as generate_mesh_uvs, repack_mesh_uvs, or rotate_mesh_uvs.

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

Usage Guidelines3/5

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

The description gives useful guidance for choosing among the projection types ('Box suits plank-and-post geometry...'), but it never says when to use this tool versus sibling UV-generation or UV-editing tools. Usage is implied by the purpose, making it minimum viable but lacking explicit alternatives or when-not conditions.

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