[Slate,Steam] How do I use SFriendsList and the FriendsAndChat Module?

Dear Friends at Epic,

I am trying to utilize all the hard work you put into the SFriendsList !

I added this to my build.cs

 DynamicallyLoadedModuleNames.Add("FriendsAndChat");

I added this where I want to make a SharedPtr to the SFriendsList:

//FriendsAndChat
#include "SFriendsList.h"

#Compile Errors

1>c:\users\rama\documents\unreal projects\joyshapes\source\joyshapes\private\victoryhudelements\hudclasses\VictoryHUDElementsSlate.h(11): fatal error C1083: Cannot open include file: 'SFriendsList.h': No such file or directory
1>C:\Users\Rama\Documents\Unreal Projects\JoyShapes\Source\JoyShapes\Private\VictoryHUDElements\HUDClasses\VictoryHUDElementsSlate.h(11): fatal error C1083: Cannot open include file: 'SFriendsList.h': No such file or directory
1>E:\VictoryUE4\UnrealEngine-4.2\Engine\Source\Developer\FriendsAndChat\Public\FriendsAndChat.h(17): fatal error C1083: Cannot open include file: 'OnlineSubsystemMcp.h': No such file or directory
1>E:\VictoryUE4\UnrealEngine-4.2\Engine\Source\Developer\FriendsAndChat\Public\FriendsAndChat.h(17): fatal error C1083: Cannot open include file: 'OnlineSubsystemMcp.h': No such file or directory

Notice how the compiler is upset with the FriendsAndChat module wanting to use OnlineSubsystemMcp.h !

#Private Dependency

I tried making it a private dependency and I get this compile error instead

and the build also takes forever

1>  Module.FriendsAndChat.cpp
1>E:\VictoryUE4\UnrealEngine-4.2\Engine\Source\Developer\FriendsAndChat\Public\FriendsAndChat.h(17): fatal error C1083: Cannot open include file: 'OnlineSubsystemMcp.h': No such file or directory
1>E:\VictoryUE4\UnrealEngine-4.2\Engine\Source\Developer\FriendsAndChat\Public\FriendsAndChat.h(17): fatal error C1083: Cannot open include file: 'OnlineSubsystemMcp.h': No such file or directory

#Question

What is proper way to utilize the SFriendsList ?

Thanks!

Rama

The short answer is that this is not ready for public consumption. That module is meant for some current internal initiatives and was not written with “cross platform” online services in mind.

You are better off using the OSS friends/users interfaces for your invite/friending needs. Chat isn’t something that is supported outside normal “connected in game chat via RPCs” right now.

Dear Josh,

#Thank You For The Awesome Online Subsystem!

I currently have implemented my own custom Friends List and chat system!

So I have completely non-Steam looking implementation of the Steam Friends List!

Here’s the core code I deduced from your OSS test files like

TestSessionInterface

and the Test Friends Interface!

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Get Epic's Generalized Implementation of an Online User's Presence on the Net!
const FOnlineUserPresence&  FriendPresence = (*FriendsListPtr)[v]->GetPresence();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//Online?
if(FriendPresence.bIsOnline)
{
//...

//Playing This Game?
if(FriendPresence.bIsPlayingThisGame)
{
//...

Here’s a picture!

In my game people can simply double click on the names of friends to invite/join their game!

Green = online, faded = offline, and I highlight the friend the cursor is on :slight_smile:

:slight_smile:

#Steam Wiki tutorial

I also made a Steam wiki tutorial to get people started with the Steam API / dlls etc!

#Have fun today Josh!

#:heart:

Rama