Functions Reference
Complete reference of the graphs inside BPC_PartyManager, grouped by what they do. Use this page to find the right function before modifying party behavior; in most cases the logic you want to change already exists here.
Graph Overview
The component has two event graphs:
- EventGraph:
Begin Playinitialization (branches onParty Manager Type: Menu vs Game) and theBPI_PartyManagmentInterfaceevent implementations (PMI_CreateMatchHUD,PMI_PartySpotCharClicked). - SIK Bindings: binds all Steam Integration Kit delegates on startup. From
SIK_MatchmakingSubsystem: On Lobby Created, On Lobby Enter, On Lobby Data Update, On Lobby Chat Msg, On Lobby Chat Update, On Lobby Invite, On Lobby Game Created. FromSIK_FriendsSubsystem: On Game Lobby Join Requested. Each delegate routes into the matchingHandle...function below.
SIK Delegate Handlers
These functions are the entry points for everything Steam tells the game.
| Function | Called when | What it does |
|---|---|---|
HandleOnLobbyCreated | Local player's Create Lobby succeeds | Stores the Lobby ID in the GameInstance, writes initial lobby data (party size, game mode, map, joinability) from saved preferences. |
HandleOnLobbyEnter | Local player enters any lobby (own or joined) | Sets up the local member: writes member lobby data (skin, member index), initializes the party menu UI and avatars. |
HandleOnLobbyDataUpdate | Any lobby or member data changes | The main "reactor". Refreshes avatars, skins, ready states, match settings display, and checks the game server state to trigger joining a started server. |
HandleOnLobbyChatMsg | A chat message arrives | Parses player/system messages and routes them to the text chat widget with the right notification sound. |
HandleOnLobbyChatUpdate | A member joins/leaves/disconnects | Triggers Lobby Member Count Check and Handle Leaving Player logic, sends system messages. |
HandleOnLobbyInvite | A Steam party invite arrives | Shows the WB_LobbyInvite notification with the invite-received sound. |
HandleOnGameLobbyJoinRequested | Player accepts an invite / joins via Steam overlay | Joins the requested lobby (leaving the current one first if needed). |
Party Lifecycle (Macros)
| Macro | What it does |
|---|---|
Create SPM Party | Creates a Steam lobby using saved settings (last party size, game mode, map from SG_PlayerData / cloud data), writes all initial lobby data keys, sets joinability and Game Server State = NoServer, stores the Lobby ID in the GameInstance. |
Join SPM Party | Joins an existing lobby by ID. |
Find LFP Parties | Searches for public "Looking for Party" lobbies matching preferences (used by the social menu LFP tab). |
Init Game Server | Host only. Resolves the selected map from DA_PM_Settings, sets Game Server State = Starting, writes the host's Steam ID as Lobby Game Server, resets ready statuses and opens the level as listen server. |
Leave Game Server | Leaves the running game server and returns to the party menu. |
TimeOutDisbandAttempt | Failsafe: disbands/aborts a game start if the server doesn't come up in time. |
Delay Joining Clients | Staggers client connections so they don't all hit the fresh listen server on the same frame. |
Game Server / Session Functions
| Function | What it does |
|---|---|
Join Game Server (if available) | Reads the Lobby Game Server (host Steam ID) from lobby data and connects with open steam.<id64> console travel. Called on clients when Game Server State becomes Live/Starting. |
Check if GameServer | Determines whether the current context is the game server. |
Reset GameServer | Clears game server lobby data back to NoServer (used after failure or shutdown). |
Handle Staying as Party After GameServer | After a match ends, keeps the party together when returning to the menu. |
PIE Mode Gameserver Init | Special path so the flow can be partially tested in PIE where Steam is unavailable. |
Ready Check
| Function | What it does |
|---|---|
PartyReadyCheck | Toggles the local player's ready status in lobby member data, counts ready members across the lobby, broadcasts OnPartyMemberReadyStatusChange and OnPartyReadyCheckUpdate. When all members are ready, the host runs Start Game Server (→ Init Game Server). |
Party Members & Avatars
| Function | What it does |
|---|---|
Setup PartyMenu Level | Initializes the menu level: finds all BP_PartySpot actors, spawns the local avatar, creates WB_PartyMenu. |
SetMemberAvatar | Spawns/updates the avatar character on a party spot for a given member and applies their skin via BPC_CharacterCustomization. |
Character Data Update | Reapplies skin/variation when a member's customization lobby data changes. |
FindLastJoinedMemberIndex | Determines the next free spot index for a newly joined member. |
Lobby Member Count Check | Compares current vs previous member count, fires OnPartyMemberCountChange, and triggers join/leave handling. |
Handle Leaving Player | Cleans up after a member leaves: resets their pedestal and avatar, frees their member index, sends a system chat message, and re-checks host crown ownership. |
Check Host Crown Ownership | Updates which spot shows the host crown after owner changes (Steam auto-migrates lobby ownership). |
Focus Local Main Spot | Points the camera/focus at the local player's spot. |
Kick Player | Host removes a member from the party (via lobby data so the kicked client leaves itself). |
Validate Skin Type / Reset Skin Type | Sanity checks a member's skin key against All Characters in the settings data; falls back to default if the skin doesn't exist in this project. |
UI & Widget Management
| Function | What it does |
|---|---|
Game Initialization Widget | Shows/hides WB_GameInitialization (the "match is starting" overlay). |
Update Lobby Member Widget | Refreshes a member's entry in the party menu widget. |
Update Play Box Settings | Refreshes the match settings display (party size / game mode / map) in WB_PartyMenu. |
Handle Play Box Visibility | Shows the play/ready box only to the relevant players. |
Handle Escape Menu Widget | Creates/toggles WB_EscapeMenu. |
Handle Settings Menu Widget | Creates/toggles WB_SettingsMenu. |
Handle OnKeyDown Escape Button / Set On Key Down State | Escape key routing so Escape opens/closes the correct menu depending on state. |
Handle CloudStorage Notification | Shows a warning notification when Steam Cloud is unavailable/disabled. |
Handle Player Controller | Input mode / controller setup helper (UI vs game input). |
Chat
| Function | What it does |
|---|---|
Handle Chat Message | Sends a player chat message to the lobby. |
SendSystemMessage | Sends a formatted system message (member joined/left, host changed, etc.) into the lobby chat. |
Event Dispatchers
Bind to these from your own widgets/actors:
| Dispatcher | Fired when |
|---|---|
OnPartySpotIconClicked | A party spot's icon widget is clicked (e.g. open invite/profile menu for that spot). |
OnPartySpotIconHovered / OnPartySpotIconUnHovered | Spot icon hover state changes (pedestal highlight). |
OnPartySpotCharClicked | A spot's character avatar is clicked. |
OnPartyReadyCheckUpdate | The overall ready count changes (used to update the ready button / counter UI). |
OnPartyMemberReadyStatusChange | A single member's ready status changes. |
OnPartyMemberCountChange | A member joins or leaves the party. |
OnMatchmakingStateMessage | Matchmaking status text should be shown. |
Key Variables
| Variable | Type | Purpose |
|---|---|---|
Party Manager Type | E_ComponentType | Menu / Game behavior switch (see Party Manager). |
Settings Data | PM_SettingsData | The central settings data asset. |
Menu Avatar Class | class | Character class spawned on party spots. |
AllSpots | BP_PartySpot array | The 4 spot actors found in the menu level. |
Main Spot Avatar | object | The local player's spawned avatar. |
WB Party Menu / Escape Widget / Settings Menu Widget / Match Widget / Initialization Widget | object | Cached widget references. |
Current Lobby Members Count | int | Last known member count (for join/leave detection). |
MemberIndexKeys | string array | Per-spot member index keys used in lobby member data. |
isGameServer? | bool | True when this instance is hosting the game server. |
On Key Down Handling / InFocus? | bool | Escape key / focus state management. |