Product documentation · Current desktop UI

Unreal source functions

430 definitions in the current source checkout. This source map includes internal helpers and class methods. It is not a supported API contract or a promise that a function can be called through a bridge. For supported entry points use the Python API reference or bundled DCC wrapper pages.

unreal_tools.animation

_asset_path

def _asset_path(asset)

module function · internal · unreal_tools/animation.py:8

_split_package_asset_path

def _split_package_asset_path(asset_path)

module function · internal · unreal_tools/animation.py:15

_load_anim_blueprint

def _load_anim_blueprint(unreal, anim_bp_path)

module function · internal · unreal_tools/animation.py:23

_animation_skeleton

def _animation_skeleton(animation)

module function · internal · unreal_tools/animation.py:30

_skeletal_meshes_for_skeleton

def _skeletal_meshes_for_skeleton(unreal, skeleton)

module function · internal · unreal_tools/animation.py:41

Return stable project SkeletalMesh candidates that use ``skeleton``.

_sequence_metric

def _sequence_metric(animation, property_names, method_names=())

module function · internal · unreal_tools/animation.py:59

resolve_animation_target

def resolve_animation_target(target_hint='', directory='/Game/')

module function · public name · unreal_tools/animation.py:75

Resolve one target mesh, Skeleton, and AnimBP from live project assets.

set_slot_animation

def set_slot_animation(anim_bp_path, slot_name, animation_path)

module function · public name · unreal_tools/animation.py:134

Sets an animation on a montage slot compatible with an Animation Blueprint. :param anim_bp_path: Animation Blueprint used to resolve the target skeleton. :param slot_name: montage slot name to assign. :param animation_path: source AnimSeque

inspect_imported_animation_pipeline

def inspect_imported_animation_pipeline(imported_paths, target_skeleton_path='', target_skeletal_mesh_path='')

module function · public name · unreal_tools/animation.py:253

Inspect imported animation timing, root motion, and skeleton compatibility.

retarget_imported_animations_if_needed

def retarget_imported_animations_if_needed(compatibility_report, source_skeletal_mesh_path='', target_skeletal_mesh_path='', output_path='/Game/Animations/Retargeted', retargeter_path='')

module function · public name · unreal_tools/animation.py:348

Retarget only incompatible imported AnimSequences and preserve compatible ones.

report_animation_pipeline_assets

def report_animation_pipeline_assets(imported_paths, animation_paths, target_skeleton_path='', target_anim_blueprint_path='')

module function · public name · unreal_tools/animation.py:444

Return final asset existence, ownership, and compatibility evidence.

find_compatible_animations

def find_compatible_animations(skeleton_path, directory='/Game/')

module function · public name · unreal_tools/animation.py:476

create_or_update_animation_blueprint

def create_or_update_animation_blueprint(skeleton_path, asset_path, template='locomotion')

module function · public name · unreal_tools/animation.py:495

Create or reuse a base AnimBlueprint for a concrete Skeleton.

add_state_machine

def add_state_machine(anim_bp_path, state_machine_name)

module function · public name · unreal_tools/animation.py:580

add_state

def add_state(anim_bp_path, state_machine_name, state_name, animation_asset_path='')

module function · public name · unreal_tools/animation.py:590

add_transition_rule

def add_transition_rule(anim_bp_path, state_machine_name, from_state, to_state, rule_expression)

module function · public name · unreal_tools/animation.py:614

wire_state_machine_to_output_pose

def wire_state_machine_to_output_pose(anim_bp_path, state_machine_name)

module function · public name · unreal_tools/animation.py:633

compile_and_save_anim_blueprint

def compile_and_save_anim_blueprint(anim_bp_path)

module function · public name · unreal_tools/animation.py:643

get_state_machine_graph

def get_state_machine_graph(anim_bp_path, state_machine_name)

module function · public name · unreal_tools/animation.py:650

add_anim_notify

def add_anim_notify(animation_path, notify_name, notify_class='', time_ratio=0.0, save=True)

module function · public name · unreal_tools/animation.py:676

delete_state_from_state_machine

def delete_state_from_state_machine(anim_bp_path, state_machine_name, state_name)

module function · public name · unreal_tools/animation.py:713

delete_state_transition

def delete_state_transition(anim_bp_path, from_state, to_state)

module function · public name · unreal_tools/animation.py:724

rename_state

def rename_state(anim_bp_path, state_machine_name, old_state_name, new_state_name)

module function · public name · unreal_tools/animation.py:735

set_state_transition_rule

def set_state_transition_rule(anim_bp_path, from_state, to_state, condition_rule)

module function · public name · unreal_tools/animation.py:746

synthesize_transition_rule_expression

def synthesize_transition_rule_expression(anim_bp_path, state_machine_name, from_state, to_state, rule_expression)

module function · public name · unreal_tools/animation.py:757

retarget_animation

def retarget_animation(source_animation, source_skeletal_mesh_path='', target_skeletal_mesh_path='', output_path='/Game/Animations/Retargeted', retargeter_path='', destination_suffix='_Retargeted', save=True)

module function · public name · unreal_tools/animation.py:774

Retarget an animation through an explicit or discoverable IK Retargeter.

create_blendspace

def create_blendspace(asset_path, skeleton_path, samples=None, animation_paths=None, sample_layout='speed_line', axis_x=None, axis_y=None, save=True)

module function · public name · unreal_tools/animation.py:831

Create and configure a BlendSpace through the validated native bridge.

unreal_tools.animation_import_adapter

import_animation_verified

def import_animation_verified(anim_path, skeleton_path, destination_path, destination_name='', replace_existing=True)

module function · public name · unreal_tools/animation_import_adapter.py:6

Import animation-only FBX data and verify the final Asset Registry path.

unreal_tools.animation_interchange_exporter

export_animation_assets

def export_animation_assets(asset_paths: Iterable[str], destination: str='') -> dict[str, Any]

module function · public name · unreal_tools/animation_interchange_exporter.py:14

export_selected_animation_assets

def export_selected_animation_assets(destination: str='') -> dict[str, Any]

module function · public name · unreal_tools/animation_interchange_exporter.py:53

_animation_sequence

def _animation_sequence(unreal: Any, object_path: str, asset: Any) -> dict[str, Any]

module function · internal · unreal_tools/animation_interchange_exporter.py:68

_blend_space

def _blend_space(unreal: Any, object_path: str, asset: Any, class_name: str) -> dict[str, Any]

module function · internal · unreal_tools/animation_interchange_exporter.py:82

_animation_blueprint

def _animation_blueprint(unreal: Any, object_path: str, asset: Any) -> dict[str, Any]

module function · internal · unreal_tools/animation_interchange_exporter.py:105

_curve_names

def _curve_names(unreal: Any, asset: Any) -> list[dict[str, str]]

module function · internal · unreal_tools/animation_interchange_exporter.py:131

_notify_events

def _notify_events(asset: Any) -> list[dict[str, Any]]

module function · internal · unreal_tools/animation_interchange_exporter.py:139

_property

def _property(value: Any, name: str, default: Any) -> Any

module function · internal · unreal_tools/animation_interchange_exporter.py:146

_call_or_property

def _call_or_property(value: Any, method: str, prop: str, default: Any) -> Any

module function · internal · unreal_tools/animation_interchange_exporter.py:155

_object_path

def _object_path(value: Any) -> str

module function · internal · unreal_tools/animation_interchange_exporter.py:165

unreal_tools.animation_source_import

_asset_path

def _asset_path(value: str) -> str

module function · internal · unreal_tools/animation_source_import.py:8

import_animation_source

def import_animation_source(source_path: str, destination_path: str, destination_name: str, replace_existing: bool=False, save: bool=True) -> dict

module function · public name · unreal_tools/animation_source_import.py:12

Import an FBX's own mesh, Skeleton, and animations for editor retargeting. A motion-only FBX may create a Skeleton/AnimSequence but no SkeletalMesh. The report keeps that distinction explicit because IK Retargeter baking needs a source Skel

unreal_tools.asset_transfer_adapter

resolve_import_destination

def resolve_import_destination(destination_path: str) -> tuple[str, str]

module function · public name · unreal_tools/asset_transfer_adapter.py:11

Resolve an explicit package path or the current Content Browser folder.

import_fbx_verified

def import_fbx_verified(source_file: str, destination_path: str='/Game/AIStudio/Imports', *, subject: str='asset', skeleton_path: str='', replace_existing: bool=False, save: bool=True, assemble_lods: bool=False) -> dict[str, Any]

module function · public name · unreal_tools/asset_transfer_adapter.py:31

Import an FBX and verify its assets, including skeletal mesh to Skeleton links.

registry_readback

def registry_readback(imported_paths: list[str] | tuple[str, ...] | None=None, destination_path: str='') -> dict[str, Any]

module function · public name · unreal_tools/asset_transfer_adapter.py:210

Prove imported packages resolve through the Asset Registry.

rollback_imported_assets

def rollback_imported_assets(imported_paths: list[str] | tuple[str, ...]) -> dict[str, Any]

module function · public name · unreal_tools/asset_transfer_adapter.py:255

Delete only the assets returned by this adapter's import result.

unreal_tools.assets

object_path

def object_path(asset_path)

module function · public name · unreal_tools/assets.py:9

Return an Unreal object path for either a package or object path input.

load_asset

def load_asset(unreal, asset_path)

module function · public name · unreal_tools/assets.py:19

Load an asset even when EditorAssetLibrary rejects a package-only path.

load_blueprint_class

def load_blueprint_class(unreal, asset_path)

module function · public name · unreal_tools/assets.py:37

Resolve a generated class from package, object, or generated-class paths.

get_dependencies

def get_dependencies(asset_path, recursive=True)

module function · public name · unreal_tools/assets.py:72

inspect_asset

def inspect_asset(asset_path)

module function · public name · unreal_tools/assets.py:87

find_asset_path_by_name

def find_asset_path_by_name(file_name, expected_class='', directory='/Game', allow_engine=False)

module function · public name · unreal_tools/assets.py:124

Resolve a user-facing Unreal asset name/path to a package path. This is the shared version of the old `find_uasset_path` pattern. It accepts `/Game/...`, `/Game/Asset.Asset`, or a bare asset name such as `Run_Fwd`. Returns the package path

resolve_asset

def resolve_asset(file_name, expected_class='', directory='/Game')

module function · public name · unreal_tools/assets.py:190

Return a compact serializable asset handle by name/path.

delete_assets

def delete_assets(asset_paths, dry_run=False)

module function · public name · unreal_tools/assets.py:213

Deletes exact Unreal assets idempotently. :param asset_paths: asset path or paths to delete :param dry_run: whether to inspect without mutation :return: JSON deletion receipt

rename_asset

def rename_asset(asset_path, new_asset_path, dry_run=False)

module function · public name · unreal_tools/assets.py:251

duplicate_asset

def duplicate_asset(source_asset_path, target_asset_path, dry_run=False)

module function · public name · unreal_tools/assets.py:268

save_assets

def save_assets(asset_paths, only_if_is_dirty=False)

module function · public name · unreal_tools/assets.py:285

create_by_class_path

def create_by_class_path(asset_path, class_path, initial_properties=None)

