Skip to main content
The UCometChatSubsystem exposes five multicast delegates that fire whenever the server pushes a real-time update. All delegates are guaranteed to 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 Message Received)
  3. Select Bind Event to wire it to a custom event node
  4. The custom event automatically gets the correct parameter type

OnMessageReceived

Fires when a new message arrives in any conversation (1:1 or group).
The custom event receives an FCometChatMessage. Use ReceiverType to check if it’s a user (1:1) or group message, and ConversationId to route it to the right chat window.

OnPresenceChanged

Fires when a user’s online status changes.
The custom event receives an FCometChatPresence with Uid, Status (an ECometChatPresenceStatus enum), and LastActiveAt.
For more details, see Users → User Presence.

OnTypingChanged

Fires when a user starts or stops typing in a conversation.
The custom event receives an FCometChatTypingEvent with Uid, ConversationId, and bIsTyping.
For more details, see Typing Indicators.

OnReceiptReceived

Fires when a message is delivered to or read by the recipient.
The custom event receives an FCometChatReceiptEvent with MessageId, Uid, Status (delivered or read), and Timestamp.
For more details, see Delivery & Read Receipts.

OnConnectionStateChanged

Fires when the WebSocket connection state changes.
The custom event receives an ECometChatConnectionState enum value.
For more details, see Connection Status.

Delegate Summary