Inviting / joining steam friends

Hi, from steamwork sdk isteamfriends.h i found this

// Requests rich presence for a specific user.
virtual void RequestFriendRichPresence( CSteamID steamIDFriend ) = 0;

// rich invite support
// if the target accepts the invite, the pchConnectString gets added to the command-line for launching the game
// if the game is already running, a GameRichPresenceJoinRequested_t callback is posted containing the connect string
// invites can only be sent to friends
virtual bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString ) = 0;

so i guess UE4 should use GameRichPresenceJoinRequested_t callback to work with friend invites

in spacewar example game there’s

// callback for when the lobby game server has started
STEAM_CALLBACK( CSpaceWarClient, OnLobbyGameCreated, LobbyGameCreated_t, m_LobbyGameCreated );
STEAM_CALLBACK( CSpaceWarClient, OnGameJoinRequested, GameRichPresenceJoinRequested_t, m_GameJoinRequested );
STEAM_CALLBACK( CSpaceWarClient, OnAvatarImageLoaded, AvatarImageLoaded_t, m_AvatarImageLoadedCreated );

in UE4 source code there’s

void FOnlineAsyncTaskManagerSteam::OnInviteAccepted(GameRichPresenceJoinRequested_t* CallbackData)
{
FOnlineAsyncEventSteamInviteAccepted* NewEvent =
new FOnlineAsyncEventSteamInviteAccepted(SteamSubsystem, FUniqueNetIdSteam(CallbackData->m_steamIDFriend), UTF8_TO_TCHAR(CallbackData->m_rgchConnect));
UE_LOG_ONLINE(Verbose, TEXT(“%s”), *NewEvent->ToString());
AddToOutQueue(NewEvent);
}

STEAM_CALLBACK(FOnlineAsyncTaskManagerSteam, OnInviteAccepted, GameRichPresenceJoinRequested_t, OnInviteAcceptedCallback);

but in UE4 editor i can’t find OnInviteAccepted in blueprints (without contex sensetivity ofc), also i don’t see any friend events when open blueprints functions in context menu without contex sensetivity, there’s only few of them under “online”:

also i searched in blueprints with words: invit, friend, task, rich - nothing interesting were found

also looked into

void FOnlineAsyncTaskManager::AddToOutQueue(FOnlineAsyncItem* CompletedItem)
{
FScopeLock Lock(&OutQueueLock);
OutQueue.Add(CompletedItem);
}

but it doesn’t give me an idea how UE4 engine designed to tell blueprints something

this isn’t anwer to your question, but hope may help you or other dig deeper