bulk_rename_assets
Rename or move multiple Unreal assets in one batch, verify each on disk, and enforce guards for Play-in-Editor, read-only roots, and CDO blockers.
Instructions
Rename/move multiple assets in one IAssetTools::RenameAssets batch, with per-item disk verification instead of the batch bool. Guards: refuses while PIE is active; refuses paths under readonly_roots (default: the project's Read Only Content Roots setting) on BOTH the source and the destination; pre-detects the native-CDO reference case that makes the engine's FMessageDialog auto-cancel the whole batch (would_block_on_modal) and does NOT call RenameAssets in that case. Also reports referencer packages left DIRTY -- PerformAssetRename discards its FailedPackages list unless UE source control is connected, so a referencer (typically OFPA) can be left unwritten while RenameAssets still returns true.
Returns: { dry_run: bool, readonly_roots: [string], readonly_roots_explicit: bool, planned_count: int, renamed_count: int, failed_count: int, skipped_count: int, batch_api_result: bool|null, would_block_on_modal: bool, cdo_references: [object], soft_scan_is_approximate: bool, referencer_packages_dirty: [object], results: [object] }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assets | Yes | List of rename descriptors: { old_path (required), new_name (optional, default = current name), new_folder (optional, default = current folder) }. | |
| dry_run | No | Optional bool (default false). Plan + run every guard and the CDO scan, but never call RenameAssets. | |
| readonly_roots | No | Optional array of long paths that must not be renamed FROM or INTO (default: the project's Read Only Content Roots setting). Pass [] to disable the guard. | |
| allow_cdo_referenced | No | Optional bool (default false). When false, a native-CDO reference to any asset in the batch refuses the batch instead of letting it silently no-op. |