UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GameSession.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
7#pragma once
8
9#include "CoreMinimal.h"
11#include "GameFramework/Actor.h"
12#include "Online/CoreOnline.h"
13#include "GameFramework/Info.h"
14#include "GameSession.generated.h"
15
17class Error;
18struct FUniqueNetIdRepl;
19
21
26UCLASS(config=Game, notplaceable, MinimalAPI)
27class AGameSession : public AInfo
28{
30
31
33 int32 MaxSpectators;
34
37 int32 MaxPlayers;
38
40 UPROPERTY()
41 int32 MaxPartySize;
42
45 uint8 MaxSplitscreensPerConnection;
46
49 bool bRequiresPushToTalk;
50
52 UPROPERTY()
53 FName SessionName;
54
56 ENGINE_API virtual void InitOptions(const FString& Options);
57
59 ENGINE_API int32 GetNextPlayerID();
60
61 //=================================================================================
62 // LOGIN
63
68 ENGINE_API virtual bool ProcessAutoLogin();
69
71 ENGINE_API virtual void OnAutoLoginComplete(int32 LocalUserNum, bool bWasSuccessful, const FString& Error);
72
78 ENGINE_API virtual FString ApproveLogin(const FString& Options);
79
86 ENGINE_API virtual void RegisterPlayer(APlayerController* NewPlayer, const FUniqueNetIdRepl& UniqueId, bool bWasFromInvite);
87
93 ENGINE_API virtual void PostLogin(APlayerController* NewPlayer);
94
96 ENGINE_API virtual bool AtCapacity(bool bSpectator);
97
98 //=================================================================================
99 // LOGOUT
100
106 ENGINE_API virtual void NotifyLogout(const APlayerController* PC);
107
114 ENGINE_API virtual void NotifyLogout(FName InSessionName, const FUniqueNetIdRepl& UniqueId);
115
122 ENGINE_API virtual void UnregisterPlayer(FName InSessionName, const FUniqueNetIdRepl& UniqueId);
123
124 ENGINE_API virtual void UnregisterPlayers(FName InSessionName, const TArray< FUniqueNetIdRepl >& Players);
125
131 ENGINE_API virtual void UnregisterPlayer(const APlayerController* ExitingPlayer);
132
138 ENGINE_API virtual void AddAdmin(APlayerController* AdminPlayer);
139
145 ENGINE_API virtual void RemoveAdmin(APlayerController* AdminPlayer);
146
155 ENGINE_API virtual bool KickPlayer(APlayerController* KickedPlayer, const FText& KickReason);
156
165 ENGINE_API virtual bool BanPlayer(APlayerController* BannedPlayer, const FText& BanReason);
166
168 ENGINE_API virtual void ReturnToMainMenuHost();
169
174 ENGINE_API virtual void PostSeamlessTravel();
175
176 //=================================================================================
177 // SESSION INFORMATION
178
180 virtual void Restart() {}
181
183 ENGINE_API virtual void RegisterServer();
184
186 ENGINE_API virtual void RegisterServerFailed();
187
196 ENGINE_API virtual bool GetSessionJoinability(FName InSessionName, FJoinabilitySettings& OutSettings);
197
207 ENGINE_API virtual void UpdateSessionJoinability(FName InSessionName, bool bPublicSearchable, bool bAllowInvites, bool bJoinViaPresence, bool bJoinViaPresenceFriendsOnly);
208
213 virtual bool RequiresPushToTalk() const { return bRequiresPushToTalk; }
214
216 ENGINE_API virtual void DumpSessionState();
217
218 //=================================================================================
219 // MATCH INTERFACE
220
222 ENGINE_API virtual bool HandleStartMatchRequest();
223
225 ENGINE_API virtual void HandleMatchIsWaitingToStart();
226
228 ENGINE_API virtual void HandleMatchHasStarted();
229
231 ENGINE_API virtual void HandleMatchHasEnded();
232
234 ENGINE_API virtual bool CanRestartGame();
235
236private:
237 // Hidden functions that don't make sense to use on this class.
239
240protected:
247 ENGINE_API virtual void OnStartSessionComplete(FName InSessionName, bool bWasSuccessful);
248
255 ENGINE_API virtual void OnEndSessionComplete(FName InSessionName, bool bWasSuccessful);
256
260 ENGINE_API virtual void PostReloadConfig(FProperty* PropertyThatWasLoaded) override;
261
262private:
263
265 TOptional<int32> MaxPlayersOptionOverride;
266
268 TOptional<int32> MaxSpectatorsOptionOverride;
269};
270
277
278
#define HIDE_ACTOR_TRANSFORM_FUNCTIONS()
Definition Actor.h:5033
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
ENGINE_API APlayerController * GetPlayerControllerFromNetId(UWorld *World, const FUniqueNetIdRepl &PlayerNetId)
Definition GameSession.cpp:28
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
@ Restart
Definition PrecomputedVolumetricLightmapStreaming.cpp:25
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition GameSession.h:28
Definition PlayerController.h:261
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition Text.h:385
Definition Array.h:670
Definition World.h:918
Definition CoreOnline.h:44
Definition OnlineReplStructs.h:26
Definition Optional.h:131