Last Updated: 11/8/2022, 8:40:17 AM

# Friends

# Overview

AccelByte Cloud’s Friends service allows players to connect socially with other players. This service uses WebSocket to ensure all players get real-time updates about their Friend List. Players can manage their friends in several different ways, including:

  • Request Friend allows players to add another player as a friend using that player’s User ID. Players will be notified when they receive a friend request.
  • Accept Friend Request allows players to accept friend requests they’ve received. After the player accepts the request, the requester will be notified and the two players will be linked as friends.
  • Reject Friend Request allows players to deny a friend request from a player they don’t want to be friends with.
  • Cancel Friend Request allows players to cancel and remove a pending friend request they have sent to another player, in case they have changed their mind or sent the request to the wrong player.
  • Get Friendship Status shows players their friendship status with another player. Possible statuses include:
    • Not Friend indicates that the players are not connected as friends.
    • Outgoing Friend indicates that the friend request sent by the player to another player is still pending.
    • Incoming Friend indicates that the player has received a friend request that is still pending.
    • Friend indicates that the two players are connected as friends.
  • List of Friends shows the player all of the players they’re currently friends with.
  • List of Incoming Friends shows the player a list of players that have requested to be their friend. Players can accept or reject these requests.
  • List of Outgoing Friends shows players the list of pending friend requests they have sent to other players.
  • Unfriend allows players to stop being friends with other players. Unfriending a player will remove that player from their friend list. If the player wants to be friends with an unfriended player, they will have to send that player another friend request.
  • Bulk Synchronization 3rd-Party Platform Friends allows players to connect their friends from 3rd-party platforms to the AccelByte Cloud platform.

# Permissions

Permissions (opens new window) are used to grant access to specific resources within our services. Make sure your account has the following permissions before you attempt to manage friends in the Admin Portal.

Usage Resource Action
Add Friends Without Confirmation NAMESPACE:{namespace}:USER:{userId}:FRIENDS Create
Get List of Friends NAMESPACE:{namespace}:USER:{userId}:FRIENDS Read
Get Blocked Players by User ID ADMIN:NAMESPACE:{namespace}:USER:{userId}:PLAYER:BLOCK Read
Get Players Who Blocked This Player by User ID ADMIN:NAMESPACE:{namespace}:USER:{userId}:PLAYER:BLOCK Read
Configure a New 3rd Party Integration ADMIN:NAMESPACE:{namespace}:THIRDPARTY:CONFIG Create

Permissions work slightly differently depending on whether they are assigned to IAM Clients (opens new window) or Roles (opens new window) assigned to users. For more information, read the Authentication and Authorization (opens new window).

# Implement Friends using the Client SDKs

# Search for a Player

You can search for a player’s account information using their Display Name or Username as the query. You can configure the type of search by setting the enum of SearchType for Unity and EAccelByteSearchType for Unreal to DisplayName or Username.

# Friend Interactions

These are all features for how players can manage their friends.

# Retrieve a Player’s Public Code

You can retrieve a player’s public code using the PublicId parameter.

# Retrieve the Friend List

Use the following function to retrieve a friends list.

# Send a Friend Request using a User ID

The first step in making a friend is sending a friend request to another player. Use this code to send a friend request using a User ID.

# Send a Friend Request using a Public Code

The first step in making a friend is sending a friend request to another player. Use this code to send a friend request using a Public Code.

# Retrieve a List of Incoming Friend Requests

Use this function to retrieve all the information about incoming friend requests. This function retrieves user ID which you can use to accept or reject each request.

# Accept Incoming Friend Requests

After a friend request has been sent, the player who received the request can either accept or reject it. Use the following function to accept a friend request.

NOTE

To see a list of incoming friend requests, you can retrieve a list of incoming friend requests.

# Reject Incoming Friend Requests

You can reject the incoming friend request by their User ID. To get the user ID, you need to retrieve a list of incoming friend requests, copy the User ID, and store it somewhere safe for use in the following function.

# Retrieve a List of Outgoing Friend Requests

Use the following function to retrieve a list of outgoing friend requests.

# Cancel Outgoing Friend Requests

You can cancel outgoing friend requests using User ID. To get the user ID, you need to retrieve a list of outgoing friend requests, copy the User ID, and store it somewhere safe for the following function.

# Unfriend

Use the following function to unfriend another player.

# Friend Notifications

# Incoming Friend Notifications

When a player sends a friend request to another player, the receiver will get an incoming friend request notification. You’ll need to set up a delegate to enable this notification. Use the following function to implement the delegate for incoming friend request notifications.

# Accepted Friend Request Notification

Use the following function to set up a notification for when your friend accepts your friend request.

# Rejected Friend Request Notification

Use the following function to set up a notification for when a player rejects your friend request.

# Canceled Outgoing Friend Request Notification

Use the following function to set up a notification when another player cancels their friend request.

# Unfriend Notification

Use this function to set up a notification when a player unfriends another player.

# Block a Player

Blocking allows players to restrict other players from interacting with them. When one player blocks another, both players are prevented from:

  • Adding the other as a friend. If the players are already friends, they will be unfriended.
  • Sending or receiving messages to one another.
  • Seeing each other’s messages in global chat rooms.
  • Inviting each other to parties.
  • Meeting each other in matches.
  • Being placed in the same party. (Unless they are both invited by a third player. When this occurs, the two blocked players will be able to interact with each other in the party chat.)
  • Inviting each other to join groups.
  • Seeing each other’s player profiles in the group members lists. Blocked players cannot see the profile of the blocking player, and blocked players receive no notification regarding the block. See the tutorials below to implement player blocking using the SDKs.

# Block Player Request

Use the following function to block a player.

# Listen to Player Blocking Events

The game needs to know if a player has been blocked by another player to avoid matching blocked players together and other similar tasks. Blocking events can be tracked by subscribing to the below event. The event will be raised on the blocked player side and will pass data that contains both the blocking player and blocked player’s user IDs.

# Unblock a Player

Use the following function to unblock a player

# Listen to Player Unblocked Events

Just like the Player Blocked Event, this event will be raised on the unblock player’s side and will pass data that contains both the unblocking player and unblocked player’s User IDs.

# Retrieve List of Blocked Players

Use the following function to retrieve a list of currently blocked players. This method has a callback that returns an array of data containing the blocked players’ User IDs.

# Retrieve List of Blocked Players by User ID

Use the following function to retrieve a list of blocked players specific to a certain user, based on their User ID.

# Retrieve List of Blocking Players

Use the following function to retrieve a list of players that have blocked the current player. This method has a callback that returns an array of data that contains the blocking player’s User ID.

# Retrieve List of Blocking Players by User ID

Use the following function to retrieve a list of players that have been blocked by a specific player, using that player’s User ID.

# Bulk Synchronization of 3rd-Party Platform Friends

This process is used to connect players’ friends from 3rd-party platforms to AccelByte Cloud’s IAM service. This process works in the background and is triggered automatically every time your game starts, or manually by interaction between a player and the game client.

To allow your players to sync their 3rd-party platform friends lists with their AccelByte Cloud friends list, you must call user.BulkGetUserByOtherPlatformUserIds() and lobby.BulkRequestFriend() consecutively.