module function · public name · unreal_tools/assets.py:299

inspect_reflected

def inspect_reflected(asset_path, property_names=None)

module function · public name · unreal_tools/assets.py:311

set_reflected_property

def set_reflected_property(asset_path, property_name, value)

module function · public name · unreal_tools/assets.py:319

array_add_object_reference

def array_add_object_reference(asset_path, property_name, object_path)

module function · public name · unreal_tools/assets.py:331

array_remove_object_reference

def array_remove_object_reference(asset_path, property_name, object_path)

module function · public name · unreal_tools/assets.py:343

unreal_tools.behavior_tree

author_baseline

def author_baseline(behavior_tree_path, blackboard_path='', wait_seconds=1.0, save=True)

module function · public name · unreal_tools/behavior_tree.py:8

Authors a Root to Selector to Wait Behavior Tree baseline. :param behavior_tree_path: Unreal Behavior Tree content path :param blackboard_path: optional Blackboard Data content path :param wait_seconds: Wait task duration :param save: wheth

author_wait_graph

def author_wait_graph(behavior_tree_path, blackboard_path='', composite_type='selector', wait_seconds=(1.0,), save=True)

module function · public name · unreal_tools/behavior_tree.py:40

Authors a Selector or Sequence with one or more Wait task children. :param behavior_tree_path: Unreal Behavior Tree content path :param blackboard_path: optional Blackboard Data content path :param composite_type: selector or sequence :para

author_task_graph

def author_task_graph(behavior_tree_path, blackboard_path, tasks, composite_type='sequence', save=True)

module function · public name · unreal_tools/behavior_tree.py:75

Authors a mixed Move To and Wait Behavior Tree task graph. :param behavior_tree_path: Unreal Behavior Tree content path :param blackboard_path: Blackboard Data content path used by Move To tasks :param tasks: ordered task specifications :pa

unreal_tools.blackboard

_load_blackboard

def _load_blackboard(unreal, asset_path)

module function · internal · unreal_tools/blackboard.py:22

inspect_schema

def inspect_schema(asset_path)

module function · public name · unreal_tools/blackboard.py:29

Inspects Blackboard keys and their reflected types. :param asset_path: Unreal Blackboard Data content path :return: JSON schema inspection receipt

set_schema

def set_schema(asset_path, keys, replace_existing=True, save=True)

module function · public name · unreal_tools/blackboard.py:57

Sets a Blackboard schema using reflected key-type subobjects. :param asset_path: Unreal Blackboard Data content path :param keys: key specification dictionaries :param replace_existing: whether to replace all existing keys :param save: whet

unreal_tools.blueprint

_load_blueprint

def _load_blueprint(unreal, asset_path)

module function · internal · unreal_tools/blueprint.py:11

_pin_type_summary

def _pin_type_summary(pin_type)

module function · internal · unreal_tools/blueprint.py:18

_variable_row

def _variable_row(unreal, blueprint, raw_name)

module function · internal · unreal_tools/blueprint.py:43

_compile_and_save

def _compile_and_save(unreal, blueprint, save)

module function · internal · unreal_tools/blueprint.py:57

_blueprint_component_rows

def _blueprint_component_rows(unreal, blueprint)

module function · internal · unreal_tools/blueprint.py:76

_resolve_component_class

def _resolve_component_class(unreal, component_class)

module function · internal · unreal_tools/blueprint.py:107

_unreal_class_path

def _unreal_class_path(unreal_class)

module function · internal · unreal_tools/blueprint.py:124

Gets the canonical Unreal class path for a Python class proxy or UClass. :param unreal_class: Unreal Python class proxy or reflected UClass :return: canonical Unreal class path

_set_component_reference

def _set_component_reference(component, unreal, asset_path)

module function · internal · unreal_tools/blueprint.py:143

add_component

def add_component(blueprint_path, component_class, component_name, asset_path='', attach_bone='', socket_name='', save=True)

module function · public name · unreal_tools/blueprint.py:160

Add and verify a Blueprint-authored component through SubobjectDataSubsystem.

_member_default_text

def _member_default_text(value)

module function · internal · unreal_tools/blueprint.py:243

_equivalent_default

def _equivalent_default(expected, actual)

module function · internal · unreal_tools/blueprint.py:253

create_variable

def create_variable(blueprint_path, variable_name, variable_type, is_array=False, default_value=None, save=True)

module function · public name · unreal_tools/blueprint.py:266

Create a typed Blueprint member variable and verify generated-class readback.

scan_blueprint

def scan_blueprint(asset_path, include_graphs=True, include_defaults=True)

module function · public name · unreal_tools/blueprint.py:332

compile_blueprint

def compile_blueprint(asset_path)

module function · public name · unreal_tools/blueprint.py:426

compile_and_save_blueprint

def compile_and_save_blueprint(asset_path)

module function · public name · unreal_tools/blueprint.py:435

Compile a Blueprint and save it to disk if compilation succeeds.

_graph_editor

def _graph_editor(unreal, blueprint, graph_name)

module function · internal · unreal_tools/blueprint.py:467

_node_by_name

def _node_by_name(editor, node_name)

module function · internal · unreal_tools/blueprint.py:474

_pin_by_name

def _pin_by_name(unreal, node, pin_name)

module function · internal · unreal_tools/blueprint.py:490

add_function

def add_function(blueprint_path, function_name, inputs=None, outputs=None, save=True)

module function · public name · unreal_tools/blueprint.py:504

add_node_to_graph

def add_node_to_graph(blueprint_path, graph_name, node_class, node_name='', x=0.0, y=0.0, context_node_names=None, save=True)

module function · public name · unreal_tools/blueprint.py:559

connect_node_pins

def connect_node_pins(blueprint_path, graph_name, source_node, source_pin, target_node, target_pin, save=True)

module function · public name · unreal_tools/blueprint.py:612

get_compile_errors

def get_compile_errors(blueprint_path)

module function · public name · unreal_tools/blueprint.py:645

_bridge_action_result

def _bridge_action_result(unreal, method_name, blueprint_path, graph_name, *args)

module function · internal · unreal_tools/blueprint.py:659

describe_node_action

def describe_node_action(blueprint_path, graph_name, palette_action)

module function · public name · unreal_tools/blueprint.py:673

Read an exact context-filtered palette action and pin signature without mutation.

search_node_actions

def search_node_actions(blueprint_path, graph_name, query, max_results=50)

module function · public name · unreal_tools/blueprint.py:686

Search live graph-context Blueprint actions without changing the source asset.

probe_node_action

def probe_node_action(blueprint_path, graph_name, palette_action, temp_folder='/Game/AIStudio/Temp/NodeProbes')

module function · public name · unreal_tools/blueprint.py:700

Create an action only on a disposable Blueprint copy and report its real pins.

_validate_graph_spec

def _validate_graph_spec(spec)

module function · internal · unreal_tools/blueprint.py:796

apply_graph_spec

def apply_graph_spec(blueprint_path, graph_name, graph_spec, save=True)

module function · public name · unreal_tools/blueprint.py:830

Apply an approved, explicit node graph without mechanic-specific dispatch.

create_from_template

def create_from_template(template, asset_path, parent_class='', parameters=None)

module function · public name · unreal_tools/blueprint.py:894

Creates or loads a Blueprint and reports only operations actually performed. :param template: parent selection hint such as actor or character :param asset_path: destination Unreal content path :param parent_class: optional explicit Unreal

unreal_tools.blueprint_events

get_blueprint_graphs

def get_blueprint_graphs(blueprint)

module function · public name · unreal_tools/blueprint_events.py:4

add_custom_events_to_blueprint

def add_custom_events_to_blueprint(bp_path, event_names)

module function · public name · unreal_tools/blueprint_events.py:14

Ensures each name in `event_names` exists as a custom event inside the Blueprint at `bp_path`. If it doesn't exist, it creates the event. :param event_names: List of new attribute events to add to the bp :param bp_path: Path to the Blueprin

get_valid_events_from_import

def get_valid_events_from_import(imported_events, bp_class)

module function · public name · unreal_tools/blueprint_events.py:68

:param imported_events: :param bp_class: :return:

unreal_tools.blueprint_variables

detect_new_custom_attrs_from_animation

def detect_new_custom_attrs_from_animation(anim_path, bp_path)

module function · public name · unreal_tools/blueprint_variables.py:3

:param anim_path: Path to Anim Sequence :param bp_path: Path to the Blueprint to query and edit :return:

add_variables_to_blueprint

def add_variables_to_blueprint(bp_path, variable_names)

module function · public name · unreal_tools/blueprint_variables.py:18

Adds a list of variables to a Blueprint and exposes them to cinematics. :param bp_path: Blueprint path to add the variables to :param variable_names: List of variable names from curves

unreal_tools.control_rig

_prepare_game_asset_for_write

def _prepare_game_asset_for_write(asset_path)

module function · internal · unreal_tools/control_rig.py:8

create_control_rig_from_asset

def create_control_rig_from_asset(asset_path)

module function · public name · unreal_tools/control_rig.py:14

add_parent_constraint_node

def add_parent_constraint_node(control_rig_bp, graph: unreal.RigVMGraph, child_name: str, parent_name: str, child_type=unreal.RigElementType.BONE, parent_type=unreal.RigElementType.CONTROL, maintain_offset=True, weight=1.0, translation=True, rotation=True, scale=False, node_position=unreal.Vector2D(0.0, 0.0), node_name='ParentConstraintNode', input_node=None)

module function · public name · unreal_tools/control_rig.py:31

connect_to_forward_solve

def connect_to_forward_solve(controller, graph, unit_node, forward_entry_node=None)

module function · public name · unreal_tools/control_rig.py:81

:param controller: :param graph: :param unit_node: :param forward_entry_node: :return:

get_bone_hierarchy

def get_bone_hierarchy(skeletal_mesh_path)

module function · public name · unreal_tools/control_rig.py:124

:param skeletal_mesh_path: Path to skeletal mesh being used :return:

get_finger_joints

def get_finger_joints(joint_map, finger_name, side='Left')

module function · public name · unreal_tools/control_rig.py:151

:param joint_map: mapping from HIK UI (maya_tools/Rigging/mocap) :param finger_name: :param side: :return:

build_spine_module

def build_spine_module(controller, spine_joints)

module function · public name · unreal_tools/control_rig.py:176

:param controller: control_rig_bp.get_modular_rig_controller() :param spine_joints: :return:

build_leg_modules

def build_leg_modules(controller, leg_joints, spine_joints)

module function · public name · unreal_tools/control_rig.py:219

:param controller: control_rig_bp.get_modular_rig_controller() :param leg_joints: :param spine_joints: :return:

build_neck_module

def build_neck_module(controller, neck_joints)

module function · public name · unreal_tools/control_rig.py:273

:param controller: control_rig_bp.get_modular_rig_controller() :param neck_joints: :return:

build_finger_modules

def build_finger_modules(controller, joint_map)

module function · public name · unreal_tools/control_rig.py:317

:param controller: control_rig_bp.get_modular_rig_controller() :param joint_map: :return:

build_shoulder_modules

def build_shoulder_modules(controller)

module function · public name · unreal_tools/control_rig.py:367

