How-To: Choose a Scan Strategy

Goal: detect interactables the way your game's camera works - cursor (top-down) or forward aim (FPS/TPS). On Crimson Basic Interact it is one setting, Scan Mode (Line Trace or Top Down). In your own interact ability it is simply which scan task the ability spawns; both tasks are this plugin's.

Pick a scan task

Scan taskUse forHow it works
UCrimsonAbilityTask_WaitForInteractableTargets_TopDownTraceDiablo / PoE cursor gamesDeprojects the mouse to the ground, sphere-searches around the hit, sorts by distance to cursor; fires hover enter/leave on the focused target; filters out targets farther than InteractionDistance from the avatar.
UCrimsonAbilityTask_WaitForInteractableTargets_SingleLineTraceFPS / over-shoulder TPSForward trace through the camera view, clipped to range; focused target = first hit along the aim. Interactables must overlap the trace channel.

Wire it up

In your own interact ability, swap the scan task call in its activation (How-To: Write Your Own Interact Ability step 3 uses the single-line version). The top-down factory takes a ground-trace profile and cursor radius instead of a start location:

In GA_Interact's Event ActivateAbility graph, delete the Wait For Interactable Targets Single Line Trace node and drop in Wait For Interactable Targets Top Down Trace in its place: Interaction Query = the same Make CrimsonInteractionQuery, Interaction Trace Channel = Visibility, Ground Trace Profile = BlockAll, Trace Distance = 10000, Interaction Distance = 200, Interaction Radius = 200, Interaction Scan Rate = 0.1, Show Debug = unticked.

Re-bind the same Interactable Objects Changed delegate pin to the Custom Event that sets CurrentOptions - nothing downstream changes. The top-down node has no Start Location pin: it deprojects the cursor and sphere-searches around the ground hit instead of tracing forward from the avatar.

Verify
Enable scan debug (settings bShowDebugByDefault, or the debug flag on the task call) and watch the trace shape match your chosen strategy.
Building your own scan task?
Subclass UCrimsonAbilityTask_WaitForInteractableTargets, implement your trace, call UpdateInteractableOptions(Query, Targets), and bind InteractableObjectsChanged in your ability. The base stores CurrentOptions in priority order, so CurrentOptions[0] is the focused target. Append Interactable Targets From Hit Result (statics) does the interface collection for you.
CrimsonCore (requires all Crimson plugins)
CrimsonCore's prebuilt interact ability wraps these same two tasks behind a ScanStrategy enum dropdown - convenience only, same mechanics.