Skip to main content
Glama

ptfx_merge

Merge particle effects from multiple .ypt dictionaries into a new asset, copying emitters, particle rules, chained effects and embedded textures. Clashing rule names get numeric suffixes, and output writes an editable .ypt.xml.

Instructions

Make a NEW dictionary from effects in other dictionaries (vanilla ones from ptfx_vanilla_search, or yours), copying each effect's emitter rules, particle rules, chained effects, embedded textures and model drawables. Core textures stay references. Clashing rule names get a numeric suffix. Writes .ypt.xml (+ textures): then ptfx_edit and ptfx_pack it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "sources": "<sources>",
      "name": "<name>"
    },
    "name": "ptfx_merge"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesthe new dictionary (asset) name, e.g. my_fx
out_xmlNo
sourcesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and openWorldHint=false; the description goes well beyond by disclosing the exact output artifact ('<name>.ypt.xml (+ textures)'), the reference-vs-copy distinction for core textures, and the deterministic collision policy (numeric suffix on clashing rule names). These are precisely the side effects an agent needs before invoking a mutating tool.

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?

Purpose is front-loaded in the first clause, and every subsequent sentence carries real information — copy scope, texture reference behavior, collision handling, output files, next steps. It is dense and somewhat run-on, but there is no filler or restatement of the name.

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 file-writing tool with no output schema and nested (if not deeply) source objects, the description covers inputs-to-artifacts, side effects, and follow-up tools adequately. The remaining gap is the undocumented 'out_xml' override and whether/how the tool reports the created files, which matters for a tool that writes to disk.

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 coverage is only 33%, and the description compensates partially: it ties the required 'name' to the output filename and implies a default path, and it explains what 'sources' entries contribute. However, 'out_xml' is never explained anywhere, and the per-source 'rename' map and the '*' effects wildcard are left entirely to the schema, so meaning is still added unevenly.

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 and artifact ('Make a NEW dictionary from effects in other dictionaries') and immediately enumerates exactly what is copied: emitter rules, particle rules, chained effects, textures, model drawables. It also names the canonical source tool (ptfx_vanilla_search), so an agent can distinguish it from ptfx_edit and ptfx_pack without opening any schema.

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

Usage Guidelines4/5

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

Gives clear workflow context — pull vanilla effects via ptfx_vanilla_search, then run ptfx_edit and ptfx_pack on the result — which positions the tool in a pipeline rather than leaving usage implicit. It lacks an explicit when-not-to-use statement (e.g. cloning a single effect vs a whole dictionary), which keeps it out of 5 territory.

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