CrimsonInteraction is built for the Gameplay Ability System and nothing else. Every scan task is a UAbilityTask that must be spawned from a running UGameplayAbility, options are filtered by CanActivateAbility, and interactions fire as gameplay events on a UAbilitySystemComponent. If your project does not use GAS - if your pawn (or its player state) does not own an ASC - this plugin cannot function and there is no non-GAS fallback. Set up GAS first, then come back.
CrimsonInteraction is the mechanism layer for player interaction. It ships the GAS ability tasks that detect nearby ICrimsonInteractableTarget actors (cursor or forward trace), filter their options by what the player can actually activate, and keep each option's ability granted on the server - plus the statics, settings, and helpers that glue those pieces to your interact ability. It also ships Crimson Basic Interact, a ready-to-grant instant interact ability that runs those tasks and binds your interact input, so the Quick Start gets you interacting with one handler ability and one interactable. For holds, channels and prompts you author your own interact ability around the same tasks (How-To: Write Your Own Interact Ability). It ships no widgets.
Using with other Crimson plugins
CrimsonInteraction works on its own - this wiki builds everything without other plugins. When you own other Crimson plugins, CrimsonCore (free to download, but compiles only with all Crimson plugins installed) contains the full-suite wiring for it in Source/CrimsonCore/.../Integration/Interaction/ and .../Integration/InteractionUI/: UCrimsonCoreInteractionStatics and UCrimsonInteractionContextActionContributor feed interaction options into the UI context menu, and UCrimsonCoreGameplayAbility_Interact is a prebuilt interact ability with prompt widgets. To wire it yourself, read CrimsonCommon -> Concept: Connecting Crimson Plugins; to see how CrimsonCore does it, read CrimsonCore -> Concept: The Integration Layer.
Ready-to-grant instant interact ability on the engine's UGameplayAbility: activates itself, scans (line trace or top-down), grants nearby options' abilities on the server, binds your interact action and fires the focused option on press.
Requirements on an option (a key, a level, a permission). The scan task evaluates them: a failure hides the option or shows it as a message with a met / unmet checklist; the interaction's handler re-checks them on the server. How-To: Gate an Interaction with Conditions.
Grant task
UCrimsonAbilityTask_GrantNearbyInteraction
Server-only: grants each nearby option's abilities to the avatar's ASC and revokes them when out of range.
Statics
UCrimsonInteractionStatics
Target/actor resolution helpers and TriggerInteractionOption - fire an option's ability by replicated handle from Blueprint or C++.
Duration UI payload
UCrimsonInteractionDurationContext
Data object for progress widgets during timed interactions; OnProgressChanged per-instance delegate.
Target actor
ACrimsonGameplayAbilityTargetActor_Interact
AGameplayAbilityTargetActor_Trace base for reticle-style targeting (not used by the scan tasks).
Shipped via the plugin's Config/Engine.ini for a dedicated-channel setup; registered automatically.
The rest of the stack
Plugin
Availability
What it contributes
Crimson plugins
None required
Fully standalone: the contract (ICrimsonInteractableTarget, ICrimsonInteractionInstigator, FCrimsonInteractionOption, FCrimsonInteractionQuery, the conditions) ships in this plugin under Public/Interaction/.
Enhanced Input
Required (Epic engine plugin, on by default)
The UInputAction + UInputMappingContext you bind your interact key to, and UEnhancedInputComponent::BindAction on the pawn. This plugin ships no input assets: you set your interact action on Crimson Basic Interact, which binds it for you.
CrimsonCore
Optional - free to download, but compiles only with all Crimson plugins installed
Prebuilt layer: ready-made interact / duration / handler abilities, ACrimsonInteractableActor, the HUD prompt widget, world indicators, and the Ability.Interaction.* tags. Everything it does, you can build yourself in How-To: Write Your Own Interact Ability and How-To: Add Holds, Channels & a Progress Prompt.
The default Interaction Trace Channel is Visibility, so any actor with default collision is detected immediately. The plugin also ships Interactable_OverlapDynamic / Interactable_BlockDynamic profiles for a dedicated response set - see How-To: Configure Collision.
Where to go next
New here? Quick Start - the complete working loop (detect, prompt, press, react) with Crimson Basic Interact, no other plugins.
Need holds or channels? How-To: Write Your Own Interact Ability, then How-To: Add Holds, Channels & a Progress Prompt.
Need the prerequisite nodes and getters? How-To: Get the Building Blocks.
Want the mental model? Concept: The Three Layers and Concept: Scan, Gather, Filter, Broadcast.