Concept: Multiplayer & Authority

Crimson Basic Interact, and the ability from How-To: Write Your Own Interact Ability, are LocalPredicted and instanced per actor: scan and input run on the owning client while authority-only work stays on the server.

ConcernWhere it runs
Scanning / option detectionOwning client (drives the local prompt). Gate the scan-task spawn on IsLocallyControlled() so dedicated servers do not trace every tick.
Granting option abilitiesServer only - GrantNearbyInteraction early-outs unless IsOwnerActorAuthoritative(), and revokes grants for interactables that leave range. Gate its spawn on IsNetAuthority().
Firing the interactionThrough GAS - TriggerInteractionOption triggers by replicated handle, so the granted/target ability runs with normal GAS prediction and server authority.
Handler side effectsA LocalPredicted handler runs on owning client and server - guard authoritative mutations (loot, doors) with HasAuthority().
Progress displayLocal - the owning client calls UpdateProgress on its UCrimsonInteractionDurationContext, whose OnProgressChanged drives the widget.
AI and non-controlled avatars
The scan tasks' aim helpers tolerate a missing PlayerController (AI, server-driven, or non-locally-controlled avatars) instead of asserting, so a listen-server host running multiple pawns will not crash.