UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GameStateBase.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"
10#include "GameFramework/Info.h"
12#include "Stats/Stats.h"
13#include "GameStateBase.generated.h"
14
15class APlayerState;
16class ASpectatorPawn;
17
19
21
22class AGameModeBase;
23class ASpectatorPawn;
24class APlayerState;
25class AController;
26
31UCLASS(config=Game, notplaceable, BlueprintType, Blueprintable, MinimalAPI)
33{
35
36public:
37
38 //~=============================================================================
39 // General accessors and variables
40
42 UPROPERTY(Transient, BlueprintReadOnly, Category=GameState, ReplicatedUsing=OnRep_GameModeClass)
43 TSubclassOf<AGameModeBase> GameModeClass;
44
46 UPROPERTY(Transient, BlueprintReadOnly, Category=GameState)
47 TObjectPtr<AGameModeBase> AuthorityGameMode;
48
50 UPROPERTY(Transient, BlueprintReadOnly, Category=GameState, ReplicatedUsing=OnRep_SpectatorClass)
51 TSubclassOf<ASpectatorPawn> SpectatorClass;
52
54 UPROPERTY(Transient, BlueprintReadOnly, Category=GameState)
56
58 virtual void AsyncPackageLoaded(UObject* Package) {}
59
61 ENGINE_API const AGameModeBase* GetDefaultGameMode() const;
62
64 template< class T >
65 const T* GetDefaultGameMode() const
66 {
67 return Cast<T>(GetDefaultGameMode());
68 }
69
71 UFUNCTION(BlueprintCallable, Category=GameState)
72 ENGINE_API virtual double GetServerWorldTimeSeconds() const;
73
75 UFUNCTION(BlueprintCallable, Category=GameState)
76 ENGINE_API virtual bool HasBegunPlay() const;
77
79 UFUNCTION(BlueprintCallable, Category=GameState)
80 ENGINE_API virtual bool HasMatchStarted() const;
81
83 UFUNCTION(BlueprintCallable, Category = Game)
84 ENGINE_API virtual bool HasMatchEnded() const;
85
87 UFUNCTION(BlueprintCallable, Category=GameState)
88 ENGINE_API virtual float GetPlayerStartTime(AController* Controller) const;
89
91 UFUNCTION(BlueprintCallable, Category=GameState)
92 ENGINE_API virtual float GetPlayerRespawnDelay(AController* Controller) const;
93
95
97 ENGINE_API APlayerState* GetPlayerStateFromUniqueNetId(const FUniqueNetIdWrapper& InPlayerId) const;
98
99 //~=============================================================================
100 // Interaction with GameModeBase
101
103 ENGINE_API virtual void ReceivedGameModeClass();
104
106 ENGINE_API virtual void ReceivedSpectatorClass();
107
109 ENGINE_API virtual void SeamlessTravelTransitionCheckpoint(bool bToTransitionMap);
110
112 ENGINE_API virtual void AddPlayerState(APlayerState* PlayerState);
113
115 ENGINE_API virtual void RemovePlayerState(APlayerState* PlayerState);
116
118 ENGINE_API virtual void HandleBeginPlay();
119
120 //~ Begin AActor Interface
121 ENGINE_API virtual void PostInitializeComponents() override;
122 //~ End AActor Interface
123
124protected:
125
127 UFUNCTION()
128 ENGINE_API virtual void OnRep_GameModeClass();
129
131 UFUNCTION()
132 ENGINE_API virtual void OnRep_SpectatorClass();
133
135 UFUNCTION()
136 ENGINE_API virtual void OnRep_ReplicatedHasBegunPlay();
137
139 UPROPERTY(Transient, ReplicatedUsing = OnRep_ReplicatedHasBegunPlay)
140 bool bReplicatedHasBegunPlay;
141
143 ENGINE_API virtual void UpdateServerTimeSeconds();
144
146 UFUNCTION()
147 ENGINE_API virtual void OnRep_ReplicatedWorldTimeSecondsDouble();
148
150 UPROPERTY(Transient, ReplicatedUsing = OnRep_ReplicatedWorldTimeSecondsDouble)
151 double ReplicatedWorldTimeSecondsDouble;
152
155 float ServerWorldTimeSecondsDelta;
156
158 UPROPERTY(EditDefaultsOnly, Category=GameState)
159 float ServerWorldTimeSecondsUpdateFrequency;
160
162 FTimerHandle TimerHandle_UpdateServerTimeSeconds;
163
165 double SumServerWorldTimeSecondsDelta;
167 uint32 NumServerWorldTimeSecondsDeltas;
168
169private:
170 // Hidden functions that don't make sense to use on this class.
172
175};
176
177
178
#define HIDE_ACTOR_TRANSFORM_FUNCTIONS()
Definition Actor.h:5033
#define TEXT(x)
Definition Platform.h:1272
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Controller.h:41
virtual ENGINE_API void GetLifetimeReplicatedProps(TArray< FLifetimeProperty > &OutLifetimeProps) const override
Definition Controller.cpp:797
TObjectPtr< APlayerState > PlayerState
Definition Controller.h:50
virtual ENGINE_API void PostInitializeComponents() override
Definition Controller.cpp:299
Definition GameStateBase.h:33
const T * GetDefaultGameMode() const
Definition GameStateBase.h:65
Definition PlayerState.h:42
Definition SpectatorPawn.h:17
Definition ReplayHelper.h:33
Definition Array.h:670
Definition SubclassOf.h:30
Definition DemoNetDriver.h:154
Definition Object.h:95
Definition TimerHandle.h:12
Definition CoreOnline.h:504
Definition ObjectPtr.h:488