# Blueprint API Summary Everything on this page is `BlueprintCallable` / `BlueprintPure` / `BlueprintAssignable`: MovaInteract is designed so a pure-Blueprint project can drive the whole system with no C++. ## Interaction | Node | Class | Purpose | |---|---|---| | `TargetInteraction` | Interactor | Trigger the closest aimed interactable. | | `TargetAction` | Interactor | Trigger a named Cycle/Group directly. | | `TargetTags` | Interactor | Trigger by raw tag string. | | `SetRadialSelectDirection` / `GetRadialSelectedIndex` | Interactor | Gamepad radial-menu selection. | ## Grab | Node | Class | Purpose | |---|---|---| | `ToggleGrab` / `GrabAimed` / `ReleaseHeld` / `ThrowHeld` | Grab | Pick up / drop / throw. | | `IsGrabbable` / `IsHolding` / `GetHeldComponent` | Grab | Queries for prompts and UI. | ## Save / load | Node | Class | Purpose | |---|---|---| | `SaveInteractiveGame` | `UMovaIxSaveLibrary` | Snapshot every IC in the level. | | `LoadInteractiveGame` | `UMovaIxSaveLibrary` | Restore them. | ## Presets | Node | Purpose | |---|---| | `ListPresets` | Every built-in + user preset. | | `ApplyPresetToComponent` | Replace an IC's bundle with a preset's. | | `SaveUserPreset` / `DuplicateToUserPreset` / `DeleteUserPreset` | Manage user presets. | | `GatherUnresolvedPresetNames` | Flag what a preset transplant needs wired before applying. | ## Decision hooks (override in a C++ subclass) `CanExecuteGroup` and similar `BlueprintNativeEvent` hooks let a game apply project-specific rules (permissions, quest state) without touching plugin code. See {doc}`runtime-components`. ## Events to bind | Event | Fires when | |---|---| | `OnInteractEnter` / `OnInteractLeave` | The Interactor's aim enters/leaves an interactable: drive your prompt widget. | | `OnInteractHoldProgress` | A group with `ConfirmTime` is being held: drive a progress ring. | | `OnGrabbed` / `OnReleased` / `OnThrown` | Grab lifecycle. | | `OnRadialSelectionChanged` | The highlighted wedge changed. | Full signatures: {doc}`interactor-api`, {doc}`grab-api`.