Interchange¶
22 tools. Back to the index.
interchange_can_reset_actor¶
Read-only.
Report, read-only, whether Interchange can reset an actor of the editor world (UInterchangeEditorScriptLibrary::CanResetActor, which needs a bound UInterchangeSceneImportAsset); returns actor_path and can_reset. The actor is found by full object path or by object name in the persistent level, not by label.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_path |
string | yes | Full object path of the actor (e.g. "/Game/Maps/MyMap.MyMap:PersistentLevel.ActorName_0") or its object name in the persistent level of the editor world (e.g. "StaticMeshActor_3"); labels are not matched. |
Returns: { actor_path: string, can_reset: bool }
interchange_can_reset_world¶
Read-only.
Report, read-only, whether Interchange can reset a world (UInterchangeEditorScriptLibrary::CanResetWorld): the map asset world_path names, loaded if needed, or the current editor world. Returns can_reset, is_editor_world and resolved_world_path. Run the reset with interchange_reset_level_asset.
| Parameter | Type | Required | Description |
|---|---|---|---|
world_path |
string | no | World asset path (e.g. "/Game/Maps/MyMap") or fully-qualified object path. Empty = current editor world. |
Returns: { world_path: string, can_reset: bool, is_editor_world: bool }
interchange_can_translate_source_data¶
Read-only.
Whether a registered Interchange translator can read a source file (a path on disk or an asset path). Read-only.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path |
string | yes | Path of the source file to test on disk (e.g. "C:/Assets/Mesh.fbx"), or an Unreal asset path. Passed to UInterchangeManager::CreateSourceData. |
scene_only |
boolean | no | When true, restrict the check to scene translators (bSceneOnly). Defaults to false (any translator type). |
Returns: { file_path: string, scene_only: bool, can_translate: bool }
interchange_create_pipeline_asset¶
Additive, idempotent.
Create an Interchange pipeline asset of a concrete pipeline class (the generic texture, mesh, material, animation, audio, scenes, groom or assets pipelines, glTF, sparse volume texture, MaterialX). Idempotent: an object of that name already in package_path is returned with already_existed:true.
| Parameter | Type | Required | Description |
|---|---|---|---|
pipeline_class_path |
string | yes | Class path of the concrete (non-abstract) UInterchangePipelineBase subclass to instantiate (e.g. "/Script/InterchangePipelines.InterchangeGenericAssetsPipeline"), loaded via LoadClass. |
asset_name |
string | yes | Name of the new pipeline asset (the object/package name under package_path). |
package_path |
string | no | Destination UE content folder for the new pipeline asset (e.g. "/Game/Pipelines"). Defaults to "/Game". |
Returns: { pipeline_path: string, class: string, already_existed: bool, note: string }
interchange_get_asset_import_data¶
Read-only.
Read the UInterchangeAssetImportData of an asset. Loads the asset via LoadObject<UObject> and calls UInterchangeManager::GetAssetImportData(Asset) (InterchangeManager.h, INTERCHANGEENGINE_API). For assets imported via the legacy factory path the returned data is null — that is reported as present:false (a normal state, not an error). When present, also calls ScriptExtractFilenames / ScriptExtractDisplayLabels (UFUNCTION inline, InterchangeAssetImportData.h/65).
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Asset path (e.g. "/Game/Foo/Foo") or fully-qualified object path ("/Game/Foo/Foo.Foo") |
Returns: { asset_path: string, present: bool, pipelines_count: number, has_node_container: bool, source_filenames: [string], display_labels: [string] }
interchange_get_node_container¶
Read-only.
Read the UInterchangeBaseNodeContainer of an asset's UInterchangeAssetImportData. Loads the asset + ID, then iterates factory nodes via IterateNodesOfType<UInterchangeFactoryBaseNode> (InterchangeBaseNodeContainer.h, template header-only) and reads class via GetObjectClass() (InterchangeFactoryBaseNode.h, INTERCHANGECORE_API), UniqueID + DisplayLabel from UInterchangeBaseNode (InterchangeBaseNode.h, INTERCHANGECORE_API).
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Asset path (e.g. "/Game/Foo/Foo") |
Returns: { asset_path: string, present: bool, root_uids: [string], factory_node_count: number, factory_nodes: [object] }
interchange_get_pipeline_properties¶
Read-only.
Read the properties of an Interchange pipeline asset by reflection; class_only lists only their names and types.
| Parameter | Type | Required | Description |
|---|---|---|---|
pipeline_path |
string | yes | Object path of the pipeline asset to read (loaded via LoadObject, must be a UInterchangePipelineBase). |
class_only |
boolean | no | When true, return only the EditAnywhere property NAMES and types (no values) for discovery. Defaults to false (includes current values). |
Returns: { pipeline_path: string, class: string, properties: [object], property_count: number }
interchange_get_pipelines¶
Read-only.
List the UInterchangePipelineBase instances stored on an asset's UInterchangeAssetImportData. Loads the asset, retrieves its UInterchangeAssetImportData via UInterchangeManager::GetAssetImportData (InterchangeManager.h), then calls ID->GetPipelines() (InterchangeAssetImportData.h, INTERCHANGEENGINE_API). Returns the class, name, and full object path of each pipeline.
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Asset path (e.g. "/Game/Foo/Foo") or fully-qualified object path |
Returns: { asset_path: string, present: bool, pipeline_count: number, pipelines: [object] }
interchange_get_project_settings¶
Read-only.
Read the project's Interchange settings (UInterchangeProjectSettings): the content and scene import settings (pipeline stacks, default stack and its per-asset-type overrides, import dialog class and flags, per-translator dialog overrides), the file picker and generic pipeline classes, the converter default pipeline and the Interchange groups.
No parameters.
interchange_get_supported_formats¶
Read-only.
List file extensions supported by registered Interchange translators of a given type. Calls UInterchangeManager::GetSupportedFormats(EInterchangeTranslatorType) (InterchangeManager.h, INTERCHANGEENGINE_API). The 5.8 enum has Invalid / Assets / Actors / Scenes (Scenes = Assets|Actors). Accepts aliases "Assets", "Actors", "Scenes", and "AssetsAndScene" (mapped to Scenes).
| Parameter | Type | Required | Description |
|---|---|---|---|
translator_type |
string | no | Translator type: "Assets" [default], "Actors", "Scenes", or the spec alias "AssetsAndScene" |
Returns: { translator_type: string, format_count: number, formats: [string] }
interchange_import_asset¶
Destructive.
Import a source file synchronously through the Interchange manager: unattended, no dialogs, replacing existing assets unless replace_existing is false. When the InterchangeImport plugin is not loaded the note says so.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path |
string | yes | Path of the source file to import on disk (e.g. "C:/Assets/Mesh.fbx"). Passed to UInterchangeManager::CreateSourceData. |
destination_path |
string | no | Destination UE content folder for the imported asset(s) (e.g. "/Game/Meshes"). Defaults to "/Game/Imported". |
replace_existing |
boolean | no | When true, overwrite an existing asset at the destination (bReplaceExisting). Defaults to true. |
Returns: { file_path: string, destination_path: string, imported: bool, count: number, imported_objects: [string], note: string }
interchange_module_status¶
Read-only.
Report Interchange framework availability. Reads UInterchangeManager::IsInterchangeImportEnabled() (InterchangeManager.h, INTERCHANGEENGINE_API) and counts the supported file extensions reported by GetSupportedFormats(Assets) (InterchangeManager.h). Translator count itself is derived because UInterchangeManager's RegisteredTranslatorsClass set is private in 5.8 (InterchangeManager.h) — we surface enabled (= import enabled AND at least one supported format) which carries the same operational signal.
No parameters.
Returns: { enabled: bool, import_enabled: bool, asset_format_count: number, actor_format_count: number, scene_format_count: number, asset_formats: [string], translator_type_queried: string }
interchange_register_factory¶
Additive, idempotent.
Load a factory class and register it with the Interchange manager. Idempotent: a class already registered is a no-op.
| Parameter | Type | Required | Description |
|---|---|---|---|
factory_class_path |
string | yes | Class path of the factory UClass to instantiate and register (e.g. "/Script/InterchangeEngine.InterchangeTextureFactory"), loaded via LoadClass. |
Returns: { factory_class_path: string, class: string, registered: bool, note: string }
interchange_register_translator¶
Additive, idempotent.
Load a translator class (e.g. /Script/InterchangeEngine.InterchangeTextureTranslator) and register it with the Interchange manager. Idempotent: a class already registered is a no-op.
| Parameter | Type | Required | Description |
|---|---|---|---|
translator_class_path |
string | yes | Class path of the translator UClass to instantiate and register (e.g. "/Script/InterchangeEngine.InterchangeTextureTranslator"), loaded via LoadClass. |
Returns: { translator_class_path: string, class: string, registered: bool, note: string }
interchange_reimport_asset¶
Destructive.
Reimport an existing asset from its stored UInterchangeAssetImportData (UInterchangeManager::ReimportAsset). An asset without Interchange import data (a legacy factory import, or one never imported) gets an error.
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Asset path (e.g. "/Game/Foo/Foo") or fully-qualified object path ("/Game/Foo/Foo.Foo") |
Returns: { asset_path: string, reimported: bool, count: number, note: string }
interchange_reset_actors¶
Destructive, idempotent.
Run an Interchange reset (UInterchangeEditorScriptLibrary::ResetActors) on the editor-world actors listed by object path or persistent-level object name; the library skips actors that fail CanResetActor, and the reply does not say which were reset. Returns count, resolved and unresolved_paths. Check first with interchange_can_reset_actor.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_paths |
array | yes | Actors to reset, each a full object path (e.g. "/Game/Maps/MyMap.MyMap:PersistentLevel.ActorName_0") or an object name in the persistent level; labels are not matched, and empty or unknown entries land in unresolved_paths. |
Returns: { count: number, resolved: number, unresolved_paths: [string], note: string }
interchange_reset_level_asset¶
Destructive, idempotent.
Run an Interchange reset on a level (UInterchangeEditorScriptLibrary::ResetLevelAsset), the map world_path names or the current editor world, only when the Interchange.FeatureFlags.InterchangeReset CVar is on and CanResetWorld is true; otherwise it does nothing and the call fails (reset false, with the reason in note). It does not save. Returns reset, can_reset, cvar_enabled and a note.
| Parameter | Type | Required | Description |
|---|---|---|---|
world_path |
string | no | World asset path (e.g. "/Game/Maps/MyMap") or fully-qualified object path. Empty = current editor world. |
Returns: { world_path: string, resolved_world_path: string, reset: bool, can_reset: bool, cvar_enabled: bool, note: string }
interchange_reset_scene_import_asset¶
Destructive, idempotent.
Call the Interchange reset of a UInterchangeSceneImportAsset (UInterchangeEditorScriptLibrary::ResetSceneImportAsset); other asset classes are refused. The engine only resets while the Interchange.FeatureFlags.InterchangeReset CVar is 1: with it at 0 the call does nothing and fails (reset false). The reset itself returns nothing, so reset true means it ran, not what it changed. Use interchange_reset_level_asset for a level.
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Asset path of the UInterchangeSceneImportAsset (e.g. "/Game/Imports/MyScene.MyScene") |
Returns: { asset_path: string, reset: bool, cvar_enabled: bool, note: string }
interchange_save_pipeline¶
Destructive, idempotent.
Write the package of an Interchange pipeline asset (a UInterchangePipelineBase loaded by object path) over its .uasset on disk, dirty or not, through the shared asset save; saved false makes success false and save_error carries the measured cause. It is the persist step after interchange_create_pipeline_asset and interchange_set_pipeline_properties, which change memory only; repeating it is idempotent. Like save_asset it refuses during PIE and under a read-only root. A path that does not load as a pipeline is an error.
| Parameter | Type | Required | Description |
|---|---|---|---|
pipeline_path |
string | yes | Object path of the pipeline asset whose package is written to disk (loaded via LoadObject, must be a UInterchangePipelineBase). |
Returns: { pipeline_path: string, file_path: string, saved: bool, save_error?: string }
interchange_set_pipeline_properties¶
Destructive, idempotent.
Set properties of an Interchange pipeline asset by reflection: properties is {name: value}, where a value can be a scalar, an object (a struct) or an array (a TArray).
| Parameter | Type | Required | Description |
|---|---|---|---|
pipeline_path |
string | yes | Object path of the pipeline asset to modify (loaded via LoadObject, must be a UInterchangePipelineBase). |
properties |
object | yes | JSON object of { propertyName: value } pairs applied by reflection to the pipeline's EditAnywhere UPROPERTYs. Values may be scalars, nested objects (structs), or arrays; non-editable or unknown fields are skipped and reported. |
Returns: { pipeline_path: string, applied_count: number, skipped_count: number, skipped: [string], note: string }
interchange_set_pipeline_stack_default¶
Destructive, idempotent.
Set the default Interchange pipeline stack for content or scene import (DefaultPipelineStack of the project's ContentImportSettings or SceneImportSettings), saved to the project's default config.
| Parameter | Type | Required | Description |
|---|---|---|---|
content_or_scene |
string | yes | Which import path's default stack to set: "content" (ContentImportSettings) or "scene" (SceneImportSettings). Case-insensitive. |
stack_name |
string | yes | Name of the pipeline stack to make the default (an FName key into the project's PipelineStacks map). |
Returns: { content_or_scene: string, stack_name: string, applied: bool }
interchange_set_pipelines¶
Destructive, idempotent.
Replace the UInterchangePipelineBase stack on an asset's UInterchangeAssetImportData. Loads the asset + its UInterchangeAssetImportData, resolves each path in pipeline_paths via LoadObject<UObject>, then calls ID->SetPipelines(InPipelines) (InterchangeAssetImportData.h, INTERCHANGEENGINE_API). Idempotent: SetPipelines resets TransientPipelines before applying (impl InterchangeAssetImportData.cpp). Marks the package dirty so the change persists on save.
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_path |
string | yes | Asset path (e.g. "/Game/Foo/Foo") |
pipeline_paths |
array | yes | Array of fully-qualified pipeline asset paths (UObject* resolved via LoadObject). Entries that fail to resolve are reported in unresolved_paths but do not abort the call. |
Returns: { asset_path: string, present: bool, pipeline_count: number, unresolved_paths: [string] }