Skip to content

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] }