UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InputSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/Object.h"
8#include "InputCoreTypes.h"
14
15#include "InputSettings.generated.h"
16
22UCLASS(config=Input, defaultconfig, MinimalAPI)
25{
27
28
29 UPROPERTY(config, EditAnywhere, EditFixedSize, Category="Bindings", meta=(ToolTip="List of Axis Properties"), AdvancedDisplay)
31
36 UPROPERTY(EditAnywhere, Category = "Platforms")
37 FPerPlatformSettings PlatformSettings;
38
39 UPROPERTY(config, EditAnywhere, Category="Bindings", AdvancedDisplay)
40 uint8 bAltEnterTogglesFullscreen:1;
41
42 UPROPERTY(config, EditAnywhere, Category = "Bindings", AdvancedDisplay)
43 uint8 bF11TogglesFullscreen : 1;
44
45 // Allow mouse to be used for touch
46 UPROPERTY(config, EditAnywhere, Category="MouseProperties", AdvancedDisplay)
47 uint8 bUseMouseForTouch:1;
48
49 // Mouse smoothing control
50 UPROPERTY(config, EditAnywhere, Category="MouseProperties", AdvancedDisplay)
51 uint8 bEnableMouseSmoothing:1;
52
53 // Scale the mouse based on the player camera manager's field of view
54 UPROPERTY(config, EditAnywhere, Category="MouseProperties", AdvancedDisplay)
55 uint8 bEnableFOVScaling:1;
56
58 UPROPERTY(config, EditAnywhere, Category = "ViewportProperties")
59 uint8 bCaptureMouseOnLaunch:1;
60
62 UPROPERTY(config, EditAnywhere, Category = "Input")
63 uint8 bEnableLegacyInputScales:1;
64
72 UPROPERTY(config, EditAnywhere, Category = "Input")
73 uint8 bEnableMotionControls:1;
74
79 UPROPERTY(config, EditAnywhere, Category = "Input")
80 uint8 bFilterInputByPlatformUser:1;
81
89 UPROPERTY(config, EditAnywhere, Category = "Input")
90 uint8 bShouldFlushPressedKeysOnViewportFocusLost:1;
91
96 UE_DEPRECATED(5.7, "bEnableDynamicComponentInputBinding is deprecated.")
97 UPROPERTY(config, meta = (DeprecatedProperty, DeprecationMessage = "bEnableDynamicComponentInputBinding is deprecated, it will be treated as always being true."))
98 uint8 bEnableDynamicComponentInputBinding:1;
99
101 UPROPERTY(config, EditAnywhere, Category="Mobile")
102 uint8 bAlwaysShowTouchInterface:1;
103
105 UPROPERTY(config, EditAnywhere, Category="Mobile")
106 uint8 bShowConsoleOnFourFingerTap:1;
107
109 UPROPERTY(config, EditAnywhere, Category = "Mobile")
110 uint8 bEnableGestureRecognizer:1;
111
113 UPROPERTY(config, EditAnywhere, Category = "Virtual Keyboard (Mobile)")
114 uint8 bUseAutocorrect:1;
115
119 UPROPERTY(config, EditAnywhere, Category="Bindings")
120 uint8 bEnabledLegacyMappingDeprecationWarnings : 1;
121
127 UPROPERTY(config, EditAnywhere, AdvancedDisplay, Category = "Virtual Keyboard (Mobile)")
128 TArray<FString> ExcludedAutocorrectOS;
129
131 UPROPERTY(config, EditAnywhere, AdvancedDisplay, Category = "Virtual Keyboard (Mobile)")
132 TArray<FString> ExcludedAutocorrectCultures;
133
138 UPROPERTY(config, EditAnywhere, AdvancedDisplay, Category = "Virtual Keyboard (Mobile)")
139 TArray<FString> ExcludedAutocorrectDeviceModels;
140
142 UPROPERTY(config, EditAnywhere, Category = "ViewportProperties")
143 EMouseCaptureMode DefaultViewportMouseCaptureMode;
144
146 UPROPERTY(config, EditAnywhere, Category = "ViewportProperties")
147 EMouseLockMode DefaultViewportMouseLockMode;
148
149 // The scaling value to multiply the field of view by
150 UPROPERTY(config, EditAnywhere, Category="MouseProperties", AdvancedDisplay, meta=(editcondition="bEnableFOVScaling"))
151 float FOVScale;
152
154 UPROPERTY(config, EditAnywhere, Category="MouseProperties", AdvancedDisplay)
155 float DoubleClickTime;
156
157private:
159 UPROPERTY(config, EditAnywhere, Category="Bindings")
161
163 UPROPERTY(config, EditAnywhere, Category="Bindings")
165
172 UPROPERTY(config, VisibleAnywhere, Category="Bindings")
173 TSet<FName> DeprecatedActionAndAxisNames;
174
176 UE_DEPRECATED(5.7, "SpeechMappings are deprecated. These were only used by a now deprecated platform.")
178 UPROPERTY(config, EditAnywhere, Category = "Bindings")
181
183 UPROPERTY(config, EditAnywhere, NoClear, Category = DefaultClasses)
184 TSoftClassPtr<UPlayerInput> DefaultPlayerInputClass;
185
187 UPROPERTY(config, EditAnywhere, NoClear, Category = DefaultClasses)
188 TSoftClassPtr<UInputComponent> DefaultInputComponentClass;
189
190public:
192 UPROPERTY(config, EditAnywhere, Category="Mobile", meta=(AllowedClasses="/Script/Engine.TouchInterface"))
193 FSoftObjectPath DefaultTouchInterface;
194
196 UPROPERTY(config, EditAnywhere, Category="Console")
197 TArray<FKey> ConsoleKeys;
198
199 // UObject interface
200#if WITH_EDITOR
201 ENGINE_API virtual void PostEditChangeChainProperty(struct FPropertyChangedChainEvent& PropertyChangedEvent) override;
202#endif
203
204 ENGINE_API virtual void PostReloadConfig(class FProperty* PropertyThatWasLoaded) override;
205
206 ENGINE_API void RemoveInvalidKeys();
207
208 ENGINE_API virtual void PostInitProperties() override;
209 // End of UObject interface
210
212 UFUNCTION(BlueprintPure, Category = Settings)
213 static ENGINE_API UInputSettings* GetInputSettings();
214
216 UFUNCTION(BlueprintCallable, Category = Settings)
217 ENGINE_API void AddActionMapping(const FInputActionKeyMapping& KeyMapping, bool bForceRebuildKeymaps = true);
218
219 UFUNCTION(BlueprintPure, Category = Settings)
220 ENGINE_API void GetActionMappingByName(const FName InActionName, TArray<FInputActionKeyMapping>& OutMappings) const;
221
223 UFUNCTION(BlueprintCallable, Category = Settings)
224 ENGINE_API void RemoveActionMapping(const FInputActionKeyMapping& KeyMapping, bool bForceRebuildKeymaps = true);
225
227 UFUNCTION(BlueprintCallable, Category = Settings)
228 ENGINE_API void AddAxisMapping(const FInputAxisKeyMapping& KeyMapping, bool bForceRebuildKeymaps = true);
229
231 UFUNCTION(BlueprintPure, Category = Settings)
232 ENGINE_API void GetAxisMappingByName(const FName InAxisName, TArray<FInputAxisKeyMapping>& OutMappings) const;
233
235 UFUNCTION(BlueprintCallable, Category = Settings)
236 ENGINE_API void RemoveAxisMapping(const FInputAxisKeyMapping& KeyMapping, bool bForceRebuildKeymaps = true);
237
238#if WITH_EDITOR
247 UFUNCTION()
249#endif// WITH_EDITOR
250
252 UFUNCTION(BlueprintCallable, Category=Settings)
253 ENGINE_API void SaveKeyMappings();
254
256 UFUNCTION(BlueprintCallable, Category = Settings)
257 ENGINE_API void GetActionNames(TArray<FName>& ActionNames) const;
258
259 ENGINE_API bool IsActionMappingDeprecated(const FName ActionName) const;
260 ENGINE_API void SetActionMappingDeprecated(const FName ActionName, const bool bIsDeprecated);
261
263 UFUNCTION(BlueprintCallable, Category = Settings)
264 ENGINE_API void GetAxisNames(TArray<FName>& AxisNames) const;
265
267 UFUNCTION(BlueprintCallable, Category = Settings)
268 ENGINE_API void ForceRebuildKeymaps();
269
271 ENGINE_API FName GetUniqueActionName(const FName BaseActionMappingName);
273 ENGINE_API FName GetUniqueAxisName(const FName BaseAxisMappingName);
274
276 ENGINE_API void AddActionMapping(FInputActionKeyMapping& NewMapping);
278 ENGINE_API void AddAxisMapping(FInputAxisKeyMapping& NewMapping);
279
281 ENGINE_API const TArray <FInputActionKeyMapping>& GetActionMappings() const;
283 ENGINE_API const TArray <FInputAxisKeyMapping>& GetAxisMappings() const;
284
286 UE_DEPRECATED(5.7, "Speech Mappings are deprecated. These were only used by a now deprecated platform.")
288 ENGINE_API const TArray <FInputActionSpeechMapping>& GetSpeechMappings() const;
290
292 ENGINE_API bool DoesActionExist(const FName InActionName);
294 ENGINE_API bool DoesAxisExist(const FName InAxisName);
295
297 UE_DEPRECATED(5.7, "Speech Mappings are deprecated. These were only used by a now deprecated platform.")
298 ENGINE_API bool DoesSpeechExist(const FName InSpeechName);
299
300
302 static ENGINE_API const FName GetActionMappingsPropertyName();
304 static ENGINE_API const FName GetAxisMappingsPropertyName();
305
306 // Class accessors
307 static ENGINE_API UClass* GetDefaultPlayerInputClass();
308 static ENGINE_API UClass* GetDefaultInputComponentClass();
309
315 static ENGINE_API void SetDefaultPlayerInputClass(TSubclassOf<UPlayerInput> NewDefaultPlayerInputClass);
316
323
324private:
325 void PopulateAxisConfigs();
326 void AddInternationalConsoleKey();
327};
328
329
333UENUM(BlueprintType, Meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor = "true"))
335{
336 enum Type : int32
337 {
339 Unspecified = 0x00000000,
340
342 Keypress = 0x00000001,
343
345 Pointer = 0x00000002,
346
348 Gamepad = 0x00000004,
349
351 Touch = 0x00000008,
352
354 Camera = 0x00000010,
355
357 MotionTracking = 0x00000020,
358
360 Lights = 0x00000040,
361
363 TriggerHaptics = 0x00000080,
364
366 ForceFeedback = 0x00000100,
367
369 AudioBasedVibrations= 0x00000200,
370
372 Acceleration = 0x00000400,
373
375 Virtual = 0x00000800,
376
378 Microphone = 0x00001000,
379
381 Orientation = 0x00002000,
382
384 Guitar = 0x00004000,
385
387 Drums = 0x00008000,
388
390 CustomA = 0x01000000,
391 CustomB = 0x02000000,
392 CustomC = 0x04000000,
393 CustomD = 0x08000000,
394
396 All = 0x7FFFFFFF UMETA(Hidden),
397 };
398}
399
400ENUM_CLASS_FLAGS(EHardwareDeviceSupportedFeatures::Type);
401
406UENUM(BlueprintType)
408{
411 Gamepad,
412 Touch,
416 Camera,
418
419 // Some custom devices that can be used for your game specific hardware if desired
424};
425
430USTRUCT(BlueprintType)
432{
434
436
438 const FName InClassName,
441 EHardwareDeviceSupportedFeatures::Type Flags = EHardwareDeviceSupportedFeatures::Unspecified);
442
447 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Hardware")
448 FName InputClassName;
449
454 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Hardware")
455 FName HardwareDeviceIdentifier;
456
458 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Hardware")
459 EHardwareDevicePrimaryType PrimaryDeviceType;
460
462 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Hardware", meta=(Bitmask, BitmaskEnum="/Script/Engine.EHardwareDeviceSupportedFeatures"))
463 int32 SupportedFeaturesMask;
464
466 ENGINE_API bool HasAnySupportedFeatures(const EHardwareDeviceSupportedFeatures::Type FlagsToCheck) const;
467
469 ENGINE_API bool HasAllSupportedFeatures(const EHardwareDeviceSupportedFeatures::Type FlagsToCheck) const;
470
472 ENGINE_API bool IsValid() const;
473
478 ENGINE_API FString ToString() const;
479
482
484 static ENGINE_API FHardwareDeviceIdentifier DefaultKeyboardAndMouse;
485
488
491
492 ENGINE_API bool operator==(const FHardwareDeviceIdentifier& Other) const;
493 ENGINE_API bool operator!=(const FHardwareDeviceIdentifier& Other) const;
494
497};
498
500UCLASS(config=Input, defaultconfig, MinimalAPI)
502{
504
505public:
506
508
510
511#if WITH_EDITOR
523 UFUNCTION()
525#endif // WITH_EDITOR
526
527
529 ENGINE_API const FHardwareDeviceIdentifier* GetHardwareDeviceForClassName(const FName InHardwareDeviceIdentifier) const;
530
532 ENGINE_API void AddHardwareDeviceIdentifier(const FHardwareDeviceIdentifier& InHardwareDevice);
533
535 ENGINE_API const TArray<FHardwareDeviceIdentifier>& GetHardwareDevices() const;
536
538 // Input Device Mapping
539
545 UPROPERTY(config, EditAnywhere, Category = "Device Mapping")
546 int32 MaxPlatformUserCount;
547
556 UPROPERTY(config, EditAnywhere, Category = "Device Mapping", meta=(ConsoleVariable="input.DeviceMappingPolicy"))
557 EInputDeviceMappingPolicy DeviceMappingPolicy;
558
560 // Trigger Feedback
561
567 UPROPERTY(config, EditAnywhere, Category = "Device Properties|Trigger Feedback", meta = (UIMin = "0"))
568 int32 MaxTriggerFeedbackPosition;
569
575 UPROPERTY(config, EditAnywhere, Category = "Device Properties|Trigger Feedback", meta = (UIMin = "0"))
576 int32 MaxTriggerFeedbackStrength;
577
579 // Trigger Vibrations
586 UPROPERTY(config, EditAnywhere, Category = "Device Properties|Trigger Vibration", meta = (UIMin = "0"))
587 int32 MaxTriggerVibrationTriggerPosition;
594 UPROPERTY(config, EditAnywhere, Category = "Device Properties|Trigger Vibration", meta = (UIMin = "0"))
595 int32 MaxTriggerVibrationFrequency;
602 UPROPERTY(config, EditAnywhere, Category = "Device Properties|Trigger Vibration", meta = (UIMin = "0"))
603 int32 MaxTriggerVibrationAmplitude;
604
606
607#if WITH_EDITOR
608 ENGINE_API virtual void PostEditChangeChainProperty(struct FPropertyChangedChainEvent& PropertyChangedEvent) override;
609#endif
610
612 UPROPERTY(config, EditAnywhere, Category = "Hardware")
614};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMouseLockMode
Definition EngineBaseTypes.h:57
EMouseCaptureMode
Definition EngineBaseTypes.h:42
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
EInputDeviceMappingPolicy
Definition InputDeviceMappingPolicy.h:16
EHardwareDevicePrimaryType
Definition InputSettings.h:408
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UMETA(...)
Definition ObjectMacros.h:747
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition Array.h:670
Definition SoftObjectPtr.h:763
Definition SubclassOf.h:30
Definition Class.h:3793
Definition InputComponent.h:729
Definition InputSettings.h:502
Definition InputSettings.h:25
Definition Object.h:95
Definition PlatformSettings.h:59
Definition PlayerInput.h:422
Definition InputSettings.h:335
Definition InputSettings.h:432
Definition PlayerInput.h:148
Definition PlayerInput.h:216
Definition InputCoreTypes.h:50
Definition PlatformSettings.h:25
Definition UnrealType.h:7001
Definition SoftObjectPath.h:56