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.
- Blueprint
- C++
Get a reference from any Blueprint:Get Game Instance → Get Subsystem → select CometChatSubsystem
- 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 areUCometChatAsyncAction 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.- Blueprint
- C++
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.
Data Types
The plugin uses Unreal-nativeUSTRUCT types — no std::string or STL containers leak into your game code.
FCometChatUser
FCometChatMessage
FCometChatGroup
FCometChatPagination
FCometChatPresence
FCometChatTypingEvent
FCometChatReceiptEvent
Enums
ECometChatConnectionState
ECometChatPresenceStatus