Game Mode System
Updated May 25, 2026
The Game Mode System extends the Session Manager with arena-focused game loop functionality: waiting phases, main game timers, win conditions, round handling, player freezing, AI fill, multi-game-type maps, and implemented game mode components.
Use this page after the Session Manager is understood. The Game Mode System inherits session hosting, playlists, level transitions, session settings, and game settings from the Session Manager, then adds match rules and game-specific behavior. 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 Video
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.
Multiplayer Shooter Game Modes System Devlog Play
Prerequisites and Related Systems
Session Manager is required. Without it, the Game Mode System cannot host sessions, use playlists, or use the game mode feature flow described here.
- Set up the Session Manager.
- Configure session hosting, playlists, game settings, and lobby behavior.
- Add the Game Mode System component for the specific arena mode.
| System | Role in game modes |
|---|---|
| Session Manager | Hosts sessions, manages playlists, handles level transitions, stores session/game settings, and controls the lobby flow. |
| Score Manager | Tracks kills, deaths, assists, player score, team score, objective score, scoreboard data, and score-based win conditions. |
| Team Manager | Handles team assignment, team balancing, team composition, and AI team assignment for team modes. |
| Player Manager | Tracks player state, player data, and player participation used by game mode logic. |
Core Architecture
The main arena component is AC_GS_SessionManager_Arena_Base. It lives on the GameState, inherits from AC_SessionManager_Base, and adds the arena game loop.

AC_SessionManager_Base
AC_GS_SessionManager_Arena_Base
AC_GS_SessionManager_Arena_TeamDeathMatch
AC_GS_SessionManager_Arena_SearchAndDestroy
AC_GS_SessionManager_Arena_FreeForAll
AC_GS_SessionManager_Arena_Domination
AC_GS_SessionManager_Arena_CaptureTheFlag
AC_GS_SessionManager_Arena_BattleRoyale
AC_GS_SessionManager_Arena_Zombies
AC_GS_SessionManager_Arena_ExtractionAC_GS_SessionManager_Arena_Base inherits session hosting, level transitions, playlist management, session settings, and game settings from the Session Manager. It adds waiting/main/end phases, player freezing, minimum-player checks, round handling, win condition checks, AI spawning, and actor filtering for multi-game-type maps.
Specific game mode components override or extend game start logic, win condition checks, score calculation, and game-specific mechanics such as bomb planting, flag captures, control point ownership, or Battle Royale zone behavior.
Game Loop
The Game Mode System uses four main phases.
| Phase | Purpose | Typical behavior |
|---|---|---|
| Waiting for Start | Prepare the match before active gameplay. | Wait for the minimum player count, run the waiting timer, optionally freeze players, and display countdown feedback. |
| Main Game | Run active gameplay. | Unfreeze players if needed, start the main timer, track score/objectives, and continuously check win conditions. |
| Game or Round End | Determine the winner and decide whether the match continues. | Evaluate score, objective completion, round winner, or time expiry; show scoreboard; advance to next round or finish the match. |
| After Game | Return control to session flow. | The Session Manager loads the next playlist entry, returns to lobby, or disbands the session. |
Waiting for Start
The waiting phase starts after the level loads. Players spawn, the system checks Minimum Players to Start, and the countdown begins once enough players are present.
- Waiting for Start Time controls the countdown duration.
- Freeze Players controls whether players can move, shoot, use abilities, or interact during the wait.
- When the countdown reaches zero, the system transitions into the main game phase.
A Call of Duty-style setup might use Minimum Players to Start: 2, Waiting for Start Time: 10 seconds, and Freeze Players: True. A Battle Royale-style spawn island can use a higher minimum player count, a longer countdown, and Freeze Players: False.
Main Game
The main game phase starts active gameplay. The system starts the Main Loop Time, tracks score through the Score Manager, and checks whether the configured score requirement, objective requirement, or time limit has been reached.
- Team Deathmatch: first team to the kill requirement or highest score at time limit.
- Search and Destroy: round winner based on objective completion, elimination, or time.
- Domination: first team to the point requirement or highest score at time limit.
Game End and Rounds
When the game or round ends, the system determines the winner, shows the scoreboard, and either starts another round or ends the match. Round-based games track round wins separately from per-round score.
For a round-based Search and Destroy setup with Rounds to Win: 6, each round determines a winner, increments that team’s round count, then continues until one team reaches six round wins.
Game Settings
Arena settings are stored as F_Game_Setting entries in addition to Session Manager settings. DA_GameMode_Defaults data assets provide defaults per game type, and players or hosts can override settings through the game settings flow where supported.

