Chat

Overview

Chat is a service that allows players to send and receive messages to their friends or party members in real-time. This service includes notifications to inform users of messages being sent or received. The Chat service is divided into three basic features:

  1. Chat: Send Personal Chat allows players to message their friends. The sender will receive a notification when their message has been sent, and the recipient will receive a notification when they have a new message.
  2. Chat: Send Party Chat allows users to send a message to all of the players in their party. The party members will be notified when they have a new message from the sender.
  3. Load Personal Chat History involves retrieving a player’s chat history with another player. This action can be performed by sending an HTTP Request only if the player has permission to perform this action, i.e. the player hasn’t been blocked.

Tutorials

Chat features are handled by the Lobby service. You must connect to the Lobby service before you can enable chat.

Personal Chat

Players can communicate with other players using personal chat.

Send a Personal Chat

A player can send a personal message to any other player, if they know their User ID.

string userId = "YourFriendUserId";
string chatMessage = "Hi! How are you?";
AccelBytePlugin.GetLobby().Connect();
AccelBytePlugin.GetLobby().SendPersonalChat(userId, chatMessage, result =>
{
if(!result.IsError)
{
Debug.Log("Message sent successfully.");
}
else
{
Debug.Log("Failed to send a private message! Code: " + result.Error.Code);
}
});

Receive a Personal Chat

Personal chats can be received by registering to the personal chat event.

AccelBytePlugin.GetLobby().PersonalChatReceived += result =>
{
Debug.Log(result.from + " send a private message to you (" + result.to + ")!");
Debug.Log("Message: " + result.payload + "\n");
};

Party Chat

When a party has been formed, its members can use the chat feature to communicate with each other. Every message sent will be received by all of the party members.

Send a Party Chat

The Lobby service will automatically direct a player’s messages to their own party, so the player doesn’t need to know their Party ID.

AccelBytePlugin.GetLobby().SendPartyChat("Hello, my party.", result =>
{
if(!result.IsError)
{
Debug.Log("Successfully send a party message!");
}
else
{
Debug.Log("Failed to send a private message! Code: " + result.Error.Code);
}
});

Receive a Party Chat

A party chat can be received by registering to a party chat event.

AccelBytePlugin.GetLobby().PartyChatReceived += result =>
{
Debug.Log(result.from + " send a private message to you (" + result.to + ")!");
Debug.Log("Message: " + result.payload + "\n");
};

Global Chat

Join a Default Channel

Players can join a default channel to chat with all other players currently logged into the game.

AccelBytePlugin.GetLobby().JoinDefaultChatChannel(result =>
{
if(!result.IsError)
{
Debug.Log("Successfully join the default channel!");
}
else
{
Debug.Log("Failed to join the default channel! Code: " + result.Error.Code);
}
});
string chatMessage = "Hi! How are you people?";
AccelBytePlugin.GetLobby().SendChannelChat(chatMessage, result =>
{
if(!result.IsError)
{
Debug.Log("Successfully send a channel message!");
}
else
{
Debug.Log("Failed to send a channel message! Code: " + result.Error.Code);
}
});

Receive a Global Chat

Receiving a message from a global channel can be done by registering to a channel chat event using the following code:

AccelBytePlugin.GetLobby().ChannelChatReceived += result =>
{
Debug.Log(result.from + " send a channel message!");
Debug.Log("Message: " + result.payload + "\n");
}

What’s Next?

  • For the technical details about Chat, take a look at our API References.