:param controller: control_rig_bp.get_modular_rig_controller() :return:

build_arm_modules

def build_arm_modules(controller, arm_joints)

module function · public name · unreal_tools/control_rig.py:397

:param controller: control_rig_bp.get_modular_rig_controller() :param arm_joints: :return:

build_feet_modules

def build_feet_modules(controller, foot_joints)

module function · public name · unreal_tools/control_rig.py:470

:param controller: control_rig_bp.get_modular_rig_controller() :param foot_joints: :return:

assign_origin_to_root

def assign_origin_to_root(controller, root_joint)

module function · public name · unreal_tools/control_rig.py:525

:param controller: control_rig_bp.get_modular_rig_controller() :param root_joint: actual top joint name :return:

find_uasset_path

def find_uasset_path(file_name)

module function · public name · unreal_tools/control_rig.py:548

Finds the path of a .uasset file by name. :param file_name: The name of the asset to find. :return: Path to the asset if found, None otherwise.

configure_arm_reference_axes

def configure_arm_reference_axes(blueprint, joint_map)

module function · public name · unreal_tools/control_rig.py:573

Choose explicit limb axes that preserve the imported reference pose.

verify_arm_reference_pose

def verify_arm_reference_pose(blueprint, joint_map)

module function · public name · unreal_tools/control_rig.py:643

Reject fresh builds with arm or roll-bone rest-pose flips in FK or IK.

apply_body_control_connections

def apply_body_control_connections(control_rig_bp, joint_map)

module function · public name · unreal_tools/control_rig.py:694

Resolve generated control spaces and twist arrays after construction.

apply_body_joint_map

def apply_body_joint_map(control_rig_bp, joint_map)

module function · public name · unreal_tools/control_rig.py:796

Build and resolve modular connectors from explicit HIK body slots.

build_modular_fk_control_rig

def build_modular_fk_control_rig(skeletal_mesh_name, rig_name, joint_map)

module function · public name · unreal_tools/control_rig.py:896

:param skeletal_mesh_name: :param rig_name: :param joint_map: :return:

_json_result

def _json_result(**payload)

module function · internal · unreal_tools/control_rig.py:941

list_controls

def list_controls(rig_path)

module function · public name · unreal_tools/control_rig.py:947

set_control_property

def set_control_property(rig_path, control_name, property_name, value, save=True)

module function · public name · unreal_tools/control_rig.py:971

set_control_default

def set_control_default(rig_path, control_name, value, save=True)

module function · public name · unreal_tools/control_rig.py:984

rename_control

def rename_control(rig_path, old_name, new_name, save=True)

module function · public name · unreal_tools/control_rig.py:988

add_rig_element

def add_rig_element(rig_path, element_name, element_type, parent_name='', save=True)

module function · public name · unreal_tools/control_rig.py:1002

connect_rig_nodes

def connect_rig_nodes(rig_path, source_node, source_pin, target_node, target_pin, save=True)

module function · public name · unreal_tools/control_rig.py:1016

unreal_tools.data_tables

_asset_parts

def _asset_parts(asset_path)

module function · internal · unreal_tools/data_tables.py:8

Gets the package path and asset name. :param asset_path: Unreal content path :return: package path and asset name

_load_row_struct

def _load_row_struct(unreal, row_struct_path)

module function · internal · unreal_tools/data_tables.py:24

Loads a native or asset-backed row ScriptStruct. :param unreal: Unreal Python module :param row_struct_path: Unreal row-struct object path :return: loaded ScriptStruct

inspect_data_table

def inspect_data_table(asset_path, include_rows=False, max_rows=200)

module function · public name · unreal_tools/data_tables.py:44

Inspects a Data Table's row struct, columns, rows, and JSON export. :param asset_path: Unreal Data Table content path :param include_rows: whether to include exported row payloads :param max_rows: maximum exported rows returned in the recei

create_from_rows

