## 1.0.2
*April 28, 2026*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix very rare bug that objects could be created during Garbage Collector phase, what would end up in failing construction of the UObject. |
## 1.0.1
*April 20, 2026*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix compilation errors when C++ 20 support is not enabled by replace designated initializers.<br/>• Fix not initialized properly errors printed for some UStruct properties. |
## 1.0.0
*April 2, 2026*
| Type | Changes |
|------|----------|
| **Added** | • The subsystem now supports multiple simultaneous chat sessions keyed by UserID.<br/>• All public methods now have synchronous and asynchronous variants. Async methods use the 'Async' suffix and accept a delegate for handling the result.<br/>• Entity objects (channels, users, memberships, messages) are now synchronized by ID. All references to the same entity ID share the latest locally known data, so updating one instance updates the others.<br/>• Added a chat config option to specify which channel types publish read receipt events.<br/>• Memberships can now be hard-deleted.<br/>• Added methods for retrieving and checking singular memberships for users and channels.<br/>• Added a plug-and-play chat UI sample in Content/SampleChat, including the W_PubnubChat_Sample widget.<br/>• Added a utility AppendText() method to Membership.<br/>• Added GetMessageElements() to Message. It returns the same data model as MessageDraft. |
| **Modified** | • BREAKING CHANGE: The precompiled external Cpp Chat library is no longer required. PubNub UE Chat SDK now depends on PubNub UE SDK (Core).<br/>• BREAKING CHANGE: Public types now follow a consistent FPubnubChat... / UPubnubChat... naming scheme so classes, delegates, results, and input types belong to this plugin and do not collide with other PubNub plugins.<br/>• BREAKING CHANGE: All operation result types now include a common FPubnubChatOperationResult inside dedicated FPubnubChat...Result structs, for both synchronous returns and async callbacks. Use it to handle success and error state consistently across all operations.<br/>• Connect and Join are now separate concepts. Join only adds a member to a channel and no longer calls Connect internally. Use Join + Connect to preserve the previous behavior.<br/>• BREAKING CHANGE: ListenForEvents has been replaced with dedicated streams for each event type, exposed on the related entities.<br/>• BREAKING CHANGE: Read receipts now use per-user read events instead of aggregated event data.<br/>• BREAKING CHANGE: Message reactions now use a simpler, easier-to-use format.<br/>• BREAKING CHANGE: Most advanced message sending features, such as files, quotes, and mentions, are now available only through MessageDraft.<br/>• BREAKING CHANGE: Internal events such as invites and mentions can no longer be sent manually. Only events with the Custom type may be sent directly. |
## v0.4.4
*August 21, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix crash that could be caused by Connection Status Listener, because it was not executed on Game Thread. |
## v0.4.3
*July 8, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix crashes that could happen when empty or invalid parameters were passed to some functions. Add needed guard checks and print to log in case of incorrect input.<br/>• Remove false warnings that were printed from C-Core.<br/>• Adjust Copyrights in files and FabUrl to fix issues reported by FAB. |
## v0.4.2
*June 16, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Add support for UE 5.6. |
## v0.4.1
*June 2, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Add Connection Status Listener and Reconnect/DisconnectSubscriptions methods. |
## v0.4.0
*May 12, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Add dedicated structure to hold Membership CustomJson, Status and Type and replace setting CustomJson with this structure. |
| **Modified** | • Add debugging symbols. |
| **Fixed** | • Fix bugs that sometimes Membership CustomData was set from Channel CustomData. |
| Fixed | - Fix very rare bug that objects could be created during Garbage Collector phase, what would end up in failing construction of the UObject.
|
| Fixed | - Fix compilation errors when C++ 20 support is not enabled by replace designated initializers.
- Fix not initialized properly errors printed for some UStruct properties.
|
| Added | - The subsystem now supports multiple simultaneous chat sessions keyed by UserID.
- All public methods now have synchronous and asynchronous variants. Async methods use the 'Async' suffix and accept a delegate for handling the result.
- Entity objects (channels, users, memberships, messages) are now synchronized by ID. All references to the same entity ID share the latest locally known data, so updating one instance updates the others.
- Added a chat config option to specify which channel types publish read receipt events.
- Memberships can now be hard-deleted.
- Added methods for retrieving and checking singular memberships for users and channels.
- Added a plug-and-play chat UI sample in Content/SampleChat, including the W_PubnubChat_Sample widget.
- Added a utility AppendText() method to Membership.
- Added GetMessageElements() to Message. It returns the same data model as MessageDraft.
|
| Modified | - BREAKING CHANGE: The precompiled external Cpp Chat library is no longer required. PubNub UE Chat SDK now depends on PubNub UE SDK (Core).
- BREAKING CHANGE: Public types now follow a consistent FPubnubChat... / UPubnubChat... naming scheme so classes, delegates, results, and input types belong to this plugin and do not collide with other PubNub plugins.
- BREAKING CHANGE: All operation result types now include a common FPubnubChatOperationResult inside dedicated FPubnubChat...Result structs, for both synchronous returns and async callbacks. Use it to handle success and error state consistently across all operations.
- Connect and Join are now separate concepts. Join only adds a member to a channel and no longer calls Connect internally. Use Join + Connect to preserve the previous behavior.
- BREAKING CHANGE: ListenForEvents has been replaced with dedicated streams for each event type, exposed on the related entities.
- BREAKING CHANGE: Read receipts now use per-user read events instead of aggregated event data.
- BREAKING CHANGE: Message reactions now use a simpler, easier-to-use format.
- BREAKING CHANGE: Most advanced message sending features, such as files, quotes, and mentions, are now available only through MessageDraft.
- BREAKING CHANGE: Internal events such as invites and mentions can no longer be sent manually. Only events with the Custom type may be sent directly.
|
| Fixed | - Fix crash that could be caused by Connection Status Listener, because it was not executed on Game Thread.
|
| Fixed | - Fix crashes that could happen when empty or invalid parameters were passed to some functions. Add needed guard checks and print to log in case of incorrect input.
- Remove false warnings that were printed from C-Core.
- Adjust Copyrights in files and FabUrl to fix issues reported by FAB.
|
| Added | - Add Connection Status Listener and Reconnect/DisconnectSubscriptions methods.
|
| Added | - Add dedicated structure to hold Membership CustomJson, Status and Type and replace setting CustomJson with this structure.
|
| Modified | |
| Fixed | - Fix bugs that sometimes Membership CustomData was set from Channel CustomData.
|