Session Manager

Updated May 25, 2026

The Session Manager owns the project-side session flow: playlists, game settings, session settings, lobby/game transitions, server-browser data, and saved session configuration. It is the concrete manager layer that game mode systems and the broader Online Multiplayer Framework build around.

Use this page when you need to understand AC_SessionManager_Base, AC_Session_Communicator, BP_Save_Session_Configuration, playlist data, game settings, and session lifecycle behavior. For Steam, EOS, GameInstance, compatibility files, and platform-specific setup, use the Online Multiplayer Framework page.

For shared setup guidance, see the Migration Guide and Integration Guide. Use the System Atlas to look up functions, variables, events, components, and ownership references.

Related Videos

Some videos may have been recorded before V4. The same principles still apply, but asset names, component names, and folder locations may differ. Use this written page and the current V4 names as the source of truth.

  • Host and Join Lobbies and Games with Advanced Setting Management in your Game
    Play

For the full OMF platform setup context, see Online Multiplayer Framework.

System Overview

The Session Manager supports survival sessions, Battle Royale-style sessions, round-based shooter lobbies, and custom game modes that need configurable match settings.

  1. Create or select a playlist.
  2. Configure session settings such as name, password, region, and max players.
  3. Configure game settings such as kills to win, AI difficulty, fill bots, or time limit.
  4. Host the session.
  5. Optionally enter a lobby first, or skip directly to the game.
  6. Players join through the server browser.
  7. The Game Mode System determines when the active game completes.
  8. The Session Manager moves to the next playlist entry, returns to lobby, restarts the playlist, or disbands the session.

Hosting Flow screenshot

Core Components

Component or assetLocationResponsibility
BP_Save_Session_ConfigurationSave GameStores user-created playlists, predefined read-only playlists, session settings, game settings, and the default playlist example.
AC_SessionManager_BaseGameStateHosts lobbies and games, handles game-to-game transitions, manages the session lifecycle, and routes online subsystem work.
AC_Session_CommunicatorPlayerControllerReplicates playlist and settings data to clients, manages transition widgets, adds player-side online subsystem components, and creates in-game HUD where configured.
AC_OnlineSubsystemManagerGameStateBase manager for online subsystem session creation and discovery behavior.
AC_PC_OnlineSubSystem_AbstractPlayerControllerPlayer-side online subsystem behavior such as login, finding sessions, and joining sessions.

Playlists

Playlists are ordered sequences of games. Each game can use a different level, game type, and settings. This supports flows such as a Call of Duty-style map rotation, a GTA-style race playlist, or a single persistent survival session.

Creating a Playlist screenshot

F_Playlist

FieldPurpose
Playlist NameUser-defined playlist name.
GamesArray of F_GameConfig entries.
Playlist IndexCurrent game index in the playlist.
Is EditableTrue for user-created playlists; false for predefined playlists stored in BP_Save_Session_Configuration.

Example playlist: Deathmatch Rotation with Map_Shipment, Map_Crossfire, and Map_Crash. The index starts at 0, advances after each game, and can restart or disband after the final entry.

F_GameConfig

Each playlist game contains the level to load, the game type gameplay tag, and the game settings for that game type.

  • Level: the map to load, such as Map_Shipment.
  • Game Type: gameplay tag identifying the mode, such as Team Deathmatch or Domination.
  • Game Settings: array of Struct_GameConfigSetting values.

Predefined and User Playlists

Predefined playlists are stored in BP_Save_Session_Configuration with Is Editable set to false. They are useful for defaults such as Default Playlist, Quick Match, or Ranked Rotation.

User playlists are created in the game menu, saved to BP_Save_Session_Configuration, and can be created, edited, or deleted by the player.

Game Settings

Game Settings are game-type-specific values that control gameplay. A Team Deathmatch game might expose Kills to Win, Points per Kill, AI Difficulty, Fill with Bots, and Time Limit. A Domination game might expose Points to Win, Capture Speed, Spawn Protection, and AI Difficulty. A Survival game might expose Day Length, Difficulty Scaling, Starting Resources, and PvP Enabled.

Configuring Settings screenshot

Struct_GameConfigSetting

FieldPurpose
Settings TagGameplay tag that identifies the setting, such as GameSettings.TeamDeathmatch.KillsToWin.
Is EditableControls whether the user can modify this setting.
Value TypeString, Bool, or Number.
String ValueValue used when the type is String.
Bool ValueValue used when the type is Bool.
Number ValueValue used when the type is Number.
Number Range Min / MaxSlider range for numeric settings.
Number IncrementStep size for numeric settings.
Prefix / SuffixDisplay text around the value, such as $, Level , kills, minutes, or %.

