How-To: Override Which Option Is Chosen
Goal: change which option fires when several are in range, instead of the default focused pick.
CurrentOptions[0] - the scan task's focused target (closest to the cursor, or first along the aim).Implement the instigator hook
ICrimsonInteractionInstigator is the decoupled arbitration hook: ChooseBestInteractionOption(Query, Options) returns the winning option. Call it from your interact ability's press handler before firing - one Implements check. (Crimson Basic Interact and CrimsonCore's prebuilt ability call it automatically.)
On the pawn or player controller: Class Settings -> Details -> Interfaces -> Add -> Crimson Interaction Instigator. In My Blueprint -> Interfaces, double-click Choose Best Interaction Option.
In the event: Event Choose Best Interaction Option -> For Each Loop over the Interact Options input -> Break CrimsonInteractionOption -> your test -> Branch, and on a match -> Return Node with Return Value = that loop element. After the loop, return Interact Options -> Get (a copy) (Index = 0) so an unmatched press still acts on the focused target.
Then call it from GA_Interact's press path, before Trigger Interaction Option: Get Avatar Actor From Actor Info -> Does Implement Interface (Interface = Crimson Interaction Instigator) -> Branch. On True, Choose Best Interaction Option as an interface message call on that actor (Interact Query = your Make CrimsonInteractionQuery, Interact Options = CurrentOptions) and fire its Return Value instead of CurrentOptions[0].