Steam Party Plugin

Easily Create and manage Player Parties for your Steam game. With the Steam Beacons Plugin, parties can be made without loading into a lobby map and can be done from the Main Menu.

Description

Open your Steam's Friend List and invite players to join your party straight from the Main Menu. The default implementation of Steam uses lobbies but requires players to load into a map onto a shared server. Steam Beacons provides an easy solution to connect, chat, & replicate data to Party members all from the Main Menu. The Party Host controls looking for games, connects all members to a game server, then after the game is completed returns all of the party members back together.

Steam Beacons is designed and actively used in a real Steam released game, works well, and will get required lifetime updates. The system is easy to setup and easy to extend for custom game implementation. It uses Steam Sockets and P2P networking on the Steam Backend to easily connect to player's pcs.

Features Include:
-Configurable Party Size
-Global Chat
-Player to Player Whispering
-Easy Data replication between players
-Steam Friends list Popup
-Steam Invites

Can Steam Beacons be adapted for other online services, yes it can but it is not supported out of the box.

 


Initial Setup

Download the plugin into your project and then enable it.
Show plugin content in the view options. Click on "View Options" in the content browser and check "Show Engine Content"

WIP...

 

After Plugin Install from Engine and enabling:

1) Make changes to your DefaultEngine.ini config file.

Define the "BeaconNetDriver" in the config so the engine can create the sockets correctly.

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="BeaconNetDriver",DriverClassName="/Script/OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

Make sure your defualt Beacon Listening Port is defined.  Using "BEACONPORT=XXX" as a command line parameter can override the default port.  Also, set the communication default timeouts.

[/Script/OnlineSubsystemUtils.OnlineBeaconHost]
ListenPort=7787
BeaconConnectionInitialTimeout=48.0
BeaconConnectionTimeout=49.0


2) Change your current GameInstance class parent to SteamBeaconsGameInstance so the functionality is seamlessly added to your game.

    InitBeaconHost()
        Creates the Hosting Beacon backend and joins the local player as the Party Leader.  
    
    InitBeaconClient(DesiredHost)
        Creates the Client Beacon backend and connects the local player to the desired session
        
    JoinPartyToSession(InSearchResult)
        Send the entire party to the requested steam session
        
    

3) Change your current GameSession class parent to SteamBeaconGameSession to add the following functions to your game.