Skip to main content

Documentation Index

Fetch the complete documentation index at: https://cometchat-22654f5b-release-unreal-docs.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The UCometChatSubsystem exposes 40+ multicast delegates organized by listener type. All delegates fire on the Game Thread, so you can safely update UI directly.

Event Flow

Bind delegates before calling Login. Events that arrive between Login completing and your bindings being set up will be missed.

Binding Delegates

  1. Get a reference to the CometChat Subsystem
  2. Drag off the Subsystem pin and search for the delegate name (e.g., On Text Message Received)
  3. Select Bind Event to wire it to a custom event node
  4. The custom event automatically gets the correct parameter type

MessageListener Events

These fire when messages, typing indicators, receipts, or reactions arrive.
DelegatePayloadFires When
OnTextMessageReceivedFCometChatMessageA text message arrives
OnMediaMessageReceivedFCometChatMessageA media (image/video/audio/file) message arrives
OnCustomMessageReceivedFCometChatMessageA custom message arrives
OnInteractiveMessageReceivedFCometChatMessageAn interactive message arrives
OnInteractionGoalCompletedFCometChatInteractionReceiptAn interaction goal is completed
OnTypingStartedFCometChatTypingIndicatorA user starts typing
OnTypingEndedFCometChatTypingIndicatorA user stops typing
OnMessagesDeliveredFCometChatMessageReceiptMessages delivered to recipient
OnMessagesReadFCometChatMessageReceiptMessages read by recipient
OnMessagesDeliveredToAllFCometChatMessageReceiptMessages delivered to all group members
OnMessagesReadByAllFCometChatMessageReceiptMessages read by all group members
OnMessageEditedFCometChatMessageA message is edited
OnMessageDeletedFCometChatMessageA message is deleted
OnTransientMessageReceivedFCometChatTransientMessageA transient (ephemeral) message arrives
OnMessageReactionAddedFCometChatReactionEventA reaction is added to a message
OnMessageReactionRemovedFCometChatReactionEventA reaction is removed from a message
OnMessageModeratedFCometChatMessageA message moderation status changes
OnAIAssistantMessageReceivedFCometChatMessageAn AI assistant message arrives
OnAIToolResultReceivedFCometChatMessageAn AI tool result arrives
OnAIToolArgumentsReceivedFCometChatMessageAI tool arguments arrive
Bind to On Text Message Received. The custom event receives an FCometChatMessage. Use ReceiverType to check if it’s a user (1:1) or group message.

UserListener Events

These fire when a user’s online status changes.
DelegatePayloadFires When
OnUserOnlineFCometChatUserA user comes online
OnUserOfflineFCometChatUserA user goes offline
Bind to On User Online / On User Offline. The custom event receives an FCometChatUser with the user’s full profile.

GroupListener Events

These fire when group membership changes occur.
DelegatePayloadFires When
OnGroupMemberJoinedFCometChatAction, FCometChatUser, FCometChatGroupA user joins a group
OnGroupMemberLeftFCometChatAction, FCometChatUser, FCometChatGroupA user leaves a group
OnGroupMemberKickedFCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroupA member is kicked (includes who kicked)
OnGroupMemberBannedFCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroupA member is banned (includes who banned)
OnGroupMemberUnbannedFCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroupA member is unbanned
OnGroupMemberScopeChangedFCometChatScopeChangeEventA member’s role/scope changes
OnMemberAddedToGroupFCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroupA member is added by another user
Bind to On Group Member Joined. The custom event receives the action, the user who joined, and the group.

ConnectionListener Events

These fire when the WebSocket connection state changes.
DelegatePayloadFires When
OnConnectedWebSocket connection established
OnConnectingSDK is attempting to connect
OnDisconnectedWebSocket connection lost
OnFeatureThrottledA feature is being rate-limited
OnConnectionErrorFCometChatErrorA connection error occurred
Bind to On Connected, On Disconnected, etc. These are parameterless events (except OnConnectionError which provides an FCometChatError).

LoginListener Events

These fire on login/logout lifecycle events.
DelegatePayloadFires When
OnLoginSuccessFCometChatUserLogin succeeds
OnLoginFailureFCometChatErrorLogin fails
OnLogoutSuccessLogout succeeds
OnLogoutFailureFCometChatErrorLogout fails
Bind to On Login Success to receive the logged-in FCometChatUser after authentication completes.

AIAssistantListener Events

These fire when AI assistant interactions occur.
DelegatePayloadFires When
OnAIAssistantEventFCometChatAIAssistantEventAn AI assistant event occurs
Bind to On AI Assistant Event. The custom event receives an FCometChatAIAssistantEvent with event type, data, conversation ID, and sender UID.

Error Handling — FCometChatError

Many delegates and failure callbacks provide an FCometChatError struct with details about what went wrong. Always handle errors gracefully in your game.

FCometChatError

PropertyTypeDescription
CodeFStringMachine-readable error code (e.g., "ERR_AUTH_FAILED", "ERR_NETWORK")
MessageFStringHuman-readable error description
DetailsFStringAdditional context (may be empty)

Handling Errors

All async nodes have an On Failure pin. Wire it to a custom event that receives an FString error message. Connection and login listener events provide the full FCometChatError struct.
Best practice: Always bind OnConnectionError and OnLoginFailure delegates early. Network issues are common in games — show a reconnection banner rather than silently failing.

Manual Connection

By default, the SDK auto-connects the WebSocket after login. For games with loading screens or lobbies where real-time events aren’t needed immediately, you can manage the connection manually.

Setup Manual Mode

Set bAutoEstablishSocketConnection = false in FCometChatAppSettings when configuring:
FCometChatAppSettings Settings;
Settings.Region = TEXT("us");
Settings.bAutoEstablishSocketConnection = false;
Chat->ConfigureWithSettings(TEXT("YOUR_APP_ID"), Settings);

Connect / Disconnect / Ping

  • Connect Async — Establish the WebSocket after login
  • Disconnect Async — Close the WebSocket (user stays authenticated)
  • Ping Async — Verify the connection is alive

Query Connection State

ECometChatConnectionState State = Chat->GetConnectionStatus();
// Connected, Connecting, Disconnected, or FeatureThrottled
For full details on manual connection management, see Advanced Configuration.

Next Steps

Typing Indicators

Send and receive typing state.

UI Components

Drop-in chat panel and button widgets.