CrimsonInput · Lesson 8 of 8
Chords & User Settings
Before you start
- Completed: Apply the Mapping Context
Chapters
1. Inline chords (fixed)
On an IMC key mapping, add the Crimson Dynamic Chord trigger (UInputTriggerCrimsonDynamicChord) and set its Default Chord — bRequiresShift / bRequiresCtrl / bRequiresAlt. Leave Mapping Name empty for an inline, non-rebindable chord. Matching is exact: Shift+Q does not fire a plain-Q binding, and gamepads bypass chords entirely.
2. Turn on user settings
Persistent, player-rebindable chords ride on Enhanced Input's user settings. In Project Settings → Engine → Enhanced Input: tick Enable User Settings and set User Settings Class = CrimsonInputUserSettings.
GetUserSettings() returns null and every write is dropped. This is the most common setup miss in the whole plugin.3. Make a chord rebindable
Give the action a Player Mappable Key Settings of class CrimsonPlayerMappableKeySettings with a unique Name — AddMappingContextWithChordTriggers injects the trigger automatically. Then read and write through CrimsonInputUserSettings: SetChordRequirement / GetChordRequirementWithDefaults, validate with FindChordConflict, and show the right glyphs with UCrimsonInputHelpers::GetChordDisplayTextForAction.
CrimsonAimSensitivityData), and CommonUI action binding — all on the config you just built.