Skip to main content
Glama

fixup_redirectors

Destructive

Repoint and clean up redirectors left by asset renames or moves within a folder; load and re-save referencing packages, then optionally delete redirectors whose referencers saved.

Instructions

Clean up the redirectors a rename/move left behind, under a folder: load each referencing package (which repoints it) and re-save it, optionally force-deleting redirectors whose referencers all saved. Hand-rolled on purpose -- IAssetTools::FixupReferencers HARD-CRASHES on World-Partition/OFPA projects -- and heavily railed: it REFUSES while PIE is active, never writes under readonly_roots (default: the project's Read Only Content Roots), never outside /Game, and never loads or saves map or OFPA packages, handing the resident ones back in skipped_current_world for you to save_level instead. Deletions are DISK-verified (a redirector whose .uasset survives lands in redirectors_delete_failed, not in the count). WARNING: redirectors_found/deleted count OBJECTS: one renamed Blueprint leaves THREE in a single package -- read redirector_packages_found for files.

Returns: { path: string, redirectors_found: int, redirector_packages_found: int, referencers_repointed: int, packages_saved: int, packages_failed: [{ package: string, error: string }], skipped_readonly: [string], skipped_current_world: [string], redirectors_deleted: int, redirector_packages_deleted: int, redirectors_delete_failed: [{ package: string, reason: string }], redirectors_fixed: int, message: string }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNoLong path to scan, defaults to /Game
asset_pathNoAlias of `path` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `path`.
readonly_rootsNoOptional array of long-path prefixes that must NEVER be written (default: the project's Read Only Content Roots, i.e. the vendored library roots). Referencers under them are reported in skipped_readonly instead of being saved.
delete_redirectorsNoOptional bool (default false). After a successful repoint, force-delete the redirectors whose every non-redirector referencer was saved. Left in place by default (a redirector is ~2 KB and harmless).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Far exceeds what the annotations convey. It discloses that the tool is hand-rolled because IAssetTools::FixupReferencers crashes on World-Partition/OFPA projects, refuses while PIE is active, never writes under readonly_roots or outside /Game, never loads/saves map/OFPA packages, and that deletions are disk-verified (failures land in redirectors_delete_failed). It also warns that counts are OBJECT-level while redirector_packages_found is file-level.

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-loads the core purpose and safety rails, then the return shape. Dense but every clause is load-bearing for a tool with this many caveats; the only mild excess is the length of the inline Returns block, which duplicates return-shape info that could live elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a destructive, no-output-schema, high-risk cleanup tool, the description covers refusal conditions, safety rails, failure reporting, and the full return shape. Nothing an agent needs to call it safely is missing.

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 the schema already documents path, asset_path alias, readonly_roots, and delete_redirectors. The description reinforces the readonly_roots default and the delete_redirectors 'harmless ~2KB' rationale, but adds little that the schema doesn't already carry. Baseline 3.

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 resource: clean up redirectors left behind by a rename/move under a folder by loading and re-saving referencers. It distinguishes itself from sibling tools like save_level by explicitly deferring to it for resident map/OFPA packages. An agent can tell exactly what this does without opening the 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 context (use after a rename/move to fix up dangling redirectors) and names the alternative path (handing back skipped_current_world packages so the agent can save_level). It stops short of a crisp when-not/alternative comparison, but the PIE-refusal and scope constraints implicitly guide usage.

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