Skip to content

Event-driven Multiplayer Session Subsystem for Unreal Engine (C++ & Blueprints).

Notifications You must be signed in to change notification settings

SJOEC/LobbyManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LobbyManager – Unreal Engine 5

Event-driven Multiplayer Session Subsystem for Unreal Engine (C++ & Blueprints).

Developed and tested in UE 5.7

Overview

LobbyManager encapsulates Unreal's Online Session Interface into a reusable UGameInstanceSubsystem, enabling clean multiplayer flows across level transitions.

Features

  • Async, delegate-driven architecture
  • Full Blueprint support
  • Create / Find / Join / Start / Destroy sessions

Installation

  • Copy the LobbyManager folder into your project's Plugins/ directory (create the folder if it doesn't exist).
  • Right-click your .uproject file and select "Generate Visual Studio project files".
  • Open the solution and compile.
  • Enable the plugin in Edit > Plugins.

Configuration

To use this plugin with Steam, you must configure your DefaultEngine.ini file located in the Config/ folder of your project.

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SteamSockets.SteamSocketsNetDriver",DriverClassNameFallback="/Script/SteamSockets.SteamNetSocketsNetDriver")
 
[OnlineSubsystem]
DefaultPlatformService=Steam
 
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
bInitServerOnClient=true	
 
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"	

Also you need to enable the plugins OnlineSubsystemSteam and SteamSockets.

Usage Guide (Blueprints)

The system is designed to be used directly from your UI Widgets (e.g., WBP_MainMenu).

  1. Creating a Session (Host) Call CreateSession with your desired settings. Bind to the OnCreateSessionComplete delegate to know when to show a loading screen or feedback.

Input: FMultiplayerCreateSessionSettings (Server Name, Max Players, LAN, Match Type).

Event: MultiplayerOnCreateSessionsCompleteDelegate.

  1. Finding Sessions (Server Browser) Call SearchSession. When the search finishes, the subsystem broadcasts an array of results.

Input: FMultiplayerSearchSessionSettings (Max Results, LAN Query).

Event: MultiplayerOnFindSessionsCompleteDelegate (Returns SessionResults array).

Tip: Loop through the SessionResults array to populate a ScrollBox with your server list widgets.

  1. Joining a Session Call JoinSession passing the index of the result chosen from the Search array.

Input: SessionIndex (int32).

Event: MultiplayerOnJoinSessionCompleteDelegate.

Behavior: Automatically performs ClientTravel upon success.

  1. Starting the Game Once in the Lobby, the Host calls StartSession. This finalizes the session registration and moves everyone to the Gameplay Map.

Input: MapPath (String, e.g., /Game/Maps/LobbyMap).

Behavior: Executes ServerTravel with ?listen arguments.

Example

Requirements

  • OnlineSubsystem (Steam / EOS / Null)

Author

Joe - https://www.linkedin.com/in/joecanelo/

About

Event-driven Multiplayer Session Subsystem for Unreal Engine (C++ & Blueprints).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published