def create_from_rows(asset_path, row_struct_path, rows, overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/data_tables.py:92

Creates, fills, saves, and verifies a Data Table from JSON-compatible rows. :param asset_path: destination Unreal Data Table content path :param row_struct_path: native or asset-backed row ScriptStruct path :param rows: row dictionaries con

unreal_tools.domain_assets

_asset_parts

def _asset_parts(asset_path)

module function · internal · unreal_tools/domain_assets.py:20

Gets the package path and asset name. :param asset_path: Unreal content path :return: package path and asset name

_type_classes

def _type_classes(unreal, asset_type)

module function · internal · unreal_tools/domain_assets.py:36

Resolves the reflected asset and factory classes for a supported type. :param unreal: Unreal Python module :param asset_type: supported Tech Connector domain asset type :return: reflected asset class and factory class

_factory_compatibility

def _factory_compatibility(unreal, asset_class, factory)

module function · internal · unreal_tools/domain_assets.py:60

Checks that an Unreal factory supports the exact requested asset class. :param unreal: Unreal Python module :param asset_class: requested Unreal Python asset class :param factory: instantiated Unreal factory :return: compatibility flag, req

inspect_domain_asset

def inspect_domain_asset(asset_path, expected_type='')

module function · public name · unreal_tools/domain_assets.py:88

Inspects a supported domain asset through registry and reflected readback. :param asset_path: Unreal content path :param expected_type: optional supported Tech Connector domain asset type :return: JSON inspection receipt

create_domain_asset

def create_domain_asset(asset_type, asset_path, overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/domain_assets.py:128

Creates a supported domain asset with class, save, and registry readback. :param asset_type: supported Tech Connector domain asset type :param asset_path: destination Unreal content path :param overwrite: whether to delete the exact existin

unreal_tools.editor_tools

BlueprintNodeSearchDockWidget.__init__

def BlueprintNodeSearchDockWidget.__init__(self, rows: int=0, columns: int=0, parent=None)

class method · internal · unreal_tools/editor_tools.py:7

BlueprintNodeSearchDockWidget.populate

def BlueprintNodeSearchDockWidget.populate(self, headers: list[str], row_data: list[list[str]]) -> None

class method · public name · unreal_tools/editor_tools.py:13

unreal_tools.gameplay

_tokens

def _tokens(text)

module function · internal · unreal_tools/gameplay.py:9

_asset_class_name

def _asset_class_name(data)

module function · internal · unreal_tools/gameplay.py:13

_asset_name

def _asset_name(data)

module function · internal · unreal_tools/gameplay.py:23

_package_name

def _package_name(data)

module function · internal · unreal_tools/gameplay.py:33

_object_path

def _object_path(data)

module function · internal · unreal_tools/gameplay.py:40

_asset_index

def _asset_index(unreal, directory='/Game/')

module function · internal · unreal_tools/gameplay.py:63

_rank

def _rank(items, words)

module function · internal · unreal_tools/gameplay.py:77

_rock_climbing_plan

def _rock_climbing_plan(candidate_blueprints, candidate_anim_bps, candidate_anims)

module function · internal · unreal_tools/gameplay.py:92

prototype_from_template

def prototype_from_template(template, target_path, parameters=None)

module function · public name · unreal_tools/gameplay.py:125

Create a scan-backed prototype plan from a controlled template.

create_gameplay_ability

def create_gameplay_ability(ability_name, save_path='')

module function · public name · unreal_tools/gameplay.py:188

Creates a Gameplay Ability Blueprint asset. :param ability_name: asset name for the new Gameplay Ability Blueprint. :param save_path: optional content folder or full package path. :return: JSON creation and readback result.

unreal_tools.gameplay_import_func

import_animations_from_json

def import_animations_from_json(anim_dict_path)

module function · public name · unreal_tools/gameplay_import_func.py:7

Function to call via the subprocess version / unreal cmd.exe version of the gameplay import to import all anims in json :param anim_dict_path: path to json with sequence_data :return:

unreal_tools.get_skeletons

get_all_assets_of_type

def get_all_assets_of_type(type='Skeleton', directory='/Game/')

module function · public name · unreal_tools/get_skeletons.py:4

Return stable Asset Registry identities for one Unreal asset class.

unreal_tools.http_server

_write_bridge_status

def _write_bridge_status(status)

module function · internal · unreal_tools/http_server.py:29

verify_ai_studio_bridge

def verify_ai_studio_bridge()

module function · public name · unreal_tools/http_server.py:59

_write_port_files

def _write_port_files(port)

module function · internal · unreal_tools/http_server.py:91

import_function

def import_function(func_path)

module function · public name · unreal_tools/http_server.py:119

Dynamically import a function from a module path string. used in a payload for the HTTP Handler POST :param func_path: Example func "unreal_tools.get_skeletons.get_all_assets_of_type" :return:

tick

def tick(delta_time)

module function · public name · unreal_tools/http_server.py:146

RequestHandler.log_message

def RequestHandler.log_message(self, format, *args)

class method · public name · unreal_tools/http_server.py:180

RequestHandler.do_POST

def RequestHandler.do_POST(self)

class method · public name · unreal_tools/http_server.py:183

RequestHandler._send_json

def RequestHandler._send_json(self, status_code, payload)

class method · internal · unreal_tools/http_server.py:238

Send a JSON response without terminating the server on disconnect.

is_port_in_use

def is_port_in_use(port)

module function · public name · unreal_tools/http_server.py:251

run_server

def run_server()

module function · public name · unreal_tools/http_server.py:256

start_http_server_in_thread

def start_http_server_in_thread()

module function · public name · unreal_tools/http_server.py:283

Start the listener unless a live server thread already owns it.

server_status

def server_status()

module function · public name · unreal_tools/http_server.py:301

Return listener and worker state for startup diagnostics.

unreal_tools.level

_component_summary

def _component_summary(component)

module function · internal · unreal_tools/level.py:8

_actor_summary

def _actor_summary(unreal, actor)

module function · internal · unreal_tools/level.py:20

scan_loaded_level

def scan_loaded_level(include_components=True, max_actors=2000)

module function · public name · unreal_tools/level.py:49

Return JSON-serializable facts about the currently loaded editor level.

_all_level_actors

def _all_level_actors(unreal)

module function · internal · unreal_tools/level.py:104

resolve_actor

def resolve_actor(query='selected', allow_asset_lookup=True)

module function · public name · unreal_tools/level.py:117

Resolve a name/label/path/tag/Blueprint or mesh asset name to level actors.

select_actors_by_query

def select_actors_by_query(query)

module function · public name · unreal_tools/level.py:219

Resolve actor query/queries to real Actor objects and select them in-editor.

get_selected_actors

def get_selected_actors()

module function · public name · unreal_tools/level.py:246

create_validation_map

def create_validation_map(map_path='/Game/Developers/AI_Validation/Disposable_TestMap', spawn_actors=None, test_steps=None, save=True)

module function · public name · unreal_tools/level.py:261

Create/open a disposable validation map and return editor readback evidence.

delete_actor

def delete_actor(actor_query, dry_run=False)

module function · public name · unreal_tools/level.py:331

organize_actors

def organize_actors(actor_specs, save=True)

module function · public name · unreal_tools/level.py:357

Organizes existing actors with labels, Outliner folders, tags, and visibility. :param actor_specs: actor queries and requested organization properties :param save: whether to save the current level :return: JSON mutation and exact actor rea

unreal_tools.materials

_asset_parts

def _asset_parts(asset_path)

module function · internal · unreal_tools/materials.py:10

Gets the package path and asset name. :param asset_path: Unreal content path :return: package path and asset name

_expression_row

def _expression_row(unreal, expression)

module function · internal · unreal_tools/materials.py:26

Gets a serializable material-expression receipt. :param unreal: Unreal Python module :param expression: material expression object :return: expression receipt

_resolve_expression_class

def _resolve_expression_class(unreal, class_name)

module function · internal · unreal_tools/materials.py:47

Resolves and validates a material-expression class name. :param unreal: Unreal Python module :param class_name: short Unreal material-expression class name :return: validated material-expression class

_coerce_editor_value

def _coerce_editor_value(unreal, current_value, value)

module function · internal · unreal_tools/materials.py:66

Coerces JSON-compatible data to the reflected property's Unreal type. :param unreal: Unreal Python module :param current_value: current reflected property value :param value: JSON-compatible requested value :return: value suitable for set_e

inspect_material

def inspect_material(asset_path)

module function · public name · unreal_tools/materials.py:118

Inspects a material graph and its material-property inputs. :param asset_path: Unreal material content path :return: JSON inspection receipt

create_material

def create_material(asset_path, overwrite=False, dry_run=False)

module function · public name · unreal_tools/materials.py:161

Creates a blank Material asset with save and registry readback. :param asset_path: destination Unreal material content path :param overwrite: whether to delete the exact existing asset first :param dry_run: whether to validate without mutat

create_parameterized_pbr_material

def create_parameterized_pbr_material(asset_path, base_color=(0.18, 0.35, 0.8, 1.0), roughness=0.5, metallic=0.0, overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/materials.py:213

Creates a parameterized PBR Material and verifies its graph connections. :param asset_path: destination Unreal material content path :param base_color: RGBA default for BaseColor :param roughness: scalar roughness default :param metallic: s

create_material_from_spec

def create_material_from_spec(asset_path, nodes, connections=None, outputs=None, material_domain='MD_SURFACE', material_properties=None, overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/materials.py:315

Creates, connects, compiles, saves, and verifies a Material graph specification. :param asset_path: destination Unreal material content path :param nodes: expression nodes with id, expression_class, position, and properties :param connectio

unreal_tools.metasound

_succeeded

def _succeeded(result)

module function · internal · unreal_tools/metasound.py:8

_builder_node_rows

def _builder_node_rows(builder, nodes)

module function · internal · unreal_tools/metasound.py:12

_literal_for_value

def _literal_for_value(builder_subsystem, value)

module function · internal · unreal_tools/metasound.py:34

Creates a MetaSound literal for a JSON-compatible scalar or array. :param builder_subsystem: Unreal MetaSound Builder subsystem :param value: requested scalar or homogeneous scalar array :return: MetaSound literal and literal data type

create_sine_tone_source

def create_sine_tone_source(asset_path, frequency=440.0, author='Tech Connector', overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/metasound.py:61

Authors and serializes a mono MetaSound sine tone source. :param asset_path: destination Unreal content path :param frequency: oscillator frequency in Hertz :param author: MetaSound document author :param overwrite: whether to replace the e

create_source_from_spec

def create_source_from_spec(asset_path, nodes, connections, author='Tech Connector', overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/metasound.py:185

Creates a mono MetaSound Source from registered nodes and named vertices. :param asset_path: destination Unreal content path :param nodes: registered node specifications with ids, class names, inputs, and locations :param connections: sourc

unreal_tools.motion_matching

_result

def _result(**payload)

module function · internal · unreal_tools/motion_matching.py:8

_load

def _load(unreal, asset_path)

module function · internal · unreal_tools/motion_matching.py:12

_bridge

def _bridge(unreal)

module function · internal · unreal_tools/motion_matching.py:19

_decode

def _decode(payload)

module function · internal · unreal_tools/motion_matching.py:26

_channel_class_path

def _channel_class_path(channel_name, channel_type)

module function · internal · unreal_tools/motion_matching.py:32

inspect_database

def inspect_database(asset_path)

module function · public name · unreal_tools/motion_matching.py:49

create_pose_search_database

def create_pose_search_database(skeleton_path: str, animation_paths: list[str], asset_path: str, schema_path: str='', sample_rate: int=30) -> str

module function · public name · unreal_tools/motion_matching.py:63

add_animation

def add_animation(database_path: str, animation_path: str) -> str

module function · public name · unreal_tools/motion_matching.py:92

remove_animation

def remove_animation(database_path: str, animation_path: str) -> str

module function · public name · unreal_tools/motion_matching.py:98

set_database_property

def set_database_property(database_path: str, property_name: str, value) -> str

module function · public name · unreal_tools/motion_matching.py:104

create_schema

def create_schema(skeleton_path: str, asset_path: str, channels: list[dict] | None=None, sample_rate: int=30) -> str

module function · public name · unreal_tools/motion_matching.py:120

add_schema_channel

def add_schema_channel(schema_path: str, channel_name: str, channel_type: str, settings: dict | None=None) -> str

module function · public name · unreal_tools/motion_matching.py:146

add_state_animations

def add_state_animations(database_path: str, animation_paths: list[str], state_tag: str) -> str

module function · public name · unreal_tools/motion_matching.py:161

unreal_tools.navigation

_result

def _result(**payload)

module function · internal · unreal_tools/navigation.py:8

open_content_browser

def open_content_browser(folder_path='/Game/', new_browser=False)

module function · public name · unreal_tools/navigation.py:12

open_asset

def open_asset(asset_path)

module function · public name · unreal_tools/navigation.py:22

open_window

def open_window(window_name)

module function · public name · unreal_tools/navigation.py:33

load_level

def load_level(level_path)

module function · public name · unreal_tools/navigation.py:42

add_nav_mesh_bounds

def add_nav_mesh_bounds(location=None, extent=None, save=True)

module function · public name · unreal_tools/navigation.py:52

unreal_tools.networking

_json_object

def _json_object(value)

module function · internal · unreal_tools/networking.py:8

configure_blueprint_replication

def configure_blueprint_replication(blueprint_path, replicated_variables=None, rep_notify_variables=None, server_rpc_functions=None, reliable=True, save=True)

module function · public name · unreal_tools/networking.py:17

Configure replication metadata through the reflected first-party bridge.

inspect_authority_flow

def inspect_authority_flow(blueprint_path, required_variables=None, required_server_rpcs=None, required_onrep_functions=None)

module function · public name · unreal_tools/networking.py:53

Read back graph and generated-class evidence for an authoritative Blueprint flow.

unreal_tools.niagara

_result

def _result(**payload)

module function · internal · unreal_tools/niagara.py:8

_load

def _load(unreal, asset_path)

module function · internal · unreal_tools/niagara.py:12

_bridge

def _bridge(unreal)

module function · internal · unreal_tools/niagara.py:19

_compact_value

def _compact_value(value, depth=0)

module function · internal · unreal_tools/niagara.py:26

_short_type_name

def _short_type_name(value)

module function · internal · unreal_tools/niagara.py:42

_display_niagara_value

def _display_niagara_value(value)

module function · internal · unreal_tools/niagara.py:49

_value_type

def _value_type(value, value_type)

module function · internal · unreal_tools/niagara.py:68

_split_package_asset_path

def _split_package_asset_path(asset_path)

module function · internal · unreal_tools/niagara.py:80

_readback_asset

def _readback_asset(unreal, asset_path)

module function · internal · unreal_tools/niagara.py:91

_set_requested_properties

def _set_requested_properties(asset, parameters)

module function · internal · unreal_tools/niagara.py:111

inspect_system

def inspect_system(asset_path)

module function · public name · unreal_tools/niagara.py:123

list_module_inputs

def list_module_inputs(asset_path: str, emitter_name: str='', include_topology: bool=False) -> str

module function · public name · unreal_tools/niagara.py:141

create_emitter

def create_emitter(asset_path, template='empty', parameters=None)

module function · public name · unreal_tools/niagara.py:201

set_user_parameter

def set_user_parameter(asset_path: str, parameter_name: str, value, value_type: str='auto') -> str

module function · public name · unreal_tools/niagara.py:277

set_renderer_property

def set_renderer_property(asset_path: str, property_name: str, value, emitter_name: str='', renderer_index: int=0, value_type: str='auto') -> str

module function · public name · unreal_tools/niagara.py:293

set_module_input

def set_module_input(asset_path: str, module_name: str, input_name: str, value, emitter_name: str='', script_usage: str='', value_type: str='auto') -> str

module function · public name · unreal_tools/niagara.py:314

add_to_level

def add_to_level(asset_path, location=None, attach_to_selected_actor=False)

module function · public name · unreal_tools/niagara.py:337

attach_editable_character_fx

def attach_editable_character_fx(blueprint_path, source_system_path='/Game/Variant_Platforming/VFX/NS_Jump_Trail', system_path='/Game/AIStudio/Prototypes/Niagara/NS_AIStudio_CharacterAura', component_name='AIStudio_AuraFX', socket_name='spine_03', parameters=None, extra_components=None, native_binding_chunk_size=2, disable_native_graph_binding=False, save=True)

module function · public name · unreal_tools/niagara.py:357

delete_emitter

def delete_emitter(system_path: str, emitter_name: str) -> str

module function · public name · unreal_tools/niagara.py:386

set_emitter_property

def set_emitter_property(system_path: str, emitter_name: str, property_name: str, value) -> str

module function · public name · unreal_tools/niagara.py:392

unreal_tools.pcg

_load_graph

def _load_graph(unreal, graph_path)

module function · internal · unreal_tools/pcg.py:8

_pin_rows

def _pin_rows(node)

module function · internal · unreal_tools/pcg.py:15

_vector_row

def _vector_row(value)

module function · internal · unreal_tools/pcg.py:28

_resolve_settings_class

def _resolve_settings_class(unreal, class_name)

module function · internal · unreal_tools/pcg.py:32

Resolves and validates a PCG settings class. :param unreal: Unreal Python module :param class_name: Unreal Python name or reflected class path :return: reflected PCG settings class

_coerce_editor_value

def _coerce_editor_value(unreal, current, value)

module function · internal · unreal_tools/pcg.py:56

Coerces JSON-compatible values to common Unreal value structs. :param unreal: Unreal Python module :param current: current reflected property value :param value: requested JSON-compatible value :return: value suitable for set_editor_propert

inspect_graph

def inspect_graph(graph_path)

module function · public name · unreal_tools/pcg.py:77

Inspects a PCG graph, including settings, positions, pins, and edges. :param graph_path: Unreal PCG graph content path :return: JSON graph inspection receipt

create_grid_transform_graph

def create_grid_transform_graph(graph_path, grid_extents=(1000.0, 1000.0, 100.0), cell_size=(200.0, 200.0, 200.0), offset=(0.0, 0.0, 100.0), save=True)

module function · public name · unreal_tools/pcg.py:120

Authors a Grid to Transform to Output PCG graph. :param graph_path: Unreal PCG graph content path :param grid_extents: grid half extents :param cell_size: grid cell size :param offset: transform offset :param save: whether to save the graph

apply_graph_spec

def apply_graph_spec(graph_path, nodes, edges, clear_existing=True, save=True)

module function · public name · unreal_tools/pcg.py:176

Applies a typed PCG node and connection specification. :param graph_path: Unreal PCG graph content path :param nodes: node specifications with id, settings_class, position, and properties :param edges: connection specifications with source,

unreal_tools.physics

_result

def _result(**payload)

module function · internal · unreal_tools/physics.py:8

_asset

def _asset(unreal, asset_path)

module function · internal · unreal_tools/physics.py:12

_bridge

def _bridge(unreal)

module function · internal · unreal_tools/physics.py:19

list_bodies

def list_bodies(asset_path)

module function · public name · unreal_tools/physics.py:26

list_constraints

def list_constraints(asset_path)

module function · public name · unreal_tools/physics.py:39

set_body_property

def set_body_property(asset_path, body_name, property_name, value, save=True, value_type='auto')

module function · public name · unreal_tools/physics.py:52

set_constraint_property

def set_constraint_property(asset_path, constraint_name, property_name, value, save=True, value_type='auto')

module function · public name · unreal_tools/physics.py:63

set_profile_property

def set_profile_property(asset_path: str, profile_name: str, property_name: str, value, save: bool=True, value_type: str='auto') -> str

module function · public name · unreal_tools/physics.py:74

list_profiles

def list_profiles(asset_path: str) -> str

module function · public name · unreal_tools/physics.py:92

add_profile

def add_profile(asset_path: str, profile_name: str, profile_type: str='constraint', assign_all: bool=True) -> str

module function · public name · unreal_tools/physics.py:98

remove_profile

def remove_profile(asset_path: str, profile_name: str, profile_type: str='constraint') -> str

module function · public name · unreal_tools/physics.py:114

create_physics_asset

def create_physics_asset(skeletal_mesh_path: str, save_path: str='', assign_to_mesh: bool=True) -> str

module function · public name · unreal_tools/physics.py:124

add_body

def add_body(physics_asset_path: str, bone_name: str, shape_type: str='capsule') -> str

module function · public name · unreal_tools/physics.py:134

add_constraint

def add_constraint(physics_asset_path: str, bone_name_a: str, bone_name_b: str) -> str

module function · public name · unreal_tools/physics.py:140

set_collision_profile

def set_collision_profile(actor_query: str, profile_name: str, component_name: str='') -> str

module function · public name · unreal_tools/physics.py:150

unreal_tools.project

_result

def _result(**payload)

module function · internal · unreal_tools/project.py:8

project_snapshot

def project_snapshot(directory='/Game/', mode='standard', limit=1000)

module function · public name · unreal_tools/project.py:12

project_debug

def project_debug(directory='/Game/', paths=None, compile_blueprints=True, save=False)

module function · public name · unreal_tools/project.py:51

find_references

def find_references(target_name, folder_path='/Game/')

module function · public name · unreal_tools/project.py:105

rename_symbol

def rename_symbol(old_name, new_name, folder_path='')

module function · public name · unreal_tools/project.py:124

unreal_tools.retarget

_result

def _result(**payload)

module function · internal · unreal_tools/retarget.py:8

_load

def _load(unreal, asset_path)

module function · internal · unreal_tools/retarget.py:12

_split_path

def _split_path(asset_path, default_name)

module function · internal · unreal_tools/retarget.py:19

_save

def _save(unreal, asset)

module function · internal · unreal_tools/retarget.py:29

_set_struct_property

def _set_struct_property(value, property_name, property_value)

module function · internal · unreal_tools/retarget.py:33

inspect

def inspect(retargeter_path)

module function · public name · unreal_tools/retarget.py:42

create_ik_rig

def create_ik_rig(skeletal_mesh_path, save_path='')

module function · public name · unreal_tools/retarget.py:56

add_ik_chain

def add_ik_chain(ik_rig_path, chain_name, start_bone, end_bone)

module function · public name · unreal_tools/retarget.py:84

create_ik_retargeter

def create_ik_retargeter(source_ik_rig_path, target_ik_rig_path, save_path='')

module function · public name · unreal_tools/retarget.py:127

set_chain_mapping

def set_chain_mapping(retargeter_path, source_chain, target_chain)

module function · public name · unreal_tools/retarget.py:164

set_root_settings

def set_root_settings(retargeter_path, blend_height=1.0, scale_factor=1.0)

module function · public name · unreal_tools/retarget.py:188

set_profile_property

def set_profile_property(retargeter_path, profile_name, property_name, value)

module function · public name · unreal_tools/retarget.py:225

unreal_tools.retargeting

_load_asset

def _load_asset(unreal, asset_path: str)

module function · internal · unreal_tools/retargeting.py:6

inspect_bone_hierarchy

def inspect_bone_hierarchy(skeletal_mesh_path: str, root_bone: str) -> dict

module function · public name · unreal_tools/retargeting.py:13

Traverse a SkeletalMesh hierarchy from a caller-supplied root bone.

create_ik_rig

def create_ik_rig(skeletal_mesh_path: str, destination_path: str, asset_name: str, retarget_root: str, chains: list[dict], replace_existing: bool=False, save: bool=True) -> dict

module function · public name · unreal_tools/retargeting.py:49

Create an IK Rig from explicit bone-chain data and verify its readback.

inspect_ik_rig

def inspect_ik_rig(asset_path: str) -> dict

module function · public name · unreal_tools/retargeting.py:112

Read back the preview mesh, retarget root, and chain endpoints.

create_ik_retargeter_from_template

def create_ik_retargeter_from_template(template_path: str, destination_path: str, asset_name: str, source_ik_rig_path: str, target_ik_rig_path: str, mapping_mode: str='exact', replace_existing: bool=False, save: bool=True) -> dict

module function · public name · unreal_tools/retargeting.py:142

Duplicate a project retargeter, rebuild UE 5.8 ops, and map named chains.

inspect_ik_retargeter

def inspect_ik_retargeter(asset_path: str) -> dict

module function · public name · unreal_tools/retargeting.py:216

Read back rigs, UE 5.8 operation stack, and effective chain mappings.

discover_matching_ik_retargeters

def discover_matching_ik_retargeters(source_skeletal_mesh_path: str, target_skeletal_mesh_path: str) -> dict

module function · public name · unreal_tools/retargeting.py:262

Find project retargeters whose rig meshes match both requested skeletons.

retarget_animation_with_matching_project_asset

def retarget_animation_with_matching_project_asset(animation_path: str, source_skeletal_mesh_path: str, target_skeletal_mesh_path: str, destination_path: str, destination_suffix: str='_Retargeted', save: bool=True) -> dict

module function · public name · unreal_tools/retargeting.py:340

Bake through a strictly matching project IK Retargeter and verify output.

retarget_animation

def retarget_animation(animation_path: str, source_skeletal_mesh_path: str, target_skeletal_mesh_path: str, retargeter_path: str, destination_path: str, destination_suffix: str='_Retargeted', save: bool=True) -> dict

module function · public name · unreal_tools/retargeting.py:388

Retarget one animation and verify its selected target Skeleton identity.

unreal_tools.reverse_foot

_key

def _key(name, kind='Control')

module function · internal · unreal_tools/reverse_foot.py:10

_Graph.__init__

def _Graph.__init__(self, blueprint, name, start)

class method · internal · unreal_tools/reverse_foot.py:15

_Graph.node

def _Graph.node(self, unit, label, values=None, links=None, execute=False)

class method · internal · unreal_tools/reverse_foot.py:28

_transform

def _transform(position)

module function · internal · unreal_tools/reverse_foot.py:48

_author_module

def _author_module(module, ankle, pivots, foot_chain)

module function · internal · unreal_tools/reverse_foot.py:52

install_reverse_feet

def install_reverse_feet(blueprint, joint_map, pivot_overrides=None)

module function · public name · unreal_tools/reverse_foot.py:200

Install on existing rigs and fresh builds using mapped reference bones. Assets are local to each rig, so different characters cannot overwrite one another's pivot placement. Engine-provided modules are never modified. Optional pivot_overrid

verify_reverse_feet

def verify_reverse_feet(blueprint, joint_map=None)

module function · public name · unreal_tools/reverse_foot.py:270

Exercise fresh transient instances; never change animator control values.

verify_toe_ik

def verify_toe_ik(blueprint, joint_map)

module function · public name · unreal_tools/reverse_foot.py:348

Regression for pelvis lift: SC aims at planted goals without stretching.

unreal_tools.rollback

_journal_path

def _journal_path() -> Path

module function · internal · unreal_tools/rollback.py:11

_utc_timestamp

def _utc_timestamp() -> str

module function · internal · unreal_tools/rollback.py:23

_append

def _append(entry: dict) -> dict

module function · internal · unreal_tools/rollback.py:27

_read_entries

def _read_entries() -> list[dict]

module function · internal · unreal_tools/rollback.py:39

latest

def latest()

module function · public name · unreal_tools/rollback.py:54

record_asset_snapshot

def record_asset_snapshot(asset_path, reason='', operation='', metadata=None)

module function · public name · unreal_tools/rollback.py:71

restore_asset_snapshot

def restore_asset_snapshot(token='')

module function · public name · unreal_tools/rollback.py:109

unreal_tools.runtime

_level_editor

def _level_editor(unreal)

module function · internal · unreal_tools/runtime.py:10

_bridge_library

def _bridge_library(unreal)

module function · internal · unreal_tools/runtime.py:17

_blueprint_class

def _blueprint_class(unreal, asset_path)

module function · internal · unreal_tools/runtime.py:24

_key

def _key(unreal, key_name)

module function · internal · unreal_tools/runtime.py:31

_json_result

def _json_result(value)

module function · internal · unreal_tools/runtime.py:39

_find_pie_actor

def _find_pie_actor(unreal, actor_class)

module function · internal · unreal_tools/runtime.py:46

begin_pie

def begin_pie(simulate=False)

module function · public name · unreal_tools/runtime.py:58

pie_status

def pie_status()

module function · public name · unreal_tools/runtime.py:81

end_pie

def end_pie()

module function · public name · unreal_tools/runtime.py:102

inject_key

def inject_key(key_name, pressed=True)

module function · public name · unreal_tools/runtime.py:120

inspect_character

def inspect_character(character_blueprint_path, expected_anim_class_contains='', property_names=None)

module function · public name · unreal_tools/runtime.py:132

validate_character_montages

def validate_character_montages(character_blueprint_path, montage_paths, expected_anim_class_contains='')

module function · public name · unreal_tools/runtime.py:157

pie_validate

def pie_validate(target_assets=None, expected=None, start_pie=False)

module function · public name · unreal_tools/runtime.py:183

Evaluate structured PIE preconditions without treating compile success as gameplay proof.

multiplayer_pie_validate

def multiplayer_pie_validate(target_assets=None, expected=None, client_count=2, start_pie=True)

module function · public name · unreal_tools/runtime.py:245

Configure a multi-client PIE session and return structured launch/readback proof.

unreal_tools.sequence_func

create_cinematic_sequence_from_json

def create_cinematic_sequence_from_json(anim_dict_path, destination_path='/Game/Cinematics')

module function · public name · unreal_tools/sequence_func.py:7

:param anim_dict_path: path to json with sequence_data :param destination_path: path to where Cinematics are stored in project :return:

unreal_tools.sequence_import_contract

normalize_sequence_manifest

def normalize_sequence_manifest(value: Mapping[str, Any] | None, *, mode: str='gameplay', destination_path: str='/Game/Animations') -> dict[str, Any]

module function · public name · unreal_tools/sequence_import_contract.py:18

Normalize v2 or legacy Sequence JSON into one explicit import manifest.

validate_sequence_manifest

def validate_sequence_manifest(value: Mapping[str, Any]) -> tuple[dict[str, Any], ...]

module function · public name · unreal_tools/sequence_import_contract.py:95

new_import_result

def new_import_result(manifest: Mapping[str, Any]) -> dict[str, Any]

module function · public name · unreal_tools/sequence_import_contract.py:119

finish_import_result

def finish_import_result(result: Mapping[str, Any]) -> dict[str, Any]

module function · public name · unreal_tools/sequence_import_contract.py:138

cinematic_payload_from_manifest

def cinematic_payload_from_manifest(value: Mapping[str, Any]) -> dict[str, list[dict[str, Any]]]

module function · public name · unreal_tools/sequence_import_contract.py:153

Convert the v2 contract to the established Sequencer assembly payload.

_normalize_entry

def _normalize_entry(value: Mapping[str, Any], index: int, *, default_destination: str='/Game/Animations') -> dict[str, Any]

module function · internal · unreal_tools/sequence_import_contract.py:179

_mode

def _mode(value: Any) -> str

module function · internal · unreal_tools/sequence_import_contract.py:215

_package_folder

def _package_folder(value: Any) -> str

module function · internal · unreal_tools/sequence_import_contract.py:222

_issue

def _issue(severity: str, code: str, message: str, path: str) -> dict[str, Any]

module function · internal · unreal_tools/sequence_import_contract.py:229

_now

def _now() -> str

module function · internal · unreal_tools/sequence_import_contract.py:233

unreal_tools.sequence_importer

add_actor_to_level_sequence

def add_actor_to_level_sequence(sequence_path, asset_path, actor=None, possessable=None, namespace=None)

module function · public name · unreal_tools/sequence_importer.py:16

Adds a blueprint actor and its components to a level sequence, creating and binding the actor and components. :param sequence_path: The level sequence path to which the actor and components will be added. :param asset_path: The path to the

add_skeletal_mesh_components_to_level_sequence

def add_skeletal_mesh_components_to_level_sequence(actor, possessable)

module function · public name · unreal_tools/sequence_importer.py:94

Adds skeletal mesh components to the level sequence. :param actor: The actor containing the skeletal mesh components. :param possessable: The possessable associated with the actor. :return: A list of components added to the sequence.

add_camera_actor_to_level_sequence

def add_camera_actor_to_level_sequence(sequence, camera_actor=None, camera_name=None)

module function · public name · unreal_tools/sequence_importer.py:125

Adds a CineCameraActor to the level sequence. :param sequence: The LevelSequence asset where the camera should be added. :param camera_actor: (Optional) The CineCameraActor to add. If None, a new one will be created. :param camera_name: (Op

add_shot_track_to_master_sequence

def add_shot_track_to_master_sequence(master_sequence)

module function · public name · unreal_tools/sequence_importer.py:158

Adds shot track if it doesnt exist to master sequence :param master_sequence: Master sequence asset :return:

add_shot_sequence_section_to_shot_track

def add_shot_sequence_section_to_shot_track(shot_track, shot_sequence, start_frame, end_frame)

module function · public name · unreal_tools/sequence_importer.py:176

Adds section for shot sequence to shot track if it doesn't exist :param shot_track: :param shot_sequence: :param start_frame: :param end_frame: :return:

add_anim_to_level_sequence

def add_anim_to_level_sequence(animation_path, anim_track, anim_section=None, start_frame=0, root_motion=None)

module function · public name · unreal_tools/sequence_importer.py:201

Adds an animation to a track in the level sequence without shifting animation keyframe timing. Places the animation so its first keyframe starts exactly at start_frame. :param animation_path: Path to the animation asset. :param anim_track:

add_anim_track_to_possessable

def add_anim_track_to_possessable(possessable, animation_asset_path=None, root_motion=None)

module function · public name · unreal_tools/sequence_importer.py:231

Adds an animation track and section to the possessable, ensuring no duplicates. :param possessable: The possessable to which the animation track will be added. :param animation_asset_path: The path to the animation asset (e.g. FBX). :return

add_blueprint_mesh_components_to_level_sequence

def add_blueprint_mesh_components_to_level_sequence(blueprint_path, sequence_path, actor, control_rig=True)

module function · public name · unreal_tools/sequence_importer.py:262

Adds specific mesh components from a blueprint actor to a level sequence. Adds 'Mesh' (typically CharacterMesh0), 'Body', and 'Face' components if they exist. :param blueprint_path: The blueprint asset path bound in the Level Sequence. :par

add_camera_anim_to_level_sequence

def add_camera_anim_to_level_sequence(shot_sequence, camera_actor, world, export_path, anim_range)

module function · public name · unreal_tools/sequence_importer.py:381

Imports and applies a camera animation to a CineCameraActor inside a Level Sequence, and offsets the animation so that the first keyframe is at frame 0 of the sequence. Also adds a Camera Cut Track to switch the camera at frame 0. :param sh

get_control_rig_class

def get_control_rig_class(control_rig_path='Face_ControlBoard_CtrlRig')

module function · public name · unreal_tools/sequence_importer.py:463

:param control_rig_path: :return:

offset_key_times_in_section

def offset_key_times_in_section(section, offset_frames)

module function · public name · unreal_tools/sequence_importer.py:477

:param section: section to offset :param offset_frames: frame value to offset :return:

offset_float_track_keys

def offset_float_track_keys(track, offset_frames)

module function · public name · unreal_tools/sequence_importer.py:501

Offsets all float keys in a MovieSceneFloatTrack by a given number of frames. :param track: The MovieSceneFloatTrack to modify. :param offset_frames: The number of frames to offset the keys by.

offset_transform_track_keys

def offset_transform_track_keys(track, offset_frames)

module function · public name · unreal_tools/sequence_importer.py:512

:param track: Should be a MovieScene3DTransformTrack :param offset_frames: The number of frames to offset the keys by. :return:

list_all_tracks_in_sequence

def list_all_tracks_in_sequence(sequence)

module function · public name · unreal_tools/sequence_importer.py:524

:param sequence: The Sequence asset to parse :return:

get_skeleton_from_skeletal_mesh_using_metadata

def get_skeleton_from_skeletal_mesh_using_metadata(skeletal_mesh_path)

module function · public name · unreal_tools/sequence_importer.py:535

Get the skeleton from a given skeletal mesh by retrieving metadata tags. :param skeletal_mesh_path: The asset path of the skeletal mesh (e.g., "/Game/Characters/Hero/Hero_SkeletalMesh") :return: The skeleton associated with the given skelet

find_skeletal_meshes_using_skeleton

def find_skeletal_meshes_using_skeleton(skeleton_asset_path)

module function · public name · unreal_tools/sequence_importer.py:549

Finds all Skeletal Mesh assets that use the given Skeleton asset. :param skeleton_asset_path: The full asset path to the Skeleton (e.g. "/Game/Characters/Hero/Hero_Skeleton") :return: A list of SkeletalMesh asset objects that use the given

get_blueprints_using_skeleton_cmd

def get_blueprints_using_skeleton_cmd(skeleton_path, asset_registry=None)

module function · public name · unreal_tools/sequence_importer.py:591

Finds all Blueprints using a given skeleton, prioritizing CinematicCharacter Blueprints, and only checks for CinematicCharacter, Actor, and Character Blueprints. :param skeleton_path: The asset path of the skeleton (e.g., "/Game/Characters/

get_possessables_for_sequence

def get_possessables_for_sequence(level_sequence)

module function · public name · unreal_tools/sequence_importer.py:659

Retrieves all possessables (actors) bound to the given level sequence. :param level_sequence: The Level Sequence asset to get the possessables from. :return: A list of possessable objects (MovieSceneBindingProxy).

get_blueprints_using_skeleton

def get_blueprints_using_skeleton(skeleton_path, asset_registry=None, mesh_string=None)

module function · public name · unreal_tools/sequence_importer.py:671

Finds all Blueprints using a given skeleton, prioritizing CinematicCharacter Blueprints, and only checks for CinematicCharacter, Actor, and Character Blueprints. :param skeleton_path: The asset path of the skeleton (e.g., "/Game/Characters/

get_blueprint_binding_in_sequence

def get_blueprint_binding_in_sequence(blueprint_path, sequence_path)

module function · public name · unreal_tools/sequence_importer.py:734

Returns the binding for a Blueprint actor in the Level Sequence, if it exists. Compares the binding name to the actor name. :param blueprint_path: Path to the Blueprint asset (e.g., "/Game/Blueprints/MyActorBP") :param sequence_path: Path t

get_top_level_mesh_component

def get_top_level_mesh_component(actor)

module function · public name · unreal_tools/sequence_importer.py:764

resolve_skeleton_path

def resolve_skeleton_path(skeleton_identifier)

module function · public name · unreal_tools/sequence_importer.py:778

Resolve an unambiguous Skeleton package path or raise an actionable error.

_is_skeleton_asset

def _is_skeleton_asset(asset)

module function · internal · unreal_tools/sequence_importer.py:811

get_skeleton_path_by_name

def get_skeleton_path_by_name(skeleton_name)

module function · public name · unreal_tools/sequence_importer.py:821

Retrieves the asset path of a skeleton based on its name using Unreal's Asset Registry. :param skeleton_name: Name of the skeleton asset (e.g., "SK_Mannequin"). :return: The asset path of the skeleton (e.g., "/Game/Characters/Hero/Hero_Skel

extract_shot_number_from_path

def extract_shot_number_from_path(export_path)

module function · public name · unreal_tools/sequence_importer.py:835

Extracts the shot number from the export path, which contains 'shot' as part of its name. :param export_path: The export path containing the shot number (e.g., "MyAnimation_Shot1_Anim.fbx"). :return: The shot number as an integer (e.g., 1 f

import_gameplay_animations_from_json

def import_gameplay_animations_from_json(anim_dict_path)

module function · public name · unreal_tools/sequence_importer.py:852

Import gameplay animations, replaces Art Source Dir with Content Dir :param anim_dict_path: Exported Dict with the data to import :return:

preflight_sequence_import_from_json

def preflight_sequence_import_from_json(anim_dict_path, mode='gameplay', destination_path='/Game/Animations')

module function · public name · unreal_tools/sequence_importer.py:929

Resolve an import job without creating or modifying Unreal assets.

_asset_metadata

def _asset_metadata(asset_path, key)

module function · internal · unreal_tools/sequence_importer.py:1015

_write_import_provenance

def _write_import_provenance(asset_path, entry, manifest)

module function · internal · unreal_tools/sequence_importer.py:1026

_source_control_status

def _source_control_status(policy)

module function · internal · unreal_tools/sequence_importer.py:1044

_prepare_source_control_write

def _prepare_source_control_write(asset_path, *, exists, policy)

module function · internal · unreal_tools/sequence_importer.py:1066

_mark_source_control_add

def _mark_source_control_add(asset_path, *, policy)

module function · internal · unreal_tools/sequence_importer.py:1079

_mark_new_asset_or_rollback

def _mark_new_asset_or_rollback(asset_path, *, policy)

module function · internal · unreal_tools/sequence_importer.py:1092

_revert_unchanged_source_control

def _revert_unchanged_source_control(*, checkout_path)

module function · internal · unreal_tools/sequence_importer.py:1100

import_animation

def import_animation(anim_path, skeleton_path, destination_path, destination_name, replace_existing=True)

module function · public name · unreal_tools/sequence_importer.py:1110

Imports an animation asset into Unreal Engine, optionally reimporting if it already exists. :param anim_path: Path to the animation FBX file. :param skeleton_path: Path to the skeleton asset for the animation. :param destination_path: Desti

_next_versioned_name

def _next_versioned_name(destination_path, destination_name)

module function · internal · unreal_tools/sequence_importer.py:1131

build_import_options

def build_import_options(skeleton_path)

module function · public name · unreal_tools/sequence_importer.py:1140

Creates the import options for importing an animation in Unreal Engine. :param skeleton_path: Path to the skeleton asset for the animation. :return: Unreal FBX import UI object with specified settings.

load_level_sequence

def load_level_sequence(sequence_path='/Game/Cinematics/Test_Anim/Test_Anim_shot1/Test_Anim_shot1')

module function · public name · unreal_tools/sequence_importer.py:1166

:param sequence_path: full path to sequence to load, checks current sequence for match first :return:

get_level_sequence_actor

def get_level_sequence_actor(level_sequence_asset)

module function · public name · unreal_tools/sequence_importer.py:1187

Returns the Level Sequence Actor that references the given LevelSequence asset in the level. :param level_sequence_asset: The LevelSequence asset to search for in the level. :return: The Level Sequence Actor if found, else None.

get_full_range

def get_full_range(level_sequence)

module function · public name · unreal_tools/sequence_importer.py:1205

gets range for use in get_bound_objects :param level_sequence: level sequence asset :return:

get_actor_from_possessable

def get_actor_from_possessable(sequence_path, actor_binding)

module function · public name · unreal_tools/sequence_importer.py:1219

Retrieves the actor bound to the given possessable within a Level Sequence. :param actor_binding: The possessable (actor binding) in the sequence. :param sequence_path: The level sequence to search within. :return: The actor bound to the po

get_actor_from_binding

def get_actor_from_binding(sequence_path, blueprint_binding)

module function · public name · unreal_tools/sequence_importer.py:1240

Retrieve the actor bound to a sequence via the blueprint binding. :param sequence_path: Path to the Level Sequence. :param blueprint_binding: The binding that we are checking. :return: Actor or None if not found.

get_blueprint_class_from_binding

def get_blueprint_class_from_binding(blueprint_binding)

module function · public name · unreal_tools/sequence_importer.py:1271

Retrieves the Blueprint class from the binding. :param blueprint_binding: The MovieSceneBindingProxy for the blueprint. :return: The BlueprintGeneratedClass for the actor in the binding.

get_existing_blueprint_mesh_components_in_level_sequence

def get_existing_blueprint_mesh_components_in_level_sequence(blueprint, sequence_path, actor=None)

module function · public name · unreal_tools/sequence_importer.py:1295

Detects existing mesh components (such as 'Mesh', 'Body', and 'Face') that have already been added to the Level Sequence from the given blueprint. :param blueprint: The Blueprint path to check for mesh components. :param sequence_path: The

render_level_sequence

def render_level_sequence(level_sequence_path, output_directory, resolution=(1920, 1080))

module function · public name · unreal_tools/sequence_importer.py:1339

Renders a level sequence to the specified directory. :param level_sequence_path: Path to the level sequence to render. :param output_directory: Directory where the rendered output will be saved. :param resolution: Resolution of the render.

write_dict_to_file

def write_dict_to_file(anim_dict, file_path)

module function · public name · unreal_tools/sequence_importer.py:1363

Writes a dictionary to a JSON file. :param anim_dict: The dictionary to write to a file. :param file_path: Path where the file will be saved. :return: Path to the saved file.

read_dict_from_file

def read_dict_from_file(file_path)

module function · public name · unreal_tools/sequence_importer.py:1380

Reads a dictionary from a JSON file. :param file_path: Path to the JSON file. :return: The dictionary read from the file.

list_all_maps

def list_all_maps()

module function · public name · unreal_tools/sequence_importer.py:1400

find_uasset_path

def find_uasset_path(file_name)

module function · public name · unreal_tools/sequence_importer.py:1407

Finds the path of a .uasset file by name. :param file_name: The name of the asset to find. :return: Path to the asset if found, None otherwise.

find_actor_by_blueprint_or_skeletal_mesh

def find_actor_by_blueprint_or_skeletal_mesh(blueprint_path=None, skeletal_mesh_path=None, shot_sequence=None, namespace=None)

module function · public name · unreal_tools/sequence_importer.py:1429

Helper function to find an actor in the current level by its blueprint or directly by SkeletalMeshActor. It also returns the possessable for the found actor and the actor's components. :param blueprint_path: (Optional) The path to the bluep

find_possessable_for_actor

def find_possessable_for_actor(actor, shot_sequence)

module function · public name · unreal_tools/sequence_importer.py:1481

Find the possessable for the given actor in the provided shot sequence. :param actor: The actor to search for. :param shot_sequence: The LevelSequence to search within. :return: The possessable object if found, otherwise None.

find_binding_for_component

def find_binding_for_component(sequence_path, component_name)

module function · public name · unreal_tools/sequence_importer.py:1496

Finds the MovieSceneBinding in the Level Sequence located at the given path that corresponds to the specified component in the current level. :param sequence_path: The path to the Level Sequence asset in the content browser. :param componen

find_camera_component_in_scene

def find_camera_component_in_scene()

module function · public name · unreal_tools/sequence_importer.py:1518

Finds the CineCameraActor in the scene that should be used for the camera animation. :return: The CineCameraActor component if found, else None.

set_section_range

def set_section_range(section, start_frame, end_frame)

module function · public name · unreal_tools/sequence_importer.py:1536

Sets the start and end time for the given section directly. :param section: actual section object in sequencer :param start_frame: start frame to set the section to :param end_frame: end frame to set the section to :return:

get_section_range

def get_section_range(section)

module function · public name · unreal_tools/sequence_importer.py:1548

Gets the range for the defined section :param section: actual section object in sequencer :return: list of the start and end frames

set_sequence_range

def set_sequence_range(sequence, start_frame, end_frame)

module function · public name · unreal_tools/sequence_importer.py:1560

Sets the start and end time for the given Level Sequence directly. :param sequence: The LevelSequence asset to modify. :param start_frame: The start time (in frames). :param end_frame: The end time (in frames).

update_asset_registry_and_save

def update_asset_registry_and_save(asset_directory, asset_path)

module function · public name · unreal_tools/sequence_importer.py:1573

Saves the asset after refreshing, seems necessary from cmd.exe :param asset_directory: directory to refresh assets for :param asset_path: asset path to save :return:

set_frame_rate

def set_frame_rate(sequence, fps, numerator=None, denominator=None)

module function · public name · unreal_tools/sequence_importer.py:1585

Sets the start and end time for the given Level Sequence directly. :param sequence: The LevelSequence asset to modify. :param fps: Frame Rate from Export data

create_level_sequence

def create_level_sequence(sequence_name, destination_path='/Game/Cinematics/')

module function · public name · unreal_tools/sequence_importer.py:1601

Creates a new Level Sequence asset in the specified path. :param sequence_name: Name for the new Level Sequence. :param destination_path: Path where the Level Sequence will be created. :return: List containing the created Level Sequence ass

create_cinematic_sequence_from_json

def create_cinematic_sequence_from_json(anim_dict_path, destination_path='/Game/Cinematics/', from_cmd=True)

module function · public name · unreal_tools/sequence_importer.py:1627

Creates a cinematic sequence in Unreal Engine from a JSON file. :param anim_dict_path: Path to the JSON file containing animation data, generated from maya export :param destination_path: Path to the directory where the cinematic sequence w

CinematicEntryImportError.__init__

def CinematicEntryImportError.__init__(self, entry_id, entry_name, original_error, completed_entry_ids=())

class method · internal · unreal_tools/sequence_importer.py:1686

retry_failed_cinematic_sequence_from_json

def retry_failed_cinematic_sequence_from_json(anim_dict_path, previous_result, destination_path='/Game/Cinematics/', from_cmd=False)

module function · public name · unreal_tools/sequence_importer.py:1694

Retry only cinematic entries explicitly reported as failed.

create_cinematic_sequence

def create_cinematic_sequence(anim_dict, sequence_name, destination_path='/Game/Cinematics', source_control_policy='auto')

module function · public name · unreal_tools/sequence_importer.py:1731

Creates a master cinematic sequence and sub-sequences for each shot. Imports animations and adds actors accordingly. :param anim_dict: anim dictionary containing animation data, generated from maya export :param sequence_name: name of maste

unreal_tools.sequence_preflight_func

main

def main()

module function · public name · unreal_tools/sequence_preflight_func.py:10

unreal_tools.sequence_publish_adapter

manifest_from_workspace

def manifest_from_workspace(document: Mapping[str, Any], *, mode: str='gameplay', destination_path: str='/Game/Animations', conflict_policy: str='update', source_control_policy: str='auto') -> dict[str, Any]

module function · public name · unreal_tools/sequence_publish_adapter.py:15

_file_sha256

def _file_sha256(path: str) -> str

module function · internal · unreal_tools/sequence_publish_adapter.py:56

publish_sequence_workspace

def publish_sequence_workspace(document: Mapping[str, Any], *, mode: str='gameplay', destination_path: str='/Game/Animations', conflict_policy: str='update', source_control_policy: str='auto', unreal_project_path: str='', unreal_command_path: str='', log_file_path: str='') -> dict[str, Any]

module function · public name · unreal_tools/sequence_publish_adapter.py:66

Submit one workspace through the live bridge, with command fallback when configured.

preflight_sequence_workspace

def preflight_sequence_workspace(document: Mapping[str, Any], *, mode: str='gameplay', destination_path: str='/Game/Animations', conflict_policy: str='update', source_control_policy: str='auto', unreal_project_path: str='', unreal_command_path: str='', log_file_path: str='') -> dict[str, Any]

module function · public name · unreal_tools/sequence_publish_adapter.py:142

Resolve sources, skeletons, conflicts, and actions without importing.

unreal_tools.sequencer

_result

def _result(**payload)

module function · internal · unreal_tools/sequencer.py:8

_load_sequence

def _load_sequence(unreal, sequence_path)

module function · internal · unreal_tools/sequencer.py:12

get_tracks

def get_tracks(sequence_path)

module function · public name · unreal_tools/sequencer.py:19

delete_track

def delete_track(sequence_path, track_name, save=True)

module function · public name · unreal_tools/sequencer.py:39

validate_playback

def validate_playback(sequence_path='', expected_assets=None, open_sequence=False)

module function · public name · unreal_tools/sequencer.py:57

Read back a Level Sequence enough to prove it can be validated.

create_float_track

def create_float_track(sequence_path, track_name, keys, display_rate=30, replace_existing=True, save=True)

module function · public name · unreal_tools/sequencer.py:91

Creates a keyed master float track in a Level Sequence. :param sequence_path: Unreal Level Sequence content path :param track_name: display name for the float track :param keys: frame/value pairs :param display_rate: display frames per seco

_camera_key_rows

def _camera_key_rows(camera_spec)

module function · internal · unreal_tools/sequencer.py:192

Normalizes one camera's transform keys. :param camera_spec: camera specification containing transform keys :return: sorted camera transform key rows

author_camera_cuts

def author_camera_cuts(sequence_path, cameras, display_rate=30, replace_existing=False, save=True)

module function · public name · unreal_tools/sequencer.py:224

Authors spawnable cinematic cameras, transform keys, and camera cuts. :param sequence_path: Unreal Level Sequence content path :param cameras: ordered camera specifications with names, ranges, and transform keys :param display_rate: display

unreal_tools.skeletal

_load_mesh

def _load_mesh(unreal, skeletal_mesh_path)

module function · internal · unreal_tools/skeletal.py:8

inspect_bones

def inspect_bones(skeletal_mesh_path, include_hierarchy=True)

module function · public name · unreal_tools/skeletal.py:19

Return bone names and parent/child readback for a SkeletalMesh.

inspect_sockets

def inspect_sockets(skeletal_mesh_path)

module function · public name · unreal_tools/skeletal.py:66

Return indexed socket names, parent bones, and local transforms.

unreal_tools.skeletal_mesh_import

character_asset_folder

def character_asset_folder(parent_path: str, rig_name: str) -> str

module function · public name · unreal_tools/skeletal_mesh_import.py:10

Return the per-character Unreal folder below *parent_path*.

_asset_path

def _asset_path(asset: Any) -> str

module function · internal · unreal_tools/skeletal_mesh_import.py:19

list_skeletal_import_targets

def list_skeletal_import_targets(directory: str='/Game') -> dict[str, Any]

module function · public name · unreal_tools/skeletal_mesh_import.py:25

_rename_asset

def _rename_asset(unreal: Any, source: str, destination: str) -> str

module function · internal · unreal_tools/skeletal_mesh_import.py:53

import_skeletal_mesh_fbx

def import_skeletal_mesh_fbx(source_file: str, rig_name: str, destination_path: str='/Game/Characters', *, existing_skeletal_mesh_path: str='', skeleton_mode: str='create_new', existing_skeleton_path: str='', create_physics_asset: bool=True) -> dict[str, Any]

module function · public name · unreal_tools/skeletal_mesh_import.py:64

Import or update one Skeletal Mesh with an explicit skeleton policy.

unreal_tools.sound_cue

_asset_parts

def _asset_parts(asset_path)

module function · internal · unreal_tools/sound_cue.py:8

Gets the package path and asset name. :param asset_path: Unreal content path :return: package path and asset name

inspect_sound_cue

def inspect_sound_cue(asset_path)

module function · public name · unreal_tools/sound_cue.py:24

Inspects a Sound Cue's playable root and referenced Sound Wave. :param asset_path: Unreal Sound Cue content path :return: JSON Sound Cue structural readback receipt

create_from_wave

def create_from_wave(asset_path, sound_wave_path, looping=False, volume_multiplier=1.0, pitch_multiplier=1.0, overwrite=False, dry_run=False, cleanup_on_failure=True)

module function · public name · unreal_tools/sound_cue.py:104

Creates a playable Sound Cue from a Sound Wave and verifies its root node. :param asset_path: destination Unreal Sound Cue content path :param sound_wave_path: source Unreal Sound Wave content path :param looping: whether the generated Wave

unreal_tools.unreal_project_data

get_engine_association

def get_engine_association(uproject_path)

module function · public name · unreal_tools/unreal_project_data.py:15

Returns the Engine Version for the uproject :param uproject_path: actual uproject path :return: If found, returns the Engine Version for the unreal version

get_unreal_cmd_exe

def get_unreal_cmd_exe(uproject_path)

module function · public name · unreal_tools/unreal_project_data.py:26

Returns the Engine cmd exe location for the uproject :param uproject_path: actual uproject path :return: If found, returns the cmd.exe for the unreal version

get_unreal_install_path

def get_unreal_install_path(engine_version)

module function · public name · unreal_tools/unreal_project_data.py:56

Check the Windows Registry for Unreal Engine install locations. :param engine_version: after finding engine version, it fills in the rest :return:

get_latest_unreal_log

def get_latest_unreal_log(uproject_path)

module function · public name · unreal_tools/unreal_project_data.py:95

Finds the latest modified Unreal Engine log file for a given .uproject. :param uproject_path: actual uproject path :return:

ensure_unreal_python_plugin_enabled

def ensure_unreal_python_plugin_enabled(uproject_path)

module function · public name · unreal_tools/unreal_project_data.py:121

Enables PythonScriptPlugin in the .uproject if the project does not already declare it. Unreal needs this plugin for startup Python scripts.

_tree_digest

def _tree_digest(root)

module function · internal · unreal_tools/unreal_project_data.py:154

_set_uproject_plugin_enabled

def _set_uproject_plugin_enabled(uproject_path, plugin_name, enabled=True)

module function · internal · unreal_tools/unreal_project_data.py:168

_compiled_plugin_status

def _compiled_plugin_status(plugin_root)

module function · internal · unreal_tools/unreal_project_data.py:196

install_ai_studio_bridge_plugin

def install_ai_studio_bridge_plugin(uproject_path, source_plugin_root=None)

module function · public name · unreal_tools/unreal_project_data.py:227

Install source and enable the plugin only when its editor binary is current.

build_ai_studio_bridge_plugin

def build_ai_studio_bridge_plugin(uproject_path, source_plugin_root=None, progress_callback=None)

module function · public name · unreal_tools/unreal_project_data.py:333

Build, install, and enable AIStudioBridge while streaming progress.

add_unreal_startup_script

def add_unreal_startup_script(uproject_path, script_path)

module function · public name · unreal_tools/unreal_project_data.py:462

Adds a startup script to DefaultEngine.ini for a given Unreal project. Appends to StartupScripts[N]=... under [PythonScriptPlugin.PythonScriptPluginSettings]. :param uproject_path: actual uproject path :param script_path: Full path to the P

unreal_tools.unreal_subprocess

_post_unreal

def _post_unreal(payload)

module function · internal · unreal_tools/unreal_subprocess.py:9

_run_sequence_command

def _run_sequence_command(script_name, payload, unreal_project_path, unreal_command_path, timeout=900)

module function · internal · unreal_tools/unreal_subprocess.py:27

Run one isolated Unreal command job and read its structured result file.

_validate_asset_result

def _validate_asset_result(data, asset_type)

module function · internal · unreal_tools/unreal_subprocess.py:67

run_list_skeletal_import_targets

def run_list_skeletal_import_targets(directory='/Game')

module function · public name · unreal_tools/unreal_subprocess.py:77

List Skeletal Mesh, Skeleton, and PhysicsAsset choices in the live Unreal Editor.

run_import_skeletal_mesh_fbx

def run_import_skeletal_mesh_fbx(source_file, rig_name, destination_path='/Game/Characters', existing_skeletal_mesh_path='', skeleton_mode='create_new', existing_skeleton_path='', create_physics_asset=True)

module function · public name · unreal_tools/unreal_subprocess.py:85

Import/update a skeletal FBX through the authenticated live Unreal bridge.

run_get_skeletons

def run_get_skeletons(unreal_project_path, log_file_path, unreal_command_path='C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe', asset_type='Skeleton')

module function · public name · unreal_tools/unreal_subprocess.py:107

:param asset_type: type of asset to search for :param unreal_project_path: path to the unreal project :param log_file_path: log file path for returning output (function exists to find this in unreal_project_data.py) :param unreal_command_pa

run_create_cinematic_sequence

def run_create_cinematic_sequence(anim_dict_path, destination_path, unreal_project_path, log_file_path, unreal_command_path='C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe')

module function · public name · unreal_tools/unreal_subprocess.py:149

:param anim_dict_path: Path of Json data :param destination_path: Path to save Cinematic :param unreal_project_path: path to the unreal project :param log_file_path: log file path for returning output (function exists to find this in unreal

run_retry_failed_cinematic_sequence

def run_retry_failed_cinematic_sequence(anim_dict_path, previous_result, destination_path, unreal_project_path, log_file_path, unreal_command_path='C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe')

module function · public name · unreal_tools/unreal_subprocess.py:178

Retry only entry IDs identified as failed by a previous cinematic job.

run_import_gameplay_animations

def run_import_gameplay_animations(anim_dict_path, unreal_project_path, log_file_path, unreal_command_path='C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe')

module function · public name · unreal_tools/unreal_subprocess.py:201

:param anim_dict_path: Path of Json data :param unreal_project_path: path to the unreal project :param log_file_path: log file path for returning output (function exists to find this in unreal_project_data.py) :param unreal_command_path: un

run_preflight_sequence_import

def run_preflight_sequence_import(anim_dict_path, unreal_project_path='', log_file_path='', unreal_command_path='C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe', mode='gameplay', destination_path='/Game/Animations')

module function · public name · unreal_tools/unreal_subprocess.py:225

Run the same Unreal resolution checks as import without modifying assets.

run_create_modular_control_rig

def run_create_modular_control_rig(skeletal_mesh_name, rig_name, joint_map, unreal_project_path, log_file_path, unreal_command_path='C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe')

module function · public name · unreal_tools/unreal_subprocess.py:249

:param joint_map: Joint Map from HumanIK UI, for clear mapping for biped body parts :param rig_name: control rig asset name (saved to same folder as skeletal mesh) :param skeletal_mesh_name: skeletal mesh to assign to rig :param unreal_proj

unreal_tools.validate

_asset_exists

def _asset_exists(unreal, path: str) -> bool

module function · internal · unreal_tools/validate.py:8

references

def references(paths=None, compile_blueprints=True, save=False)

module function · public name · unreal_tools/validate.py:15

Validate paths and optionally compile Blueprints without saving by default.

unreal_tools.widget

author_canvas_text

def author_canvas_text(widget_blueprint_path, root_name='RootCanvas', text_name='TitleText', text='Tech Connector', save=True)

module function · public name · unreal_tools/widget.py:8

Authors a CanvasPanel and TextBlock in a Widget Blueprint. :param widget_blueprint_path: Unreal Widget Blueprint content path :param root_name: root CanvasPanel name :param text_name: child TextBlock name :param text: text content :param sa

author_from_spec

def author_from_spec(widget_blueprint_path, widgets, save=True)

module function · public name · unreal_tools/widget.py:43

Authors a validated Widget Blueprint hierarchy from a specification. :param widget_blueprint_path: Unreal Widget Blueprint content path :param widgets: widget hierarchy specification or widget list :param save: whether to save the Widget Bl