add_object_bound_event
Bind an external BlueprintAssignable event dispatcher to a custom event handler, so you can react to a widget or actor instance held in a variable.
Instructions
Bind a BlueprintAssignable event dispatcher of an EXTERNAL object (not self, not a component) to a handler custom event -- the editor's right-click "Assign" flow (FEdGraphSchemaAction_K2AssignDelegate). Use this to react to a dispatcher on a widget/actor instance held in a variable (e.g. a UMG widget's "On Radial Menu Item Selected"): it spawns a UK2Node_AddDelegate bound to target_class' dispatcher with its self/target pin LEFT UNCONNECTED (you wire the instance) and a UK2Node_CustomEvent whose OUTPUT pins mirror the dispatcher's params (e.g. the segment-data struct), already wired to the AddDelegate's Delegate pin. Unlike the add_delegate node_type (self-context only), this reaches a dispatcher on a foreign class. Does NOT compile the Blueprint (mirrors the engine action); compile afterward.
Returns: { blueprint_name, graph_name, target_class, dispatcher, add_delegate_node_id, custom_event_node_id, custom_event_name, wired, node_id, pins:[...] (the AddDelegate node's pins -- wire 'self'/Target = the widget instance and 'execute'/'then' into your exec flow), custom_event:{ node_id, pins:[...] } (hang handler logic off its 'then'/'output_delegate' and read the dispatcher's param output pins) }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Optional. This command is REFUSED while a Play-in-Editor session is running: it either compiles a Blueprint (the reinstancer can retain a world, and CheckForWorldGCLeaks is Fatal -- it KILLS the editor) or writes to disk (Editor.AllowSavingAssetsDuringPIE=0 makes the engine refuse the write, so it would report success without writing a byte). Stop PIE and retry instead; force=true runs it anyway, at your own risk. | |
| event_name | No | Optional desired name for the handler custom event; made unique in the Blueprint. Defaults to "<Dispatcher>_Event". | |
| graph_name | No | Target graph name; defaults to the Blueprint's event graph when omitted. | |
| position_x | No | Node X position on the graph canvas (ignored when node_position is set) | |
| position_y | No | Node Y position on the graph canvas (ignored when node_position is set) | |
| target_class | Yes | The EXTERNAL class that owns the dispatcher. Accepts a Blueprint/widget short name, a full asset path, a full class path (/Game/.../WBP.WBP_C), a native /Script path, or the generated "..._C" class name. Prefer a full path or the "_C" class for reliable resolution. | |
| node_position | No | Node canvas position as [x, y]; takes precedence over position_x/position_y | |
| blueprint_name | No | Name (or full object path) of the Blueprint being edited (the object that will bind the event, e.g. the hub component BP). | |
| blueprint_path | No | Alias of `blueprint_name` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `blueprint_name`. | |
| dispatcher_name | Yes | The multicast delegate (event dispatcher) property to assign. Matched tolerantly: exact name, spaces stripped, or the display name (so "On Item Selected" resolves to the spaceless FName). On failure the error lists the assignable delegates found on target_class. |