| Setting | Type | Purpose |
|---|---|---|
| Waiting for Start Time | Number | Countdown duration before the game begins. |
| Main Loop Time | Number | Duration of the main gameplay phase. |
| Minimum Players to Start | Number | Minimum player count required before the waiting countdown starts. |
| Freeze Players | Boolean | Whether players are frozen during the waiting phase. |
| Round-Based | Boolean | Whether this game mode uses the round system. |
| Rounds to Win | Number | Number of round wins required to win the game when Round-Based is true. |
| Fill Lobby with AI | Boolean | Whether AI should fill empty player slots. |
Default data assets follow the pattern DA_GameMode_Defaults_[GameType], including DA_GameMode_Defaults_TeamDeathmatch, DA_GameMode_Defaults_SearchAndDestroy, DA_GameMode_Defaults_Domination, DA_GameMode_Defaults_CaptureTheFlag, DA_GameMode_Defaults_FreeForAll, DA_GameMode_Defaults_BattleRoyale, DA_GameMode_Defaults_Zombies, and DA_GameMode_Defaults_Extraction.
Example Defaults
| Mode | Example settings |
|---|---|
| Team Deathmatch | Kills to Win: 50; Time Limit: 10 minutes; Kill Score: 100; Assist Score: 50; Death Score: -10; Round-Based: False. |
| Search and Destroy | Round-Based: True; Rounds to Win: 6; Round Time Limit: 2 minutes; Plant Score: 200; Defuse Score: 200; Kill Score: 100. |
| Domination | Points to Win: 200; Time Limit: 15 minutes; Capture Score: 100; Control Score: 10 points per second; Kill Score: 50. |
| Capture the Flag | Captures to Win: 3; Time Limit: 10 minutes; Capture Score: 500; Return Score: 100; Kill Score: 50. |
| Battle Royale | Players: 100; Freeze Players: False; spawn island flow; custom zone shrink timing; last team standing wins. |
Player and AI Management
Player Freezing
Freeze Players prevents movement, shooting, ability use, and interaction during the waiting phase. Use it for fair arena starts. Disable it for spawn island or open-world-style flows where players should move before the match begins.
Minimum Players and Ready State
Minimum Players to Start prevents the countdown from starting too early. Players are considered ready as soon as they join; there is no manual ready-up button in this flow.
- Team Deathmatch: commonly needs at least two players, one per team.
- Battle Royale: commonly needs a higher minimum count for a meaningful game.
- Free for All: commonly needs several competitors.
AI Fill and Replacement
Fill Lobby with AI lets AC_GS_SessionManager_Arena_Base spawn AI to fill empty player slots when the game starts. The system checks current player count, max players from session settings, calculates empty slots, spawns AI, and uses the Team Manager for team assignment.
Example: with Max Players: 16, Fill Lobby with AI: True, and Current Players: 4, the system spawns 12 AI so the game starts with 16 total participants.
If a real player joins a full lobby that contains AI, the system can remove one AI and add the player so AI never blocks real players from joining.
Team Balancing
Team balancing is handled by the Team Manager. When AI is spawned, the Team Manager distributes AI across teams while considering the existing player count. For example, if Team A has three players and Team B has one player, spawning 12 AI can result in five AI on Team A and seven AI on Team B, giving both teams eight total members.
Multi-Game-Type Maps
The system can support multiple game types in one level by filtering game-specific actors through BPI_GameplayTags.

Actors that belong only to specific game types implement BPI_GameplayTags and return a gameplay tag container from GetGameplayTags(). Example tags include GameType.CaptureTheFlag, GameType.SearchAndDestroy, and GameType.Domination.
When the level loads, the current game type is checked against actors that implement the interface. Matching actors remain. Non-matching game-specific actors are destroyed. Actors without the interface, such as static meshes and shared environment actors, remain in the level.
Example: a shared map can contain CTF flags, Search and Destroy bomb sites, and Domination control points. When hosting Domination, the system keeps the Domination points and removes the CTF and Search and Destroy actors.
Create a Multi-Type Map
- Place shared map content and spawn points.
- Place game-specific actors such as CTF flags, Search and Destroy bomb sites, and Domination control points.
- Add BPI_GameplayTags to each game-specific actor.
- Implement GetGameplayTags().
- Return the correct tag, such as GameType.CaptureTheFlag, GameType.SearchAndDestroy, or GameType.Domination.
- Test each game type through its playlist and verify that only relevant actors remain.
Win Conditions and Scoring
Game modes can end when a score requirement is reached, an objective is completed, or the time limit expires. The winner is usually the team or player with the highest score, the completed objective, or the required number of round wins.
| Mode | Win requirement |
|---|---|
| Team Deathmatch | First team to 50 kills, or highest score when the 10-minute time limit expires. |
| Search and Destroy | First team to 6 round wins, with a 2-minute round timer. |
| Domination | First team to 200 points, or highest score when the 15-minute time limit expires. |
The Score Manager provides the detailed score tracking. The Game Mode System uses those scores for win condition checks, round winner determination, and final winner determination.
Score Types
Aggregate scoring is used by modes such as Team Deathmatch and Free for All. Player scores are summed into a team or individual total, and the highest total wins.
Win-based scoring is used by modes such as Domination, Search and Destroy, and Capture the Flag. The game mode adds objective points directly to the team or awards round wins based on the mode rules. Individual kills can still appear on the scoreboard without necessarily adding to the team objective score.
Implemented Game Modes
The system includes six complete arena implementations. Each is a child component of AC_GS_SessionManager_Arena_Base and can be used directly or as a reference for custom modes.

