API Reference

Types are in CrimsonInput unless noted. BP = Blueprint-callable; BP (pure) = Blueprint pure node; C++ only = no Blueprint node. The binding templates on UCrimsonInputComponent are C++ only.

Config & component

TypeKindDescription
UCrimsonInputConfigUDataAsset (Const)Maps UInputAction assets to tags across NativeInputActions, AbilityInputActions, UIInputActions. BP: FindNativeInputActionForTag, FindAbilityInputActionForTag, FindUIInputActionForTag.
FCrimsonInputActionStruct (BlueprintType)One TObjectPtr<const UInputAction> + FGameplayTag pair; the element type of all three config lists.
UCrimsonInputComponentUEnhancedInputComponentC++ only: BindNativeAction (tag -> callback, one ETriggerEvent), BindAbilityActions (press Triggered; release Completed+Canceled; callback void(FGameplayTag)), BindAbilityActionsWithAction (press Started; release Completed+Canceled; callback void(UInputAction*, FGameplayTag)), RemoveBinds. BP but reserved no-op: AddInputMappings / RemoveInputMappings currently do nothing - apply IMCs with UCrimsonInputHelpers::AddMappingContextWithChordTriggers instead.

Modifiers & settings provider

TypeKindDescription
ICrimsonInputSettingsProviderUInterfaceImplement on your ULocalPlayer. C++ virtuals GetGamepadMoveStickDeadZone, GetGamepadLookStickDeadZone, GetGamepadLookSensitivityPreset, GetGamepadTargetingSensitivityPreset, GetInvertVerticalAxis, GetInvertHorizontalAxis, GetSharedSettingsObject (C++ only). Each has a K2_ BP BlueprintNativeEvent the virtual defaults to.
UCrimsonInputModifierDeadZoneUInputModifierRadial/Axial deadzone. Lower threshold from the provider (DeadzoneStick = Move/Look); Type, UpperThreshold are properties. NotBlueprintable.
UCrimsonInputModifierGamepadSensitivityUInputModifierScales look by SensitivityLevelTable->SensitivityEnumToFloat() at the player's preset. TargetingType (Normal/ADS) selects which preset. NotBlueprintable.
UCrimsonInputModifierAimInversionUInputModifierInverts X and/or Y from provider flags. No properties. NotBlueprintable.
UCrimsonSettingBasedScalarUInputModifierScales axes by named float/double properties read from GetSharedSettingsObject() via reflection. X/Y/ZAxisScalarSettingName, Min/MaxValueClamp. NotBlueprintable.
ECrimsonTargetingTypeEnum (BlueprintType)Normal / ADS - which sensitivity preset the gamepad modifier reads.
EDeadzoneStickEnum (BlueprintType)MoveStick / LookStick - which deadzone value the deadzone modifier reads.

Chord system & rebinding

TypeKindDescription
UInputTriggerCrimsonDynamicChordUInputTriggerEnforces a modifier chord (exact match; gamepad bypass). DefaultChord (inline default), MappingName (set to opt into per-player overrides), bOverrideSlot/OverrideSlot. NotBlueprintable, NotInputConfigurable.
UInputTriggerCrimsonPressAndHoldUInputTriggerExplicit trigger for Tap/Hold/Toggle: Triggered once on actuation, Ongoing while held, Completed on real release. No properties.
FCrimsonChordRequirementStruct (BlueprintType, CrimsonCommon)bRequiresShift, bRequiresCtrl, bRequiresAlt (all SaveGame). IsEmpty(), GetDisplayName(FKey).
UCrimsonInputUserSettingsUEnhancedInputUserSettingsPer-player chord persistence (ChordMappings, SaveGame). BP: SetChordRequirement, GetChordRequirement, GetChordRequirementWithDefaults, ClearChordRequirement, ClearAllChordRequirements, OnSettingsApplied (BlueprintNativeEvent). BP (pure): HasChordRequirement, FindChordConflict. Reach it via the subsystem's Get Enhanced Input User Settings then cast.
FCrimsonChordMappingEntryStruct (SaveGame)MappingName + Slot + FCrimsonChordRequirement; the persisted array element in UCrimsonInputUserSettings.
UCrimsonPlayerMappableKeySettingsUPlayerMappableKeySettingsAttach to a UInputAction for the rebindable flow; its Name keys the per-player overrides. BP (pure): GetTooltipText; Tooltip property.
UCrimsonInputSettingsUDeveloperSettings (Config=Game)Project Settings -> Crimson -> Crimson Input. Shift/Ctrl/Alt modifier action soft-refs + UIConfirmAction/UIBackAction. BP (pure): GetShiftModifierAction, GetCtrlModifierAction, GetAltModifierAction, GetUIConfirmAction, GetUIBackAction. (static Get() is C++ only.)
UCrimsonInputHelpersUBlueprintFunctionLibraryBP: CreateIMCWithChordTriggers, AddMappingContextWithChordTriggers (subsystem), AddMappingContextToPlayerWithChordTriggers (local player). BP (pure): GetChordDisplayTextForAction (formatted key+chord label).

Sensitivity & extension bases

TypeKindDescription
UCrimsonAimSensitivityDataUPrimaryDataAsset (Const)TMap<ECrimsonGamepadSensitivity, float> SensitivityMap. BP (pure): SensitivityEnumToFloat.
ECrimsonGamepadSensitivityEnum (BlueprintType, CrimsonCommon)10 named presets (Slow ... Insane). Defined in CrimsonCommon/Public/Input/CrimsonSensitivityTypes.h.
UCrimsonPlayerInputUEnhancedPlayerInputThin extension point for player-input processing (telemetry, latency markers). Optional; dormant in the shipped project.
UCrimsonPlayerMappableKeyProfileUEnhancedPlayerMappableKeyProfileFires OnProfileEquipped / OnProfileUnequipped BlueprintNativeEvents on key-profile change.

Related (other plugins)

TypePluginWhy it matters here
UCrimsonAbilitySystemComponent::AbilityInputTagPressed / AbilityInputTagReleasedCrimsonAbilitySystemBP - forward ability input by tag from Blueprint (Enhanced Input event -> these nodes). Standalone GAS input entry point.
ACrimsonCharacter, UCrimsonPawnDataCrimsonCoreThe Blueprint fast path: subclass the character, set PawnData->InputConfig, and all input auto-binds. See Concept: Full-Stack Integration & Multiplayer.