Skip to main content
Before diving into individual features, it helps to understand the three building blocks of the plugin: the Subsystem, Latent Async Nodes, and Real-Time Delegates.

The Subsystem

UCometChatSubsystem is a UGameInstanceSubsystem — Unreal creates one instance automatically when your game starts, and it lives for the entire session. You never need to spawn or manage it yourself.
Get a reference from any Blueprint:Get Game InstanceGet Subsystem → select CometChatSubsystem
The Subsystem handles:
  • Configuration — storing your App ID and Region
  • SDK lifecycle — creating and shutting down the underlying C++ SDK
  • Auth state — tracking whether a user is logged in
  • Real-time events — exposing multicast delegates for push notifications

Latent Async Nodes

Every SDK operation that talks to the network (Login, Send Message, Get Messages, etc.) is exposed as a latent async action — a Blueprint node with two output execution pins:

How an Async Node Executes

In C++, these are UCometChatAsyncAction subclasses. You create them with a static factory method, bind delegates, and call Activate():
All async callbacks fire on the Game Thread, so it’s safe to update UI, spawn actors, or call other engine APIs directly from the callback.

Available Async Nodes


Real-Time Delegates

The Subsystem exposes five multicast delegates for real-time push events. Bind to them once after calling Configure, and they’ll fire whenever the server pushes an update.
Drag off the Subsystem reference and search for the delegate name (e.g., On Message Received). Use Bind Event to wire it to a custom event.
Bind your delegates before calling Login. Events that arrive between Login and binding will be missed.

Data Types

The plugin uses Unreal-native USTRUCT types — no std::string or STL containers leak into your game code.

FCometChatUser

FCometChatMessage

FCometChatGroup

FCometChatPagination

FCometChatPresence

FCometChatTypingEvent

FCometChatReceiptEvent

Enums

ECometChatConnectionState ECometChatPresenceStatus