| Mode | Component | Core behavior |
|---|---|---|
| Team Deathmatch | AC_GS_SessionManager_Arena_TeamDeathMatch | Team-based elimination, respawns enabled, aggregate scoring, kill limit or time limit. |
| Search and Destroy | AC_GS_SessionManager_Arena_SearchAndDestroy | Round-based bomb planting/defusing, no respawn during round, first to 6 rounds. |
| Free for All | AC_GS_SessionManager_Arena_FreeForAll | Individual elimination, no teams, respawns enabled, kill limit or time limit. |
| Domination | AC_GS_SessionManager_Arena_Domination | Team control points, objective scoring, control score over time. |
| Capture the Flag | AC_GS_SessionManager_Arena_CaptureTheFlag | Flag pickup, carry, drop, return, base capture zones, capture limit. |
| Battle Royale | AC_GS_SessionManager_Arena_BattleRoyale | Large player count, no respawn, spawn island, shrinking zone, last team or player standing. |
Team Deathmatch
AC_GS_SessionManager_Arena_TeamDeathMatch is a team-based elimination mode. It uses DA_GameMode_Defaults_TeamDeathmatch, aggregate scoring, respawns, kill score, assist score, death score, and a kill or time-limit win condition.
Search and Destroy
AC_GS_SessionManager_Arena_SearchAndDestroy is a round-based objective mode where attackers plant and detonate a bomb while defenders prevent or defuse it.

The implementation includes bomb actor Blueprint logic, plant interaction, defuse interaction, timer mechanics, round win logic, and attacker/defender team switching.
Free for All
AC_GS_SessionManager_Arena_FreeForAll is an individual elimination mode. Every player competes alone, respawns are enabled, individual scores are tracked, and the match ends at the kill limit or time limit.
Domination
AC_GS_SessionManager_Arena_Domination is a team-based control point mode.

Teams capture control points, earn objective points while holding them, and win at the point requirement or time limit. The implementation includes control point actors, capture mechanics, point tracking, team-color visual indicators, and score accumulation.
Capture the Flag
AC_GS_SessionManager_Arena_CaptureTheFlag is a team-based flag capture mode.

The implementation includes flag actors, pickup/drop mechanics, carrier tracking, flag return mechanics, base capture zones, and visual indicators for flag state and flag carrier.
Battle Royale
AC_GS_SessionManager_Arena_BattleRoyale is a last-team-or-player-standing mode with high player counts, no respawn, spawn island flow, shrinking zone logic, looting system integration, elimination tracking, and winner determination.


Template Game Modes
Zombies Template
AC_GS_SessionManager_Arena_Zombies is a template component, not a full implementation. It inherits from AC_GS_SessionManager_Arena_Base and is intended as a starting point for a zombies mode.
Expected custom work includes wave logic, zombie spawning, point systems, weapon purchasing, win/loss conditions, and round progression.
Extraction Template
AC_GS_SessionManager_Arena_Extraction is a template component, not a full implementation. It is intended as a starting point for extraction shooter logic.
Expected custom work includes loot systems, extraction points, raid timers, death consequences, extraction mechanics, and win conditions.
Setup Workflows
Set Up a Game Mode
- Open the GameState Blueprint.
- Add one game mode component, such as AC_GS_SessionManager_Arena_TeamDeathMatch.
- Remove other session manager or game mode components that should not be active for this GameState.
- Configure the Session Manager playlist and session settings.
- Host a session with the selected playlist.
- Verify the waiting phase, main game phase, win condition, game end, and playlist transition.
Use one game mode component per GameState. For multiple game types, use playlists and load levels configured for the relevant game mode component.
Configure Game Settings
- Open the game settings flow in the game menu or editor.
- Select the game type.
- Adjust arena settings such as Waiting for Start Time, Main Loop Time, Minimum Players to Start, Freeze Players, and Fill Lobby with AI.
- Adjust game-type settings such as Kills to Win, Rounds to Win, or Points to Win.
- Save the configuration to BP_Save_Session_Configuration.
Create a Custom Game Mode
- Create a new Blueprint component with parent class AC_GS_SessionManager_Arena_Base.
- Name it using the project pattern, such as AC_SessionManager_Arena_YourMode or AC_SessionManager_Arena_MyMode.
- Create a matching defaults asset, such as DA_GameMode_Defaults_YourMode or DA_GameMode_Defaults_MyMode.
- Define default timing, scoring, and win requirement settings.
- Override game start logic, win condition checks, scoring logic, and game end logic.
- Create custom actors for objectives, items, or other mechanics if needed.
- Implement BPI_GameplayTags on game-specific actors when they need multi-game-type filtering.
- Add the component to a GameState, create a playlist entry, host a session, and test the full loop.
Summary
The Game Mode System builds complete match behavior on top of the Session Manager. AC_GS_SessionManager_Arena_Base provides the shared arena loop, while child components implement Team Deathmatch, Search and Destroy, Free for All, Domination, Capture the Flag, Battle Royale, and template starting points for Zombies and Extraction.
The safest extension path is to keep Session Manager responsibilities separate from game-specific rules: use playlists and settings for session flow, use DA_GameMode_Defaults for defaults, use Score Manager and Team Manager for scoring and teams, and implement custom game logic in the specific arena component.