EOS Integration KitAlpha
v5.0.1

Friends

Access player friend lists and manage friend relationships

The Friends system lets players view their Epic Games friends and their online status.

Requires Epic Account Services (EAS) login. Friends are not available for Connect-only authentication. Players must also have played your game at least once and consented to EAS access.

Query Friends

Load the friends list from the server.

Query Friends node
Copy and paste into Unreal Engine Blueprint editor

Returns an array of friends with their display names, online status, and relationship status.

#include "EIKCore/Public/Interfaces/IEIKFriends.h"

void UMyClass::LoadFriends()
{
    TSharedPtr<IEIKFriends> Friends = GetFriendsInterface();
    if (!Friends.IsValid()) return;

    Friends->QueryFriends(0,
        FEIKAsyncCallback<FEIKQueryFriendsResult>::CreateLambda(
            [](const TEIKAsyncResult<FEIKQueryFriendsResult>& Result)
            {
                if (Result.IsSuccessful())
                {
                    for (const FEIKFriend& Friend : Result.GetValue().Friends)
                    {
                        UE_LOG(LogTemp, Log, TEXT("%s - %s"),
                            *Friend.DisplayName,
                            Friend.bIsOnline ? TEXT("Online") : TEXT("Offline"));
                    }
                }
            }));
}
#include "Online/OnlineServices.h"
#include "Online/Social.h"

using namespace UE::Online;

void UMyClass::LoadFriends()
{
    IOnlineServicesPtr Services = GetServices(EOnlineServices::Epic);
    ISocialPtr Social = Services->GetSocialInterface();

    FQueryFriends::Params Params;
    Params.LocalAccountId = GetLocalAccountId();

    Social->QueryFriends(MoveTemp(Params))
        .OnComplete([](const TOnlineResult<FQueryFriends>& Result)
        {
            if (Result.IsOk())
            {
                UE_LOG(LogTemp, Log, TEXT("Friends loaded"));
            }
        });
}
#include "OnlineSubsystem.h"
#include "Interfaces/OnlineFriendsInterface.h"

void UMyClass::LoadFriends()
{
    IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get(FName(TEXT("EIK")));
    IOnlineFriendsPtr Friends = OnlineSub->GetFriendsInterface();

    Friends->ReadFriendsList(0, EFriendsLists::ToString(EFriendsLists::Default),
        FOnReadFriendsListComplete::CreateLambda(
            [](int32 LocalUserNum, bool bWasSuccessful, const FString& ListName, const FString& ErrorStr)
            {
                if (bWasSuccessful)
                {
                    UE_LOG(LogTemp, Log, TEXT("Friends loaded"));
                }
            }));
}

Show Friends UI

Open the Epic Games overlay to display the friends list.

Show Friends UI node
Copy and paste into Unreal Engine Blueprint editor

Opens the Epic overlay where players can manage friends, send invites, and see online status.

void UMyClass::OpenFriendsOverlay()
{
    IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get(FName(TEXT("EIK")));
    IOnlineExternalUIPtr ExternalUI = OnlineSub->GetExternalUIInterface();

    ExternalUI->ShowFriendsUI(0);
}

Helper Functions

The EIK Friends Library provides utilities for working with cached friend data:

FunctionDescription
GetFriends()Get all cached friends
GetFriendsCount()Get number of friends
FindFriendByAccountId()Find friend by account ID
IsFriend()Check if user is a friend
GetFriendRelationship()Get relationship status

On this page