find_assets_by_name
Search Unreal assets by name across all mounted content roots to find their object paths before reading or editing.
Instructions
Find assets by name across every mounted content root (/Game, /Engine, plugin mounts...): the broad "does anything called exist, and where?" search, with each hit's name, object path, class and package.
Use it before reading or writing an asset whose path you do not know: a hit's path is what get_object_info, set_properties and save_asset take. Other searches: get_assets_in_folder for a folder, get_assets_by_type for a class, get_assets_by_tag for an Asset Registry tag, and resolve_asset_by_name for one exact name with all its homonyms.
Examples: {"search_pattern": "Grass"} finds every name that contains Grass, in any case; {"search_pattern": "BP_*", "case_sensitive": true} only names that start with BP_, in that case. match_mode in the reply says whether the pattern ran as a substring or a wildcard. For a broad token, lower max_results and read results_truncated; keep wait_for_scan on right after the editor opens, while the registry may still be loading.
Returns: { assets: [{ name, path, class, package, is_loaded }], count: int, total_scanned: int, scan_was_pending: bool, search_pattern: string, match_mode: "substring"|"wildcard", case_sensitive: bool, max_results: int, results_truncated: bool }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | Alias of `search_pattern` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `search_pattern`. | |
| max_results | No | Cap on number of matched assets (1..50000); defaults to 1000. WARNING: Hitting the cap ABORTS the enumeration, so `total_scanned` then counts only the assets visited before the early-out, not the whole registry. | |
| wait_for_scan | No | When true (default), force-completes the AssetRegistry scan before enumerating so a still-loading registry cannot report total_scanned:0. Set false to skip the (possibly blocking) wait. | |
| case_sensitive | No | When true, match is case-sensitive; defaults to false | |
| search_pattern | No | Matched against the asset NAME. Contains no `*`/`?` -> case-insensitive substring (FString::Contains). Contains `*` or `?` -> glob (FString::MatchesWildcard), ANCHORED at both ends: `*` matches any run including empty, `?` matches 0 or 1 character (UE semantics, not exactly 1). Not a regex. |