Core Blueprints Reference
Details of the framework classes in Content/SteamPartyMenu/Blueprints/Core/ and the demo classes that show how to use them in a match. For the big picture see Project Architecture.
BP_SPM_Gameinstance
Parent: GameInstance · Implements BPI_GameInstanceInterface
The only persistent object across level travel. Deliberately minimal, it stores:
| Variable | Purpose |
|---|---|
Lobby Id | The current Steam party lobby. Written on lobby create/enter (GI_SetLobbyID), read anywhere via GI_GetLobbyID. This is how the party survives traveling to a match and back. |
Network Error? + FailureType | Set from the engine NetworkError event; checked on returning to the menu so the UI can show a network error notification (with the Network Error Sound). Also consults GetGameServerState to decide whether the disconnect happened during a live match (enables rejoin). |
If you have your own GameInstance, reparent it to this class (see Migration Steps).
BP_SPM_PartyController
Parent: PlayerController
The menu controller. Contains a single component, BPC_PartyManager (type Menu), and no other logic. All party behavior lives in the component, so you can add the component to your own controller instead of using this class.
BP_SPM_PartyGameMode
Parent: GameMode
Game mode of the PartyMenu level. Intentionally empty; it exists to pair the party controller, BP_PlayerState and the menu avatar defaults. Set as the project's Global Default Game Mode.
BP_PlayerState
Parent: PlayerState
Carries BPC_PlayerData. Player state is used (rather than the controller) so player data is also available on the server/other clients in match levels.
BP_PartySpot
Parent: Actor
One pedestal in the menu level; the PartyMenu map contains four of them, identified by the SpotIndex variable (E_SpotIndex: MainSpot, Index 1–3). MainSpot is always the local player.
Components: Pedestal Mesh, Niagara (spot FX), RectLight, Widget (shows WB_PartySpotIcon), Arrow (avatar spawn transform).
| Member | Purpose |
|---|---|
Set Pedestal State | Applies E_PedestalState (Default / Highlighted / Unhighlighted / Ready), driving light, FX and materials. |
Spot User ID | Steam ID of the member currently occupying this spot. |
CanUnhiglight? | Guards hover-out behavior while a menu for this spot is open. |
The Party Manager finds all spots at startup (AllSpots) and assigns members to them by their member index in lobby data.
BP_GC_PartyAvatar
Parent: Character
The visual avatar spawned on a spot (Menu Avatar Class in the Party Manager settings). Carries BPC_CharacterCustomization (Character Type = Menu Avatar). Replaceable with your own character class as long as it uses one skeletal mesh and has the customization component.
BP_NamePlate
Parent: Actor
Floating plate above an avatar showing the member's Steam persona name (Widget_UserPlate component with WB_AvatarUserPlate). Spawned/positioned by BPC_CharacterCustomization using the Name Plate X/Y/Z offsets.
Demo Content (DemoContent/Blueprints/)
These show the intended way to wire SPM into an actual match:
BP_SPM_GamePlayerController
Parent: BP_SPM_PartyController. Inherits the Party Manager, with Party Manager Type = Game, so in match levels the component only manages the escape menu and leaving the session.
BP_SPM_MatchGamemode
Parent: GameMode. Example match game mode:
| Variable | Purpose |
|---|---|
All Player Starts | Collected Player Starts for spreading spawns. |
Server Lobby Id | The party lobby that owns this server (read on the host). |
Gamemode Name | Display name for the match HUD. |
Use it as reference for your own game modes: read the lobby ID, spawn BP_GameCharacter pawns, and let the customization component apply each player's skin.
BP_GameCharacter
Parent: Character. Third-person demo character with CameraBoom, FollowCamera and BPC_CharacterCustomization (type Game Character) so the skin chosen in the menu appears in-match via replication.
SquareFlip Minigame (Blueprints/Gamemodes/SquareFlip/)
A complete mini game mode demo: BP_SquareFlipGM, BP_SquareFlipPC, BP_FirstPersonCharacter, BP_SquareTile (uses BPI_InteractInterface → LiffTile). Played on the SquareFlip map, it is proof that any game mode can sit on top of the party framework.
Structures & Save Game
| Asset | Contents |
|---|---|
S_GraphicsSettings | Resolution, window mode, quality settings |
S_AudioSettings | Per sound class volumes |
S_AccountSettings | Account options |
SG_PlayerData | The save game: the three structs above + GamePreferences and PlayerDataMap string maps (see Save Game & Steam Cloud) |
Enums
| Enum | Values |
|---|---|
E_GameServerState | NoServer, Starting, Live, Shutdown |
E_ComponentType | Disabled, Menu, Game |
E_SpotIndex | MainSpot, Index 1, Index 2, Index 3 |
E_CharacterType | Menu Avatar, Game Character, First Person |
E_PedestalState | Default, Highlighted, Unhighlighted, Ready |