add_component_bound_event
Bind a Blueprint component's multicast delegate to a handler event in the event graph, then compile and verify it. Also wires widget events like Button OnClicked.
Instructions
Bind a multicast delegate OF ONE OF THIS BLUEPRINT'S OWN COMPONENTS (OnComponentBeginOverlap, OnComponentHit, a vendor component's dispatcher...) to a generated handler event in the event graph -- the editor's component-event flow -- then compile and re-check that the binding registered (bound). ALSO WORKS ON A WIDGET BLUEPRINT: pass the WBP and a WIDGET's name as component_name to wire a Button's OnClicked, a Slider's OnValueChanged, a CheckBox's OnCheckStateChanged -- exactly what the Designer's "+ OnClicked" green button does, and the only headless route to it (bound:true, with a BndEvt__..._OnButtonClickedEvent created). A UMG widget is not an SCS component but IS a property of the generated class, which is all this needs. Idempotent: an identical binding is returned instead of duplicated. The Blueprint must already be compiled, since the component/widget has to exist as a property of the generated class. For a dispatcher on an object that is NOT self and NOT one of its components, use add_object_bound_event; for one on SELF, add_graph_node node_type="add_delegate".
Returns: { node_id, class, title, pins:[...the delegate's params as OUTPUT pins...], blueprint_name, graph_name, component_name, delegate, custom_function_name, bound, already_exists? } -- bound is a post-compile re-lookup (the real oracle); already_exists is only present when an existing binding was reused.
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. | |
| 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) | |
| delegate_name | Yes | Exact multicast delegate property name on the COMPONENT's class (e.g. "OnComponentBeginOverlap"). On a miss the error names the component class so the right delegate can be looked up. | |
| 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 an Actor Blueprint OR a Widget Blueprint (already compiled). | |
| blueprint_path | No | Alias of `blueprint_name` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `blueprint_name`. | |
| component_name | Yes | SCS component variable name on this Blueprint (e.g. "BodyMesh"), OR -- on a Widget Blueprint -- the name of a widget in its tree (e.g. "Btn_Play"); resolved on the skeleton class, so inherited components and widgets work too. |