Friend Reference #

Friend service SDK #

The table below contains a list of the SDK methods relevant to the Friend service. These methods are available via the FriendApi.

Calldescription
AcceptFriendInviteAccepts a friend invite. Inviter and invitee are added to each other’s friend list
BlockAllows a player top block another player from sending them invites by adding them to a blocklist
DeclineFriendInviteDeclines a friend invite
DisableIncomingFriendInvitesPrevents a player from receiving friend invites
EnableIncomingFriendInvitesAllows player to receive friend invites
ForceSyncForcibly synchronizes the player client FriendApi with the friend information in the Pragma Engine backend
GetFriendsRetrieves a list of Friend objects in a player’s friend list
GetReceivedInvitesRetrieves a list of Friend Overview objects representing players whose friend invites you have not yet accepted/rejected
GetSentInvitesRetrieves a list of Friend Overview objects representing players who have not responded yet to your friend invites
GetBlockedListRetrieves a list of Friend Overview object representing players who are blocked from sending the player a friend invite
InitializeInitializes the Friend API. Required to use the Friend SDK functions.
RemoveFriendRemoves a friend from your friend list using the friend’s social ID
SendFriendInviteByDisplayNameSends an invite using the invitee’s display name
SendFriendInviteBySocialIdSends an invite using the invitee’s social ID
UnblockRemoves a player from another player’s blocklist, allowing the unblocked player to send the unblocker friend invites

Data classes #

Friend class #

propertydescription
socialIdUnique social identifier for the player (game agnostic)
displayNamePragmaDisplayName object containing the player’s name and discriminator
playerIdA user’s identifier within a specific game
playerIdByGameShardMap of player’s playerIds by game shard
presencePresence for the player in a specific game
presencesByGameShardPresences for the player across games
providerAccountsByProviderIdUser’s IdProviderAccounts, which contain account information from identity providers. For specifics on the IdProviderAccount data class, see the Account Plugin topic.

Friend Overview class #

An overview of the Friend without sensitive information.

propertydescription
socialIdUnique social identifier for the player (game agnostic)
displayNamePragmaDisplayName object containing the player’s name and discriminator
playerIdA user’s identifier within a specific game
playerIdByGameShardMap of player’s playerIds by game shard

Configuration #

FriendsServiceConfig #

The FriendsServiceConfig configuration block provides a place to define default values for the Friend and Presence services.

Note about GDPR compliance: Setting your maxTimeBetweenAccessMillis to a value over 30 days (2592000000 milliseconds) may result in GDPR noncompliance, as user data may exist in the cache until maxTimeBetweenAccessMillis is reached.

The following configuration values are related to Friends features:

configdescription
maxFriendsListSizeMaximum number of friends an individual player can maintain

Default: 400
maxPendingSentInvitesMaximum number of pending (unresponded to) sent invites an inviter can maintain before oldest pending invites are removed to make room for newer invites. If a player attempts to send a friend invite when their pending sent invite list is full, the oldest pending sent invite in their list will be deleted. A “sent invite removed” event is triggered for the inviter, and a “received invite removed” event is triggered for the invitee.

Default: 20
maxPendingReceivedInvitesMaximum number of pending (unresponded to) received invites a player can maintain before subsequent invites are automatically rejected. If a player attempts to send a friend invite to a player whose received invites list is full, the inviter will receive an INVITEE_RECEIVED_INVITES_FULL error.

Default: 20

See Presence Reference for information on other configuration values.

friendListCacheConfig #

The friendListCacheConfig configuration block within the FriendsServiceConfig block defines values for caching behavior for the friend service database.

configdescription
maxTimeBetweenAccessMillisIf an entry has not been accessed in this amount of time, it is a candidate for removal in the next eviction sweep. See note above about GDPR compliance.

Default: 72000000
sizeBeforeExpirationEnforcedMaximum size of the friendListCache, after which eviction sweeping will start removing entries

Default: 50000
sweepIntervalMillisInterval, in milliseconds, between sweep calls for the friendListCache

Default: 900000

identityCacheConfig #

The identityCacheConfig configuration block within the FriendsServiceConfig block defines values for caching player identity data retrieved from the account service.

configdescription
maxTimeBetweenAccessMillisIf an entry has not been accessed in this amount of time, it is a candidate for removal in the next eviction sweep. See note above about GDPR compliance.

Default: 1800000
sizeBeforeExpirationEnforcedMaximum size of the identityCache, after which eviction sweeping will start removing entries

Default: 500000
sweepIntervalMillisInterval, in milliseconds, between sweep calls for the identityCache

Default: 90000

Events #

There are several friend-related events that player clients can listen to. The following table describes the bindable events relevant to the Friend service.

The following events are handled by the player client.

EventTriggerData returned
OnFriendsListChangedA friend is added or removed from a player’s friend list, or a friend’s presence status changeslist of Friends on your friend list
OnFriendUpdatedA friend’s presence status changesFriend
OnSentInvitesChangedThe status of a sent invite changeslist of FriendOverviews for pending sent invites
OnReceivedInvitesChangedThe status of a received invite changeslist of FriendOverviews for pending received invites
OnBlockedListChangedAn account is added or removed from the player’s blocklistlist of FriendOverviews for accounts on your blocklist
OnFriendInviteReceivedA player receives an inviteFriendOverview
OnFriendInviteAcceptedAn invitee accepts a friend inviteFriendOverview
OnFriendInviteDeclinedAn invitee declines a friend inviteFriendOverview
OnRemovedAsFriendA player is removed from another player’s friend listFriend
OnIncomingFriendInvitesEnabledChangedA player’s ability to receive invites changesboolean
If notifications from the engine are received out of order due to a network issue, the friend cache will automatically refresh and the ‘On Changed’ events will be broadcasted.

Errors #

  • FriendService_InternalError
  • Friend_InviteNotFound
  • Friend_FriendNotFound
  • Friend_InviteeAlreadyFriend
  • Friend_FriendListFull
  • Friend_InviteeReceivedInvitesFull
  • Friend_FriendUpdateFailed
  • Friend_BlockedByInvitee
  • Friend_InviteeIsBlocked
  • Friend_InviteeDisabledInvites
  • Friend_SelfOperationNotAllowed
  • Friend_SocialIdentityNotFound
  • Friend_GameIdentityNotFound