API Reference
Public types grouped by owning plugin. Identifiers are exact; verify against the headers if you extend them.
Contract (CrimsonCommon)
| Type | Kind | Purpose |
|---|---|---|
ICrimsonInteractableTarget | Interface | Implement to be interactable. GatherInteractionOptions (C++) / K2 Gather Interaction Options (BP), CustomizeInteractionEventData (C++ only), OnInteractableHovered / OnInteractableUnhovered, NotifyInteractionSuccess, NotifyInteractionProgress (all four BlueprintNativeEvent). |
ICrimsonInteractionInstigator | Interface | Optional arbitration hook. ChooseBestInteractionOption(Query, Options) (BlueprintNativeEvent) picks the winning option. |
FCrimsonInteractionOption | Struct | Text, SubText, InteractionAbilityToGrant (Method 1), TargetAbilitySystem + TargetInteractionAbilityHandle (Method 2, runtime-filled), InteractionWidgetClass, InputType, InputHoldDuration, InteractionActionAbility, InteractableTarget (stamped automatically). |
ECrimsonInteractionInputType | Enum | Instant, Hold - the only two values. |
FCrimsonInteractionQuery | Struct | RequestingAvatar, RequestingController, OptionalObjectData (all weak pointers). |
FCrimsonInteractionOptionBuilder | Helper (C++-only) | AddInteractionOption - copies the option and stamps InteractableTarget with the gathering scope. Not exposed to Blueprint (the K2 gather path stamps for you). |
FCrimsonInteractionProgressMessage | Struct | Channel Message.Interaction.Progress (tag defined in CrimsonCommon). Instigator, Target, Elapsed, Duration, Progress01, bComplete. |
Option equality quirk
FCrimsonInteractionOption::operator== compares target, granted/target ability, widget class, and text - it ignores InputType, InputHoldDuration, and InteractionActionAbility. The scan's change-detection therefore does not re-broadcast when only those fields change.Mechanism (CrimsonInteraction - this plugin)
| Type | Kind | Purpose |
|---|---|---|
UCrimsonAbilityTask_WaitForInteractableTargets | AbilityTask (abstract) | Base scan task. InteractableObjectsChanged delegate; CurrentOptions (BP-readable, priority order); UpdateInteractableOptions (BlueprintNativeEvent) gathers, filters by CanActivateAbility, change-detects, broadcasts; SetTraceProfile / GetTraceProfileName. |
UCrimsonAbilityTask_WaitForInteractableTargets_SingleLineTrace | AbilityTask | Node Wait For Interactable Targets Single Line Trace (Query, TraceChannel, StartLocation, ScanRange=100, ScanRate=0.1, bShowDebug=false). Forward multi-trace through the camera; stops at the first interactable hit. |
UCrimsonAbilityTask_WaitForInteractableTargets_TopDownTrace | AbilityTask | Node Wait For Interactable Targets Top Down Trace (Query, TraceChannel, GroundTraceProfile, TraceDistance=10000, InteractionDistance=200, InteractionRadius=200, ScanRate=0.1, bShowDebug=false). Cursor deproject + sphere overlap; hover enter/leave on the focused target. |
UCrimsonAbilityTask_GrantNearbyInteraction | AbilityTask | Node Grant Abilities For Nearby Interactors (ScanRange, ScanRate, TraceChannel). Server-only; grants both InteractionAbilityToGrant and InteractionActionAbility per nearby option (spec SourceObject = avatar, so it replicates); revokes on leave; clears all on destroy. |
UCrimsonInteractionStatics | BlueprintFunctionLibrary | TriggerInteractionOption(Option, Instigator, EventTag) -> bool (back-fill + payload hook + trigger by handle), GetActorFromInteractableTarget, GetInteractableTargetsFromActor, AppendInteractableTargetsFromHitResult, GetContextActionsForActor. C++-only: AppendInteractableTargetsFromOverlapResults. |
UCrimsonInteractionDurationContext | UObject (BlueprintType) | UIExtension payload for progress widgets. Construct(WidgetClass, Text, Duration), UpdateProgress(Progress, Duration), OnProgressChanged (assignable), WidgetClass / InteractionText / CastDuration (read-only). |
ACrimsonGameplayAbilityTargetActor_Interact | TargetActor | AGameplayAbilityTargetActor_Trace subclass for reticle traces (C++ PerformTrace override). Not used by the scan tasks - for bespoke target-actor workflows. |
UCrimsonInteractionSettings | DeveloperSettings | Project Settings -> Crimson -> Crimson Interaction (DefaultCrimsonInteraction.ini). InteractionTraceChannel (Visibility), OverlapProfileName, BlockProfileName, DefaultScanRange (500), DefaultScanRate (0.1), TopDownTraceDistance (10000), TopDownInteractionRadius (200), bShowDebugByDefault (false). C++: UCrimsonInteractionSettings::Get(); not Blueprint-readable. |
No tags, no abilities
This plugin defines zero gameplay tags and zero abilities.
Message.Interaction.Progress belongs to CrimsonCommon; the Ability.Interaction.* strings are conventions you define yourself (Quick Start step 2) - CrimsonCore happens to use the same strings.Prebuilt layer (CrimsonCore - requires all Crimson plugins)
Listed for orientation only - these types are not part of CrimsonInteraction. CrimsonCore is free to download and read, but it only compiles in projects that have every Crimson plugin installed. Everything here has a self-built equivalent in Quick Start and How-To: Add Holds, Channels & a Progress Prompt.
| Type | Kind | Purpose |
|---|---|---|
UCrimsonGameplayAbility_Interact | GameplayAbility (abstract) | Base interact ability: press decision tree, ability-timer holds, instigator hook, target progress, channel launch. |
UCrimsonCoreGameplayAbility_Interact | GameplayAbility | Ready-made: ScanStrategy (TopDown / SingleLineTrace), auto-activation on spawn, input binding via InputTag.Interact, prompt presentation via PromptMode (WorldIndicator / HudSlot / Both / Custom), world indicators, context-menu input. Seeds tunables from UCrimsonInteractionSettings. |
UCrimsonGameplayAbility_InteractionDuration / UCrimsonCoreGameplayAbility_InteractionDuration | GameplayAbility | Channel base + concrete 3s default. DurationSeconds, CalculateProgressStep, opt-in MaxDistanceFromTarget / bCancelWhenInputReleased, success event on the target ASC. |
UCrimsonCoreGameplayAbility_InteractionHandler | GameplayAbility | Default InteractionAbilityToGrant: triggered by Ability.Interaction.Activate, calls NotifyInteractionSuccess on the target. |
ACrimsonInteractableActor | Actor | Drop-in interactable: Details-panel InteractionOptions array, On Interacted / On Interaction Progress / On Hover Changed BP events, optional context menu. |
UCrimsonCoreInteractionPromptWidget | Widget | HUD prompt driven by Message.Interaction.OptionsChanged + Message.Interaction.Progress; progress ring via its ActionWidget material layer. |
FCrimsonInteractionOptionsChangedMessage | Struct | Channel Message.Interaction.OptionsChanged (CrimsonCore tag). Instigator + Options - drives the prompt without referencing the ability. |