Examples:

  • GameSettings.TeamDeathmatch.KillsToWin: Number value 50, range 10-200, increment 5, suffix kills.
  • GameSettings.General.AIDifficulty: String value such as Easy, Medium, Hard, or Expert, with display prefix Difficulty: .
  • GameSettings.General.FillBots: Bool value shown as Fill with Bots: Yes or No.

Setting Types

TypeUse forExamples
StringDropdown selections or text values.Difficulty, weather, starting loadout.
BoolOn/off toggles.Fill with bots, friendly fire, respawn allowed.
NumberNumeric values with range and increment.Kills to win, time limit, AI count, damage multiplier.

Session Settings and Configuration

Session Settings apply to the whole session, not to a single playlist game. They include Session Name, optional Password, Region, and Max Players.

Settings and playlists are stored in BP_Save_Session_Configuration, a Save Game Blueprint. User-created playlists and setting changes persist between game sessions and are loaded on startup.

A typical host flow is:

  1. Create or select a playlist.
  2. Set session settings such as name, password, region, and max players.
  3. Set game settings for the selected game type.
  4. Save the configuration.
  5. Host the session.

Hosting and Joining

Hosting

AC_SessionManager_Base hosts lobbies and games from the GameState. A host can choose whether to enter a lobby first or skip directly to the game. The lobby flow allows players to join, chat, select teams, and prepare before the host starts the game.

The Session Manager also handles game-to-game transitions. When the active game completes, it can advance to the next playlist entry, return to the lobby, restart the playlist, or disband the session.

Server Browser and Joining

The server browser lets players find and join sessions.

Finding Sessions screenshot

Displayed session data can include session name, host name, player count, max players, current game type, current map, region, password protection, ping, and session status. For password-protected sessions, the host sets a password in the session settings and joining players must enter it before joining.

Replication and Transition UI

AC_Session_Communicator replicates playlist data, session settings, and game settings to clients so UI and gameplay logic can display the same data as the host. It also creates transition widgets for loading screens and can create the in-game HUD after travel.

Online Subsystem Boundary

The Session Manager routes session operations through online subsystem components when the project uses them, but the full Steam/EOS installation and platform configuration belongs in the Online Multiplayer Framework documentation.

Default vs Custom Subsystems screenshot

Online Subsystem Manager Components screenshot

ComponentRole
AC_OnlineSubsystemManagerBase GameState manager for creating lobbies/games and handling subsystem-level session behavior.
AC_OnlineSubsystemManager_EOSEOS-specific manager implementation, using EOS integration behavior for lobby and session handling.
AC_OnlineSubsystemManager_SteamSteam-specific manager implementation, using Steam integration behavior for lobby and session handling.
AC_OnlineSubsystemPlayer_EOSPlayerController-side EOS behavior for login, finding sessions, and joining.
AC_OnlineSubsystemPlayer_SteamPlayerController-side Steam behavior for login, finding sessions, and joining.

The two-component approach keeps server/session management on the GameState and player-specific login/search/join behavior on the PlayerController. Keep this page focused on how Session Manager uses those components. Use the OMF page for plugin installation, compatibility files, GameInstance selection, EOS/Steam configuration, and dedicated server notes.

Game Mode Integration

The Game Mode System determines when the active game has completed. The Session Manager then decides what happens next: move to the next game in the playlist, return to lobby, restart the playlist, or disband the session. Keep match rules in the Game Mode System and session flow in the Session Manager.

How-to Guides

Create a Playlist

  1. Open the playlist creator.
  2. Name the playlist.
  3. Add one or more games.
  4. For each game, choose the map, game type, and game settings.
  5. Save the playlist to BP_Save_Session_Configuration.

Add Game Settings

  1. Define a Struct_GameConfigSetting.
  2. Set the settings tag, editability, value type, value, range, increment, prefix, and suffix as needed.
  3. Add it to the relevant game type.
  4. Expose it in the UI as a dropdown, checkbox, slider, or input based on its value type.
  5. Read the setting from game mode or gameplay logic where needed.

Host a Session

  1. Select a playlist.
  2. Configure session settings such as name, password, region, and max players.
  3. Configure game settings such as kills to win, AI difficulty, fill bots, or time limit.
  4. Choose whether to use the lobby flow or skip directly to game.
  5. Host the session.
  6. Verify that players can find and join it from the server browser.

Summary

The Session Manager owns the project-side multiplayer session flow: playlists, session settings, game settings, lobbies, server-browser data, transitions, and saved configuration. BP_Save_Session_Configuration stores persistent playlist and setting data. AC_SessionManager_Base runs the host/session lifecycle from the GameState, while AC_Session_Communicator keeps clients synchronized from the PlayerController.

Use the Session Manager for session structure and persistence. Use the Game Mode System for match rules, win conditions, scoring behavior, rounds, and game-specific logic.