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; AimingStateTag, when set, overrides it with the targeting preset for as long as the pawn's ability system owns that tag. Warns once if SensitivityLevelTable is unset. 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 when AimingStateTag is unset or the tag is absent.
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)RequiredModifiers (Input.Modifier.* tags) and RequiredModifierKeys (FKey), both SaveGame. IsEmpty(), Contains(), GetDisplayName(FKey, bLongDisplayName), GetModifierPrefix().
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. bApplyDynamicChordTrigger (default true) opts the action's mappings in or out of auto-injected chord triggers - untick it for actions another system chord-gates. BP (pure): GetTooltipText; Tooltip property.
UCrimsonInputSettingsUDeveloperSettings (Config=Game)Project Settings -> Crimson -> Crimson Input Settings. Owns the modifier registry (ModifierDefinitions: one FCrimsonInputModifierDefinition per chord modifier) + UIConfirmAction/UIBackAction. BP (pure): GetUIConfirmAction, GetUIBackAction. (static Get() and GetModifierDefinitions() are C++ only.)
UCrimsonInputHelpersUBlueprintFunctionLibraryBP: CreateIMCWithChordTriggers, AddMappingContextWithChordTriggers (subsystem), AddMappingContextToPlayerWithChordTriggers (local player).
UCrimsonInputDisplayStaticsUBlueprintFunctionLibraryThe one resolver for "what key plus modifiers is this action bound to right now". BP (pure): GetActionDisplayText(LocalPlayer, Action, bLongDisplayName) - the formatted key+chord label. BP: DescribeModifierState. C++ only: ResolveActionBinding, GetChordForMapping, GetModifierDisplayKeys, DoesHeldStateSatisfy.

Sensitivity & extension bases

TypeKindDescription
UCrimsonAimSensitivityDataUPrimaryDataAsset (Const)TMap<ECrimsonGamepadSensitivity, float> SensitivityMap. BP (pure): SensitivityEnumToFloat.
ECrimsonGamepadSensitivityEnum (BlueprintType)10 named presets (Slow ... Insane). Defined in 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.

Game feature actions

Added to a Game Feature Data asset's Actions array. Both derive from UCrimsonInputGameFeatureAction_WorldActionBase and undo themselves on deactivate. See How-To: Add Input with a Game Feature.

TypeKindDescription
UCrimsonGameFeatureAction_AddInputContextMappingUGameFeatureAction ("Add Input Context Mapping")InputMappings - applies each context to every local player through AddMappingContextWithChordTriggers and removes it on deactivate. Needs nothing on the pawn.
FCrimsonInputMappingContextAndPriorityStruct (BlueprintType)One InputMappings entry: InputMapping (soft UInputMappingContext), Priority (higher applies over lower), bRegisterWithSettings (also register the IMC with the Enhanced Input user-settings subsystem, default true).
UCrimsonGameFeatureAction_AddInputBindingUGameFeatureAction ("Add Input Binding")InputConfigs - hands each soft UCrimsonInputConfig to the pawn's ICrimsonInputConfigReceiver on activate and takes it back on deactivate. Binds nothing when no receiver is found.
ICrimsonInputConfigReceiverUInterface (C++ only)What a pawn, or one of its components, implements to receive those configs: IsReadyToBindInputs(), AddAdditionalInputConfig(const UCrimsonInputConfig*), RemoveAdditionalInputConfig(const UCrimsonInputConfig*), plus the static FindReceiver(AActor*) - actor first, then the first component that implements it. CannotImplementInterfaceInBlueprint.
UCrimsonInputComponent::NAME_BindInputsNowstatic const FName ("BindInputsNow")The extension event both actions listen for. Send it through UGameFrameworkComponentManager on the player controller and the pawn once input is bound, and every already-active feature re-applies. BP: the manager's Send Extension Event node with this name.

Related types you will call, from elsewhere

The GAS entries are Epic's own and ship with the GameplayAbilities plugin. The CrimsonCore entry is listed for orientation only - CrimsonCore is free to download but compiles only with all Crimson plugins installed, and every recipe on this wiki has a standalone equivalent that needs none of it.

TypeShips withWhy it matters here
UAbilitySystemBlueprintLibrary::GetAbilitySystemComponentGameplayAbilities (Epic)BP + C++ - resolves the ASC through IAbilitySystemInterface, the entry point for every ability-input forward. See How-To: Bind Ability Input.
UAbilitySystemComponent::TryActivateAbilitiesByTagGameplayAbilities (Epic)BP - activates every granted ability whose Asset Tags contain the input tag. This is the Blueprint ability-input path.
UAbilitySystemComponent::AbilitySpecInputPressed / AbilitySpecInputReleasedGameplayAbilities (Epic)C++ - delivers a press or release edge to an already-active ability, which is how the C++ forwarder gets a true release.
ACrimsonCharacter, UCrimsonPawnDataCrimsonCore (orientation only)The Blueprint fast path: subclass the character, set PawnData->InputConfig, and all input auto-binds. See Concept: Full-Stack Integration & Multiplayer.