Skip to main content

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 Play initialization (branches on Party Manager Type: Menu vs Game) and the BPI_PartyManagmentInterface event 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. From SIK_FriendsSubsystem: On Game Lobby Join Requested. Each delegate routes into the matching Handle... function below.

SIK Delegate Handlers

These functions are the entry points for everything Steam tells the game.

FunctionCalled whenWhat it does
HandleOnLobbyCreatedLocal player's Create Lobby succeedsStores the Lobby ID in the GameInstance, writes initial lobby data (party size, game mode, map, joinability) from saved preferences.
HandleOnLobbyEnterLocal 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.
HandleOnLobbyDataUpdateAny lobby or member data changesThe main "reactor". Refreshes avatars, skins, ready states, match settings display, and checks the game server state to trigger joining a started server.
HandleOnLobbyChatMsgA chat message arrivesParses player/system messages and routes them to the text chat widget with the right notification sound.
HandleOnLobbyChatUpdateA member joins/leaves/disconnectsTriggers Lobby Member Count Check and Handle Leaving Player logic, sends system messages.
HandleOnLobbyInviteA Steam party invite arrivesShows the WB_LobbyInvite notification with the invite-received sound.
HandleOnGameLobbyJoinRequestedPlayer accepts an invite / joins via Steam overlayJoins the requested lobby (leaving the current one first if needed).

Party Lifecycle (Macros)

MacroWhat it does
Create SPM PartyCreates 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 PartyJoins an existing lobby by ID.
Find LFP PartiesSearches for public "Looking for Party" lobbies matching preferences (used by the social menu LFP tab).
Init Game ServerHost 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 ServerLeaves the running game server and returns to the party menu.
TimeOutDisbandAttemptFailsafe: disbands/aborts a game start if the server doesn't come up in time.
Delay Joining ClientsStaggers client connections so they don't all hit the fresh listen server on the same frame.

Game Server / Session Functions

FunctionWhat 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 GameServerDetermines whether the current context is the game server.
Reset GameServerClears game server lobby data back to NoServer (used after failure or shutdown).
Handle Staying as Party After GameServerAfter a match ends, keeps the party together when returning to the menu.
PIE Mode Gameserver InitSpecial path so the flow can be partially tested in PIE where Steam is unavailable.

Ready Check

FunctionWhat it does
PartyReadyCheckToggles 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

FunctionWhat it does
Setup PartyMenu LevelInitializes the menu level: finds all BP_PartySpot actors, spawns the local avatar, creates WB_PartyMenu.
SetMemberAvatarSpawns/updates the avatar character on a party spot for a given member and applies their skin via BPC_CharacterCustomization.
Character Data UpdateReapplies skin/variation when a member's customization lobby data changes.
FindLastJoinedMemberIndexDetermines the next free spot index for a newly joined member.
Lobby Member Count CheckCompares current vs previous member count, fires OnPartyMemberCountChange, and triggers join/leave handling.
Handle Leaving PlayerCleans 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 OwnershipUpdates which spot shows the host crown after owner changes (Steam auto-migrates lobby ownership).
Focus Local Main SpotPoints the camera/focus at the local player's spot.
Kick PlayerHost removes a member from the party (via lobby data so the kicked client leaves itself).
Validate Skin Type / Reset Skin TypeSanity 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

FunctionWhat it does
Game Initialization WidgetShows/hides WB_GameInitialization (the "match is starting" overlay).
Update Lobby Member WidgetRefreshes a member's entry in the party menu widget.
Update Play Box SettingsRefreshes the match settings display (party size / game mode / map) in WB_PartyMenu.
Handle Play Box VisibilityShows the play/ready box only to the relevant players.
Handle Escape Menu WidgetCreates/toggles WB_EscapeMenu.
Handle Settings Menu WidgetCreates/toggles WB_SettingsMenu.
Handle OnKeyDown Escape Button / Set On Key Down StateEscape key routing so Escape opens/closes the correct menu depending on state.
Handle CloudStorage NotificationShows a warning notification when Steam Cloud is unavailable/disabled.
Handle Player ControllerInput mode / controller setup helper (UI vs game input).

Chat

FunctionWhat it does
Handle Chat MessageSends a player chat message to the lobby.
SendSystemMessageSends a formatted system message (member joined/left, host changed, etc.) into the lobby chat.

Event Dispatchers

Bind to these from your own widgets/actors:

DispatcherFired when
OnPartySpotIconClickedA party spot's icon widget is clicked (e.g. open invite/profile menu for that spot).
OnPartySpotIconHovered / OnPartySpotIconUnHoveredSpot icon hover state changes (pedestal highlight).
OnPartySpotCharClickedA spot's character avatar is clicked.
OnPartyReadyCheckUpdateThe overall ready count changes (used to update the ready button / counter UI).
OnPartyMemberReadyStatusChangeA single member's ready status changes.
OnPartyMemberCountChangeA member joins or leaves the party.
OnMatchmakingStateMessageMatchmaking status text should be shown.

Key Variables

VariableTypePurpose
Party Manager TypeE_ComponentTypeMenu / Game behavior switch (see Party Manager).
Settings DataPM_SettingsDataThe central settings data asset.
Menu Avatar ClassclassCharacter class spawned on party spots.
AllSpotsBP_PartySpot arrayThe 4 spot actors found in the menu level.
Main Spot AvatarobjectThe local player's spawned avatar.
WB Party Menu / Escape Widget / Settings Menu Widget / Match Widget / Initialization WidgetobjectCached widget references.
Current Lobby Members CountintLast known member count (for join/leave detection).
MemberIndexKeysstring arrayPer-spot member index keys used in lobby member data.
isGameServer?boolTrue when this instance is hosting the game server.
On Key Down Handling / InFocus?boolEscape key / focus state management.