Skip to main content
System decisionFramework

Game Mode, Game State, Player State, or Game Instance?

Put gameplay state in the framework class whose lifetime, authority, and replication match it.

Game ModeGame StatePlayer StateGame Instance

Recommendation

Put authoritative rules in Game Mode, shared replicated match state in Game State, replicated per-player state in Player State, and non-replicated cross-map session state in Game Instance.

Compare the options

Game Mode

Choose when

  • Server-only rules decide joining, spawning, pausing, or win conditions.
  • The logic is authoritative and belongs to the current world.

Tradeoffs

  • Game Mode exists only on the server.
  • It is recreated with the world.
Blueprint
Use Get Game Mode and a Game Mode Blueprint derived from AGameModeBase or AGameMode.
C++
Derive from AGameModeBase. Use AGameMode when its match state machine is needed.

Game State

Choose when

  • Every client needs world or match state.
  • The data includes match phase, team score, objectives, or synchronized server time.

Tradeoffs

  • The state replicates to clients.
  • Secret server-only values do not belong here.
Blueprint
Use Get Game State and a Game State Blueprint.
C++
Derive from AGameStateBase or AGameState and pair it with the matching Game Mode family.

Player State

Choose when

  • Data belongs to one player and must replicate.
  • The data needs to survive Pawn replacement or respawn.
  • Other players may need to see the value.

Tradeoffs

  • Player States are available through the Game State player list.
  • Private owner-only data needs a different replication design.
Blueprint
Use Get Player State and a Player State Blueprint.
C++
Derive from APlayerState.

Game Instance

Choose when

  • Process-local state must survive map travel.
  • The data coordinates the current game session on one machine.

Tradeoffs

  • Every machine has its own non-replicated Game Instance.
  • The data is lost when the process exits.
Blueprint
Use Get Game Instance and cast to the project Game Instance type when needed.
C++
Derive from UGameInstance or move modular services into UGameInstanceSubsystem.

Requirements

All four framework classes are built into Engine. Multiplayer state still needs explicit replication where applicable.

Example

Game Mode validates a capture. Game State replicates team scores. Player State stores each player's captures. Game Instance remembers the locally selected playlist across map loads.

Epic documentation

Related guides

Unreal Directive is free and ad-free.

If it saved you time, you can help keep it that way.

Donate