When a node has a variable assigned to one of its pins. You will get a crash every time you add a pin. I am sure this goes for all nodes with with the "add pin" functionality
[Link Removed]
Steps to Reproduce
Run the following script to create the control rig. Add a pin to the Concat node. You will get an immediate crash.
import unreal unreal.load_module('ControlRigDeveloper') factory = unreal.ControlRigBlueprintFactory blueprint = factory.create_new_control_rig_asset(desired_package_path = '/Game/Concat') hierarchy = blueprint.hierarchy hierarchy_controller = hierarchy.get_controller() blueprint.set_preview_mesh(unreal.load_object(name='None', outer=None)) import unreal def create_asset(): library = blueprint.get_local_function_library() library_controller = blueprint.get_controller(library) blueprint.set_auto_vm_recompile(False) function_new_function = library_controller.add_function_to_library('New Function', mutable=False) graph = function_new_function.get_contained_graph() library_controller.set_node_category_by_name('New Function', '') library_controller.set_node_keywords_by_name('New Function', '') library_controller.set_node_description_by_name('New Function', '') library_controller.set_node_color_by_name('New Function', unreal.LinearColor(1.000000, 1.000000, 1.000000, 1.000000)) blueprint.get_controller_by_name('New Function').set_node_position_by_name('Entry', unreal.Vector2D(-250.000000, 0.000000)) blueprint.get_controller_by_name('New Function').set_node_position_by_name('Return', unreal.Vector2D(300.000000, -0.000000)) blueprint.get_controller_by_name('New Function').add_exposed_pin('A', unreal.RigVMPinDirection.INPUT, 'FName', '', '') blueprint.get_controller_by_name('New Function').add_exposed_pin('A_1', unreal.RigVMPinDirection.INPUT, 'double', '', '0.000000') blueprint.get_controller_by_name('New Function').add_template_node('Concat::Execute(in A,in B,out Result)', unreal.Vector2D(0.000000, 0.000000), 'Concat') blueprint.get_controller_by_name('New Function').resolve_wild_card_pin('Concat.A', 'FName', 'None') blueprint.get_controller_by_name('New Function').bind_pin_to_variable('Concat.A', 'A') blueprint.get_controller_by_name('New Function').add_template_node('Add::Execute(in A,in B,out Result)', unreal.Vector2D(52.626038, 248.894745), 'Add') blueprint.get_controller_by_name('New Function').resolve_wild_card_pin('Add.A', 'double', 'None') blueprint.get_controller_by_name('New Function').set_pin_default_value('Add.A', '0.000000') blueprint.get_controller_by_name('New Function').bind_pin_to_variable('Add.A', 'A_1') blueprint.get_controller_by_name('New Function').set_pin_default_value('Add.B', '0.000000') blueprint.get_controller_by_name('RigVMModel').add_unit_node_from_struct_path('/Script/ControlRig.RigUnit_BeginExecution', 'Execute', unreal.Vector2D(0.000000, 0.000000), 'RigUnit_BeginExecution') blueprint.get_controller_by_name('RigVMModel').add_function_reference_node(function_new_function, unreal.Vector2D(360.000000, 53.000000), 'New Function') blueprint.get_controller_by_name('RigVMModel').set_pin_default_value('New Function.A_1', '0.000000') blueprint.set_auto_vm_recompile(True) create_asset()
Manual Repro:
[Inlined] UE::CoreUObject::Private::ResolveObjectHandleNoRead(UE::CoreUObject::Private::FObjectHandlePrivate &) ObjectHandle.h:435
[Inlined] ObjectPtr_Private::Friend::NoAccessTrackingGet(const TObjectPtr<…> &) ObjectPtr.h:858
[Inlined] ObjectPtr_Private::TNonAccessTrackedObjectPtr::Get() ObjectPtr.h:892
[Inlined] ObjectPtr_Private::TNonAccessTrackedObjectPtr::operator class UObject *() ObjectPtr.h:917
[Inlined] UObjectBase::GetOuter() UObjectBase.h:201
URigVMPin::GetParentPin() RigVMPin.cpp:1938
URigVMPin::GetNode() RigVMPin.cpp:2205
URigVMController::GetLinkedPaths(const TArray<…> &, bool) RigVMController.cpp:22424
URigVMController::GetLinkedPaths(URigVMNode *, bool) RigVMController.cpp:22411
URigVMController::RenameNode(URigVMNode *, const FName &, bool, bool) RigVMController.cpp:7434
URigVMController::CollapseNodes(const TArray<…> &, const FString &, bool, bool) RigVMController.cpp:5841
URigVMController::AddAggregatePin(URigVMNode *, const FString &, const FString &, bool, bool) RigVMController.cpp:11319
URigVMController::AddAggregatePin(const FString &, const FString &, const FString &, bool, bool) RigVMController.cpp:11198
URigVMEdGraphNode::HandleAddAggregateElement(const FString &) RigVMEdGraphNode.cpp:2030
SRigVMGraphNode::OnAddPin() SRigVMGraphNode.cpp:657
[Inlined] Invoke(FReply (SGraphNode::*)(), SGraphNode *&) Invoke.h:65
[Inlined] UE::Core::Private::Tuple::TTupleBase::ApplyAfter(FReply (SGraphNode::*&)(), SGraphNode *&) Tuple.h:299
TBaseSPMethodDelegateInstance::Execute() DelegateInstancesImpl.h:291
[Inlined] TDelegate::Execute() DelegateSignatureImpl.inl:613
SButton::ExecuteOnClick() SButton.cpp:574
SButton::OnMouseButtonUp(const FGeometry &, const FPointerEvent &) SButton.cpp:442
[Inlined] FSlateApplication::RoutePointerUpEvent::__l8::<lambda_2>::operator()(const FArrangedWidget &, const FPointerEvent &) SlateApplication.cpp:5469
FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,`FSlateApplication::RoutePointerUpEvent'::`8'::<lambda_2> >(FSlateApplication *,FToLeafmostPolicy,FPointerEvent,const <lambda_2> &,ESlateDebuggingInputEvent) SlateApplication.cpp:459
FSlateApplication::RoutePointerUpEvent(const FWidgetPath &, const FPointerEvent &) SlateApplication.cpp:5455
FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent &) SlateApplication.cpp:6040
FSlateApplication::OnMouseUp(Type, TVector2<…>) SlateApplication.cpp:5996
FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage &) WindowsApplication.cpp:3372
FWindowsApplication::DeferMessage(TSharedPtr<…> &, HWND__ *, unsigned int, unsigned long long, long long, int, int, unsigned int) WindowsApplication.cpp:3890
FWindowsApplication::ProcessMessage(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:2309
[Inlined] WindowsApplication_WndProc(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:2126
FWindowsApplication::AppWndProc(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:2131
[Inlined] WinPumpMessages() WindowsPlatformApplicationMisc.cpp:117
FWindowsPlatformApplicationMisc::PumpMessages(bool) WindowsPlatformApplicationMisc.cpp:146
FEngineLoop::Tick() LaunchEngineLoop.cpp:5701
[Inlined] EngineTick() Launch.cpp:60
GuardedMain(const wchar_t *) Launch.cpp:189
LaunchWindowsStartup(HINSTANCE__ *, HINSTANCE__ *, char *, int, const wchar_t *) LaunchWindows.cpp:266
WinMain(HINSTANCE__ *, HINSTANCE__ *, char *, int) LaunchWindows.cpp:334
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-315108 in the post.
0 |
Component | UE - Anim - Rigging - Control Rig |
---|---|
Affects Versions | 5.6 |
Created | Aug 22, 2025 |
---|---|
Updated | Aug 22, 2025 |