CrimsonInteractionComing to FabPersonal $24.99 · Professional $49.99
Join the Discord for updates

The GAS interaction mechanism layer — data-driven scan tasks for cursor or forward aim, a server-side ability granter, trigger statics, and project-wide scan settings. Author one small interact ability; the rest is done.

Gameplay · Interaction · Unreal Engine 5

Every "Press E" in your game. Scanning, filtering and authority, handled.

CrimsonInteraction is the mechanism layer for player interaction in Gameplay Ability System projects: ability tasks that detect nearby ICrimsonInteractableTarget actors by 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 ships no abilities, no widgets, and no input bindings: the Quick Start walks you through the roughly 100 lines you author, keep, and extend.

Video coming soon

Why CrimsonInteraction

Detection, filtering, granting, and firing are done — the small interact ability on top stays yours.

Two scan tasks, two camera styles

UCrimsonAbilityTask_WaitForInteractableTargets_TopDownTrace deprojects the cursor to the ground for Diablo-style games; _SingleLineTrace traces forward through the camera for FPS/TPS. Swap one task call to change strategy — or subclass the base task and bring your own trace.

Options filtered by what you can activate

Every scan task is a real UAbilityTask spawned from your running interact ability. Gathered options are filtered by CanActivateAbility, so the prompt only ever shows interactions the player can actually perform — no stale or impossible options.

A server-side ability granter

UCrimsonAbilityTask_GrantNearbyInteraction runs on the server only: it grants each nearby option's abilities to the avatar's ASC and revokes them when the interactable leaves range. Options fire through GAS with the granted ability already in place.

Fire by replicated handle

UCrimsonInteractionStatics resolves targets and actors and exposes TriggerInteractionOption — fire an option's ability by replicated handle from Blueprint or C++, so the interaction runs with normal GAS prediction and server authority.

Instant, hold & channel — all data

An option's activation shape lives in its data: InputType = Instant fires on press, Hold with an InputHoldDuration confirms after a timed hold, and an InteractionActionAbility starts a timed channel like mining or reviving. UCrimsonInteractionDurationContext carries progress to your UI.

Zero collision setup to start

The default Interaction Trace Channel is Visibility, so any actor with default collision is detected immediately. When you outgrow that, UCrimsonInteractionSettings centralizes channel, profiles, range, rate, and debug — and the plugin ships Interactable_OverlapDynamic / Interactable_BlockDynamic profiles for a dedicated-channel setup.

A closer look

The complete loop in one Quick Start

Walk up to a chest, press interact, and the chest reacts — in singleplayer and multiplayer — using only CrimsonInteraction and CrimsonCommon. You author two small abilities along the way (a handler and an interact ability), and the wiki walks you through every line. They're yours to keep and extend, not black boxes to work around.

Holds and channels are data, not input triggers

Hold timing lives in ability timers, never in an Enhanced Input Hold trigger — per-option durations are data, and the input layer can't know what you're aiming at. Holding fills the target's progress and releasing early cancels; channels pre-grant their action ability automatically. Progress reaches your UI two ways: NotifyInteractionProgress on the target itself, or FCrimsonInteractionProgressMessage on the message bus for HUD widgets.

Built for multiplayer from the first trace

Scanning runs on the owning client to drive the local prompt; granting runs on the server only and revokes out-of-range grants; firing goes through GAS by replicated handle so prediction and authority just work. The aim helpers even tolerate AI and non-locally-controlled avatars, so a listen-server host running multiple pawns won't crash.

Technical details

Engine
UE 5.8
Platforms
Windows, Mac, Linux
Blueprint-ready
Yes
C++ required
No
Network replicated
Yes
Dependencies
CrimsonCommon, GameplayAbilities, GameplayTasks, GameplayTags, EnhancedInput
Last updated
June 2026

Frequently asked questions

Do I need the Gameplay Ability System?
Yes — this is non-negotiable. Every scan task is a UAbilityTask spawned from a running UGameplayAbility, options are filtered by CanActivateAbility, and interactions fire as gameplay events on an ASC. There is no non-GAS fallback. The upside: it works with plain UGameplayAbility subclasses — you don't need CrimsonAbilitySystem or any particular GAS base class.
Do I need C++ to use it?
No. The Quick Start authors both abilities — the handler and the interact ability — in Blueprint, and the scan tasks, grant task, and statics are all Blueprint-callable. C++ is there when you want it, like FCrimsonInteractionOptionBuilder for building options natively.
Does it work in multiplayer?
Yes — the division of labor is designed for it. Scanning and input run on the owning client, GrantNearbyInteraction early-outs unless it has authority, and TriggerInteractionOption fires by replicated handle so the granted ability runs with normal GAS prediction and server authority.
Does it depend on other Crimson plugins?
Only CrimsonCommon, per the suite's Cardinal Rule — the contract layer (ICrimsonInteractableTarget, FCrimsonInteractionOption, the message bus) lives there. Pair it optionally with CrimsonInput for a safe press-and-hold trigger or CrimsonUI for world indicators, but nothing requires them.
How does it relate to the free CrimsonCommon foundation?
CrimsonCommon holds the contract: the interactable and instigator interfaces, the option and query types, the progress message, the message bus, and the UIExtension system. That means an actor can be interactable with only the free plugin installed — CrimsonInteraction is the premium mechanism layer that detects, grants, and fires those options.

Detect, prompt, press, react — today

The Quick Start takes you from an empty GAS project to a chest that reacts to the interact key, in singleplayer and multiplayer, in roughly 100 lines you own. Holds, channels, and progress prompts are one how-to further.

Pricing

CrimsonInteraction is sold on Fab under Epic’s two standard licenses — both include the full plugin, source, and updates.

Personal$24.99For individuals & teams under $100K revenueComing to Fab — join the Discord
Professional$49.99For companies over $100K revenueComing to Fab — join the Discord