check_asset_circular_dependency
Detect circular dependencies in an Unreal asset's dependency graph via depth-first search, returning the cycle path and length to diagnose cook failures and load-order issues.
Instructions
Depth-first search of an asset's dependency graph looking for a CYCLE, returning has_circular_dependency plus the actual circular_path that closes the loop and its length -- the diagnosis for cook failures, load-order surprises and Blueprints that will not compile in isolation. Complements get_asset_dependencies (one level out) and get_asset_dependencies_recursive (the whole closure without cycle detection). WARNING: check search_limit_reached before trusting a false: the walk stops at max_depth / max_visited, and a cycle beyond those limits reads exactly like no cycle at all.
Returns: { asset_name: string, asset_path: string, has_circular_dependency: bool, nodes_visited: int, max_depth_reached: int, search_limit_reached: bool, circular_path: [string] (the cycle itself, its first package repeated at the end), cycle_length: int (packages in the cycle), root_in_cycle: bool, lead_in_path?: [string] (root ... first package of the cycle, when the root only leads into it), suggestion?: string (the edge that closes the cycle), dependency_type: string }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | Maximum recursion depth, default 100. Hitting it sets search_limit_reached and makes a `false` answer inconclusive. | |
| asset_name | Yes | Exact asset name or full package name; the bare-name fallback scans /Game only and takes the first match | |
| max_visited | No | Maximum total nodes visited, default 10000. Hitting it also sets search_limit_reached. | |
| dependency_type | No | Filter by dependency kind considered at every DFS step: "hard", "soft", or "all" (case-insensitive), default "all" |