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
| Type | Kind | Description |
|---|
UCrimsonInputConfig | UDataAsset (Const) | Maps UInputAction assets to tags across NativeInputActions, AbilityInputActions, UIInputActions. BP: FindNativeInputActionForTag, FindAbilityInputActionForTag, FindUIInputActionForTag. |
FCrimsonInputAction | Struct (BlueprintType) | One TObjectPtr<const UInputAction> + FGameplayTag pair; the element type of all three config lists. |
UCrimsonInputComponent | UEnhancedInputComponent | C++ 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
| Type | Kind | Description |
|---|
ICrimsonInputSettingsProvider | UInterface | Implement on your ULocalPlayer. C++ virtuals GetGamepadMoveStickDeadZone, GetGamepadLookStickDeadZone, GetGamepadLookSensitivityPreset, GetGamepadTargetingSensitivityPreset, GetInvertVerticalAxis, GetInvertHorizontalAxis, GetSharedSettingsObject (C++ only). Each has a K2_ BP BlueprintNativeEvent the virtual defaults to. |
UCrimsonInputModifierDeadZone | UInputModifier | Radial/Axial deadzone. Lower threshold from the provider (DeadzoneStick = Move/Look); Type, UpperThreshold are properties. NotBlueprintable. |
UCrimsonInputModifierGamepadSensitivity | UInputModifier | Scales 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. |
UCrimsonInputModifierAimInversion | UInputModifier | Inverts X and/or Y from provider flags. No properties. NotBlueprintable. |
UCrimsonSettingBasedScalar | UInputModifier | Scales axes by named float/double properties read from GetSharedSettingsObject() via reflection. X/Y/ZAxisScalarSettingName, Min/MaxValueClamp. NotBlueprintable. |
ECrimsonTargetingType | Enum (BlueprintType) | Normal / ADS - which sensitivity preset the gamepad modifier reads when AimingStateTag is unset or the tag is absent. |
EDeadzoneStick | Enum (BlueprintType) | MoveStick / LookStick - which deadzone value the deadzone modifier reads. |
Chord system & rebinding
| Type | Kind | Description |
|---|
UInputTriggerCrimsonDynamicChord | UInputTrigger | Enforces a modifier chord (exact match; gamepad bypass). DefaultChord (inline default), MappingName (set to opt into per-player overrides), bOverrideSlot/OverrideSlot. NotBlueprintable, NotInputConfigurable. |
UInputTriggerCrimsonPressAndHold | UInputTrigger | Explicit trigger for Tap/Hold/Toggle: Triggered once on actuation, Ongoing while held, Completed on real release. No properties. |
FCrimsonChordRequirement | Struct (BlueprintType) | RequiredModifiers (Input.Modifier.* tags) and RequiredModifierKeys (FKey), both SaveGame. IsEmpty(), Contains(), GetDisplayName(FKey, bLongDisplayName), GetModifierPrefix(). |
UCrimsonInputUserSettings | UEnhancedInputUserSettings | Per-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. |
FCrimsonChordMappingEntry | Struct (SaveGame) | MappingName + Slot + FCrimsonChordRequirement; the persisted array element in UCrimsonInputUserSettings. |
UCrimsonPlayerMappableKeySettings | UPlayerMappableKeySettings | Attach 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. |
UCrimsonInputSettings | UDeveloperSettings (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.) |
UCrimsonInputHelpers | UBlueprintFunctionLibrary | BP: CreateIMCWithChordTriggers, AddMappingContextWithChordTriggers (subsystem), AddMappingContextToPlayerWithChordTriggers (local player). |
UCrimsonInputDisplayStatics | UBlueprintFunctionLibrary | The 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
| Type | Kind | Description |
|---|
UCrimsonAimSensitivityData | UPrimaryDataAsset (Const) | TMap<ECrimsonGamepadSensitivity, float> SensitivityMap. BP (pure): SensitivityEnumToFloat. |
ECrimsonGamepadSensitivity | Enum (BlueprintType) | 10 named presets (Slow ... Insane). Defined in Input/CrimsonSensitivityTypes.h. |
UCrimsonPlayerInput | UEnhancedPlayerInput | Thin extension point for player-input processing (telemetry, latency markers). Optional; dormant in the shipped project. |
UCrimsonPlayerMappableKeyProfile | UEnhancedPlayerMappableKeyProfile | Fires 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.
| Type | Kind | Description |
|---|
UCrimsonGameFeatureAction_AddInputContextMapping | UGameFeatureAction ("Add Input Context Mapping") | InputMappings - applies each context to every local player through AddMappingContextWithChordTriggers and removes it on deactivate. Needs nothing on the pawn. |
FCrimsonInputMappingContextAndPriority | Struct (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_AddInputBinding | UGameFeatureAction ("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. |
ICrimsonInputConfigReceiver | UInterface (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_BindInputsNow | static 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.
| Type | Ships with | Why it matters here |
|---|
UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent | GameplayAbilities (Epic) | BP + C++ - resolves the ASC through IAbilitySystemInterface, the entry point for every ability-input forward. See How-To: Bind Ability Input. |
UAbilitySystemComponent::TryActivateAbilitiesByTag | GameplayAbilities (Epic) | BP - activates every granted ability whose Asset Tags contain the input tag. This is the Blueprint ability-input path. |
UAbilitySystemComponent::AbilitySpecInputPressed / AbilitySpecInputReleased | GameplayAbilities (Epic) | C++ - delivers a press or release edge to an already-active ability, which is how the C++ forwarder gets a true release. |
ACrimsonCharacter, UCrimsonPawnData | CrimsonCore (orientation only) | The Blueprint fast path: subclass the character, set PawnData->InputConfig, and all input auto-binds. See Concept: Full-Stack Integration & Multiplayer. |