UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Console.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"
10#include "ConsoleSettings.h"
11
12#include "Console.generated.h"
13
14class FViewport;
15class SWidget;
17class FCanvasTextItem;
18class FCanvasTileItem;
19class UFont;
20
24USTRUCT()
26{
28
29
30 UPROPERTY()
31 int32 IndexChar;
32
34 UPROPERTY()
35 TArray<int32> AutoCompleteListIndices;
36
39
41 {
42 IndexChar = INDEX_NONE;
43 }
44
46 {
47 IndexChar = NewChar;
48 }
49
51 {
52 for (int32 Idx = 0; Idx < ChildNodes.Num(); Idx++)
53 {
54 FAutoCompleteNode *Node = ChildNodes[Idx];
55 delete Node;
56 }
57 ChildNodes.Empty();
58 }
59};
60
61
65UCLASS(Within=GameViewportClient, config=Input, transient, MinimalAPI)
69{
71
72
73 UPROPERTY()
74 TObjectPtr<class ULocalPlayer> ConsoleTargetPlayer;
75
76 UPROPERTY()
77 TObjectPtr<class UTexture2D> DefaultTexture_Black;
78
79 UPROPERTY()
80 TObjectPtr<class UTexture2D> DefaultTexture_White;
81
83 TArray<FString> Scrollback;
84
86 int32 SBHead;
87
89 int32 SBPos;
90
92 static const int32 MAX_HISTORY_ENTRIES = 50;
93
95 UPROPERTY(config)
96 TArray<FString> HistoryBuffer;
97
99 FString TypedStr;
100
101 int32 TypedStrPos; //Current position in TypedStr
102
104 FString PrecompletedInputLine;
105
107 FString LastAutoCompletedCommand;
108
113 uint32 bCaptureKeyInput:1;
114
116 uint32 bCtrl:1;
117
119 uint32 bShift:1;
120
122 TArray<FAutoCompleteCommand> AutoCompleteList;
123
125 uint32 bAutoCompleteLocked:1;
126
128 int32 AutoCompleteIndex;
129
131 int32 AutoCompleteCursor;
132
134 uint32 bIsRuntimeAutoCompleteUpToDate:1;
135
136 // NAME_Typing, NAME_Open or NAME_None
137 FName ConsoleState;
138
139 FAutoCompleteNode AutoCompleteTree;
140
142 TArray<FAutoCompleteCommand> AutoComplete;
143
144 // Scrollback region selection mouse and state
145 struct ScrollbackSelection
146 {
147 FVector2f MousePosDown = FVector2f(0.0f, 0.0f);
148 FVector2f MousePosUp = FVector2f(0.0f, 0.0f);
149 FVector2f MousePos = FVector2f(0.0f, 0.0f);
150 bool bActive = false;
151 bool bCapture = false;
152 bool bMade = false;
153 float Offset = 0.0f;
154 } Selection;
155
156 float TextW = 15.0f;
157 float TextH = 15.0f;
158
160
161 // UObject Interface
162 ENGINE_API virtual void PostInitProperties() override;
163
165 ENGINE_API virtual void SetInputText( const FString& Text );
166
168 ENGINE_API virtual void SetCursorPos( int32 Position );
169
174 ENGINE_API virtual void ConsoleCommand(const FString& Command);
175
179 ENGINE_API virtual void ClearOutput();
180
187 ENGINE_API virtual void OutputText(const FString& Text);
188
194 ENGINE_API virtual void StartTyping(const FString& Text);
195
199 ENGINE_API virtual void FlushPlayerInput();
200
202 ENGINE_API virtual bool ProcessControlKey(FKey Key, EInputEvent Event);
203
205 ENGINE_API virtual bool ProcessShiftKey(FKey Key, EInputEvent Event);
206
208 ENGINE_API virtual void AppendInputText(const FString& Text);
209
211 ENGINE_API virtual void BuildRuntimeAutoCompleteList(bool bForce = false);
212
214 ENGINE_API virtual void AugmentRuntimeAutoCompleteList(TArray<FAutoCompleteCommand>& List);
215
217 ENGINE_API virtual void UpdateCompleteIndices();
218
228 ENGINE_API virtual bool InputChar_Typing(FInputDeviceId DeviceId, const FString& Unicode);
229
233 ENGINE_API virtual void PostRender_Console_Typing(class UCanvas* Canvas);
234
236 ENGINE_API virtual void BeginState_Typing(FName PreviousStateName);
237
239 ENGINE_API virtual void EndState_Typing( FName NextStateName );
240
244 ENGINE_API virtual bool InputChar_Open( FInputDeviceId DeviceId, const FString& Unicode );
245
257 ENGINE_API virtual bool InputKey_Open(FInputDeviceId DeviceId, FKey Key, EInputEvent Event, float AmountDepressed = 1.f, bool bGamepad = false);
258
262 ENGINE_API virtual void PostRender_Console_Open(class UCanvas* Canvas);
263
265 ENGINE_API virtual void BeginState_Open(FName PreviousStateName);
266
268 ENGINE_API virtual void EndState_Open(FName NextStateName);
269
270 ENGINE_API virtual bool InputChar(FInputDeviceId DeviceId, const FString& Unicode);
271
272 ENGINE_API virtual bool InputKey(FInputDeviceId DeviceId, FKey Key, EInputEvent Event, float AmountDepressed=1.f, bool bGamepad=false);
273
274 virtual bool InputAxis(FInputDeviceId DevideId, FKey Key, float Delta, float DeltaTime, int32 NumSamples=1, bool bGamepad=false) { return false; };
275
276 virtual bool InputTouch(FInputDeviceId DevideId, uint32 Handle, ETouchType::Type Type, const FVector2D& TouchLocation, float Force, FDateTime DeviceTimestamp, uint32 TouchpadIndex) { return false; }
277
278 ENGINE_API virtual void MouseMove(FViewport* Viewport, int32 X, int32 Y);
279 ENGINE_API virtual void CapturedMouseMove(FViewport* InViewport, int32 X, int32 Y);
280
282 ENGINE_API virtual void PostRender_Console(class UCanvas* Canvas);
283
285 ENGINE_API virtual void FakeGotoState(FName NextStateName);
286
287 ENGINE_API virtual bool ConsoleActive() const;
288
289 ENGINE_API void InvalidateAutocomplete();
290
293 static ENGINE_API FRegisterConsoleAutoCompleteEntries RegisterConsoleAutoCompleteEntries;
294
297 static ENGINE_API FOnConsoleActivationStateChanged OnConsoleActivationStateChanged;
298
299private:
300
301 bool InputKey_InputLine(FInputDeviceId DeviceId, FKey Key, EInputEvent Event, float AmountDepressed = 1.f, bool bGamepad = false);
302
303 // interface FOutputDevice
304 ENGINE_API virtual void Serialize( const TCHAR* V, ELogVerbosity::Type Verbosity, const class FName& Category ) override;
305 // expose the base class other Serialize function (clang will give "error : 'UConsole::Serialize' hides overloaded virtual function" without this)
306 using UObject::Serialize;
307
312 void OutputTextLine(const FString& Text);
313
314 void PostRender_InputLine(class UCanvas* Canvas, FIntPoint UserInputLinePos);
315
316 void SetAutoCompleteFromHistory();
317
318 void SetInputLineFromAutoComplete();
319
320 void UpdatePrecompletedInputLine();
321
322 void NormalizeHistoryBuffer();
323
324 // Scrollback region selection utilities
325 void DrawLine(
327 FCanvasTextItem ConsoleText, const FString& Line, float PenX, float PenY, float PosLeft,
329 void GetPosInTextLine(UCanvas* Canvas, UFont* Font, const FString& Line, float MousePosX, float& PosInLine, int32& PosInString);
330 float GetPosTextLineEnd(UCanvas* Canvas, UFont* Font, const FString& Line);
331
332 // Console settings from BaseInput.ini
333 const UConsoleSettings* ConsoleSettings;
334
335 // Widget that was focused before the console was opened (focus will be restored to this if it's valid after the console closes)
336 TWeakPtr<SWidget> PreviousFocusedWidget;
337
338 // Previous mouse capture mode of the viewport before the console was opened (mouse capture mode must be restored to its previous state)
340
341 const bool bDPIAwareStringMeasurement = true;
342};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
EInputEvent
Definition EngineBaseTypes.h:31
EMouseCaptureMode
Definition EngineBaseTypes.h:42
#define X(Name, Desc)
Definition FormatStringSan.h:47
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition CanvasItem.h:495
Definition CanvasItem.h:99
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition UnrealClient.h:412
Definition SWidget.h:165
Definition Array.h:670
Definition SharedPointer.h:1295
Definition Canvas.h:159
Definition ConsoleSettings.h:62
Definition Console.h:69
Definition Font.h:111
Definition Object.h:95
virtual COREUOBJECT_API void Serialize(FArchive &Ar)
Type
Definition LogVerbosity.h:17
Type
Definition InputCoreTypes.h:775
Definition ConsoleSettings.h:16
Definition Console.h:26
~FAutoCompleteNode()
Definition Console.h:50
FAutoCompleteNode(int32 NewChar)
Definition Console.h:45
Definition DateTime.h:76
Definition CoreMiscDefines.h:524
Definition InputCoreTypes.h:50
Definition ObjectPtr.h:488
Definition IntPoint.h:25