Changelog
This document describes the changes made in each release.
2024.04.25
This release adds support for Unreal Engine 5.4, and adds bindings for modifying UOnlineLeaderboardWrite
objects.
2023.09.08
This release adds support for the stable release of Unreal Engine 5.3, increases API support, and fixes a few issues:
- Added support for Unreal Engine 5.3.
- Added bindings for the rest of the
IOnlineChat
interface. Most online subsystems don't support this interface, so you'll need an online subsystem that supports it in order to use these new bindings. - Added support for the "MemberSettings" property on UOnlineSessionInfo objects.
- Fixed a few IWYU issues that impacted Unreal Engine 5.2.
- The conditional defines for engine versions have been made public defines so that you can include the Online Subsystem Blueprint headers in your own C++ code.
2023.05.15
This release adds support for the stable release of Unreal Engine 5.2, and fixes one issue:
- Added the
ONLINESUBSYSTEMBLUEPRINTS_API
macro to the C++ types that were missing it. The lack of this macro prevented you from using these types in your own C++ game code.
2023.04.21
This release adds support for Unreal Engine 5.2 Preview 2.
- A few party-related APIs that were deprecated in Unreal Engine 5.1 have now been removed when targeting 5.1 and later. This prevents depreciation warnings when the plugin is being compiled.
- The code generator that we use to generate the blueprint bindings has been rewritten in C#. This is unlikely to affect any customer, but will impact you if you customized the PowerShell scripts that were used for code generation. If you previously customized the PowerShell scripts, you may need to port your changes to the C# version.
2022.11.22
This release adds support for the Unreal Engine 5.1 stable release. There's no functional changes, but Unreal Engine 5.1 has now been submitted to the Marketplace.
2022.11.04
This release fixes bugs and adds support for Unreal Engine 5.1 Preview 2:
- Added support for the
IOnlineAchievements::WriteAchievements
API. - Added support for more APIs on the
IOnlineEntitlements
interface. - Added support for Unreal Engine 5.1 Preview 2.
- Fixed issues that were caused by the removal of unique request checks in 2022.06.09. These checks have been restored to resolve these issues. It is not possible to remove these uniqueness checks due to limitations on the underlying C++ APIs that are being called.
- Fixed a compilation issue if you had nativization enabled in your Unreal Engine 4 project.
2022.10.11
This release adds support for new interfaces and drops support for 4.24 and 4.25:
- Added support for
IOnlineStoreV2
,IOnlinePurchase
andIOnlineEntitlements
in Unreal Engine 4.27 and 5.0.- You can manually run the binding generator if you need support for these interfaces in Unreal Engine 4.26, but we didn't automatically update the 4.26 bindings to support these new interfaces as 4.26 will be removed in the near future when Unreal Engine 5.1 is released.
- Removed bindings for 4.24 and 4.25 from the source code repository. You can manually run the binding generator for these engines if you need to, but we no longer provide support for them.
- Renamed some C++ header files to avoid conflicts with the other plugin header files.
2022.06.09
This release brings significant new functionality and fixes a number of long standing bugs in Online Subsystem Blueprints:
- The Online Subsystem Blueprints documentation has been completely overhauled.
- We now include examples for every supported blueprint function and event, and you can copy-paste them directly from your web browser into your blueprint graph.
- We also include coverage information, platform support and engine support information for subsystems.
- For an example of what the new documentation looks like, check out the Identity -> Login function documentation.
- There's no longer separate documentation for each engine version, which should make it much simpler to navigate the documentation.
- Added support for accessing any online subsystem, not just the default online subsystem. You can access the interfaces for a named subsystem through the new
Online Subsystem
subsystem. This subsystem contains functions for getting the various interfaces with a subsystem name specified.- You can also pass
Native
as the subsystem name to these functions to retrieve the native online subsystem for the platform.
- You can also pass
- All asynchronous blueprint nodes now support being called concurrently providing the underlying online subsystem permits it. You'll no longer see errors or call failures related to "There is already a pending request running with ID ...".
- Added support for the
IOnlineGameActivity
interface and all of it's functions and events. - Added a "Get Player State Unique Net Id" helper blueprint node. This is useful on multiplayer clients when you want to get the user ID of other players and don't have access to their player controllers.
- Added a "Get Current Subsystem Name" helper blueprint node. This returns the name of the current default subsystem in use (such as
RedpointEOS
orSteam
). - Exposed the new
bUseLobbiesIfAvailable
andbUseLobbiesVoiceChatIfAvailable
properties on session settings. - All
USTRUCT
andUCLASS
type headers have been moved to thePublic
folder. This allows you to reference these types from your game's C++ code, allowing you to pass them directly from blueprints down to C++ if you need to. - Fixed an issue in Unreal Engine 5.0 where the lobby equality blueprint node would be chosen over the generic
UObject
equality node. - Fixed warnings in Unreal Engine 5.0 related to uninitialized USTRUCT properties.
- Fixed a crash that occurred when
FOnlineStatsUserStatsBP
tried to wrap an invalid result. - Fixed a crash that would occur if there was no online subsystem implementation available at all.
- Fixed a crash that would occur when stopping play-in-editor while using Voice Chat.
- Fixed potential crashes that could occur when passing in invalid user IDs to various blueprint nodes.
- Fixed an issue in the example projects in Unreal Engine 5.0 where some lists would not be populated with the results. This was due to the Unreal Engine 5.0 garbage collector being more aggressive in cleaning up the list items instead of retaining them, and was not a bug in the plugin itself.
- Removed the deprecated
IOnlineSession::OnSessionCustomDataChanged
event from 4.27 and 5.0 APIs. Wrapping this deprecated function caused compiler warnings to be emitted when projects were built.
2022.04.08
This release has no functional changes, but instead marks the submission of Online Subsystem Blueprints to the Unreal Engine Marketplace for Unreal Engine 5.0 support.
2022.03.09
This release adds support for Unreal Engine 5 and improves blueprint nodes:
- Unreal Engine 5 Preview 2 is now supported. Early Access builds are no longer supported.
RejectInvite
,DeleteFriend
,QueryRecentPlayers
,BlockPlayer
,UnblockPlayer
andQueryBlockedPlayers
in theIOnlineFriends
interface are now correctly treated as asynchronous (latent) blueprint nodes.- Fixed a crash that would occur if you called
GetAccessToken
,GetAuthAttribute
orSetUserAttribute
on aUUserOnlineAccountRef
that was not pointing to a valid user.
2022.02.06
This is a minor release to keep the avatar and lobby interfaces compatible with EOS. You must upgrade to this release if you're also upgrading the EOS plugin to 2022.02.06.
2021.11.11
This release fixes bugs and adds support for new APIs in online subsystems:
- Added bindings for the new
GetAvatarUrl
function onIOnlineAvatar
. This change was contributed by a community member via a merge request. - Fixed a crash that could occur when initializing Online Subsystem Blueprints on some console platforms.
- Fixed an issue that prevented the plugin from compiling on Unreal Engine 4.25.
- Fixed a crash that would occur if the Online Subsystem Blueprints subsystems were released by the garbage collector, but the online subsystem fired an event callback.
2021.08.20
This release adds support for Unreal Engine 4.27 and fixes one issue.
- Unreal Engine 4.27 is now supported. Binaries for Unreal Engine 4.27 are expected to be available on the Unreal Engine Marketplace in the next few days, depending on how long it takes Epic to build and publish them.
- Fixed an issue where EOnlineStatModificationType_ had the wrong script name, which caused issues when using Unreal Engine's Python integration.
2021.08.17
This version adds support for the IVoiceChat, IVoiceChatUser and IOnlineVoiceAdmin interfaces.
- Added support for the
IVoiceChat
interface. This interface isn't technically part of online subsystems, but is necessary for interacting with voice chat and so Online Subsystem Blueprints now includes bindings for it. This also includes bindings forIVoiceChatUser
for voice chat systems that support multiple local users (like EOS). - Added support for the
IOnlineVoiceAdmin
interface. This is a custom interface exposed by EOS Online Subsystem that allows you to control voice chat rooms on dedicated servers. - You can now subclass UOnlineFriendRef and UOnlineUserRef in blueprints. This allows you to store your own custom friend implementations in the same array as friends returned from online subsystems.
2021.07.07
This version adds support for the IOnlineAvatar interface and fixes a range of issues. It also adds support for Unreal Engine 4.24, 4.27 and 5.0 Early Access:
- Added support for the
IOnlineAvatar
interface. This is a custom interface exposed by EOS Online Subsystem that allows you to fetch and display player avatars. - Added support for Unreal Engine 4.24.
- Added support for Unreal Engine 4.27.
- Added support for Unreal Engine 5.0 Early Access.
- Fixed an issue where
FindFriendSession
would be listening for the wrong event for it's result value. This has now been fixed, but means the input arguments to this blueprint node have had to change. - Fixed a crash that could occur if you called
Get Party Data
with an invalid party. - Fixed a crash that could occur due to
UParty
holding onto the online subsystem party object after the online subsystem had shutdown. - Improved error messaging if you try to use Online Subsystem Blueprints inside the Init event in Game Instance (you should add a Delay node if you want to use Online Subsystem Blueprints in that event).
- Improved the documentation to indicate function coverage for each engine version specifically. When viewing the documentation, you can select the engine version in the top-right.
- If you're using the plugin from the Git repository, you no longer need to use the branch specific to your engine version. Instead, all engine versions are supported by the new
main
branch.
2021.05.10
This version adds support for the IOnlineLobby, IUserCloud and ITitleFile interfaces. It also adds new helper functions and fixes bugs:
- Added support for the
IOnlineLobby
interface. This is a custom interface exposed by EOS Online Subsystem that allows you to create, connect, disconnect and join lobbies. You can also use this interface to search for parties. - Added support for the
IOnlineUserCloud
interface, including reading, writing and listing files. - Added support for the
IOnlineTitleFile
interface, including reading files. - Added a "Get Subsystem Type" node for FUniqueNetIdRepl that allows you to detect the subsystem that made the ID.
- Added an "Is Valid" node for FUniqueNetIdRepl that returns whether or not the ID is valid.
- Added the following helpers to use with the new
OnlineUserCloudSubsystem
andOnlineTitleFileSubsystem
subsystems:- "Create File Data from String" which creates a
UFileData
for uploading from a string value. - "Create File Data from Save Game" which creates a
UFileData
for uploading from aUSaveGame
instance. - "Read File Data as String" which reads a downloaded
UFileData
as a string value. - "Read File Data as Save Game" which reads a downloaded
UFileData
as aUSaveGame
instance.
- "Create File Data from String" which creates a
- Added support for the
OnPartyMemberExited
event in theOnlinePartySubsystem
subsystem. - Updated the example projects to demonstrate how to access friends and use the new lobby, user cloud and title file interfaces.
The features and bug fixes are available for both Unreal Engine 4.26 and 4.25.
2021.02.26
This version significantly overhauls the example projects, add new bindings to Online Subsystem Blueprints and fixes bugs:
- The example projects now demonstrate how to use stats, achievements and leaderboards, if the online subsystem you are using supports them.
- The content in the example projects have been moved to an
ExampleOSS
folder, making it easier for you to copy content into your own projects.
- The content in the example projects have been moved to an
- Added an equality comparison (
==
) node forFUniqueNetIdRepl
, allowing you to compare user IDs from blueprints. - Fixed an issue where Online Subsystem Blueprints would use the wrong subsystem to fix up non-shared unique net IDs. This notably occurred when using delegated subsystems with EOS Online Subsystem.
- Changes to
OnlineSessionSubsystem
:- Fixed
Find Session By Id
being incorrectly bound to theOnFindSessionsComplete
global handler, instead of the callback parameter. - The return values from
Find Session By Id
are now correctly named.
- Fixed
- Changes to
OnlineIdentitySubsystem
:GetUserAccounts
now returns an array ofUUserOnlineAccountRef
. This is a new derived type withGet Access Token
,Get Auth Attribute
andSet User Attribute
bindings, allowing you to access those methods that are available only for locally signed in users.
- Changes to
OnlinePartySubsystem
:- The
UPartyData
type has been split intoUReadablePartyData
andUMutablePartyData
types. Get Attribute
has been added ontoUReadablePartyData
.Set Attribute
andRemove Attribute
have been added ontoUMutablePartyData
.- When you obtain
UReadablePartyData
fromGet Party Data
, you can now pass it through the newCreate Modifiable Party Data
blueprint node. This will give you aUMutablePartyData
where you can set and remove attributes, before passing it intoUpdate Party Data
. - The
On Fill Party Join Request
event is now supported. - The functions on
UBlueprintPartyMember
are now pure functions.
- The
- Changes to
OnlineAchievementsSubsystem
:Get Cached Achievement
,Get Cached Achievements
andGet Cached Achievement Descriptions
are now all available. You can use these blueprint nodes after the query nodes to obtain the actual achievement data.- Added
Online Achievement BP
andOnline Achievement Desc BP
structures. - The return values from query nodes are now correctly named.
- Changes to
OnlineLeaderboardsSubsystem
:Read Leaderboards
,Read Leaderboards For Friends
,Read Leaderboards Around Rank
andRead Leaderboards Around User
are now all correctly marked as asynchronous (latent) blueprint nodes.
- Changes to
OnlinePresenceSubsystem
:- Fixed the presence values on
Get Cached Presence
andGet Cached Presence for App
not being correctly treated as return values.
- Fixed the presence values on
The new example projects are only available for Unreal Engine 4.26.
The features and bug fixes are available for both Unreal Engine 4.26 and 4.25.
2021.02.08
This version adds new features and fixes issues:
- Added support for the
IOnlineStats
interface (both reading and writing stats). - Added
SetColumns
function toUOnlineLeaderboardRead
object, so you can correctly set that up for reading leaderboards. - Fixed FVariantDataBP not supporting boolean values properly.
- Added a check inside
OnlineSubsystemBlueprints.Build.cs
to ensure that you have the correct branch checked out in Git for your Unreal Engine version.
These features are available for both Unreal Engine 4.26 and 4.25.
2020.12.16
This version adds new fields to session and party types:
- Added "Get Party Id", "Get Party Type Id" and "Get Leader Id" to
UParty
. - Added read-only "Session Id" property to
FOnlineSessionBP
andFNamedOnlineSessionBP
structs.
These features are available for both Unreal Engine 4.26 and 4.25.
2020.12.07
This version adds support for Unreal Engine 4.26. There are no other changes.
2020.11.04
This version has new features and bug fixes:
- Added support for handling external UI logins through the "External Login UI Handler" interface. Refer to the example project on how to use this new functionality.
- Fixed an issue where the Register Players and Unregister Players blueprint nodes on the sessions interface had the wrong event handler set for completion.
2020.10.19
This version has new features and bug fixes:
- Added support for the
IOnlineUser
interface, and all of it's related types. - Added support for the read functions in the
IOnlineLeaderboards
interface. Unreal Engine 4 already has a built in blueprint node to handle writing to leaderboards. - Added a "Get Controller Unique Net Id" blueprint node which will return the
FUniqueNetIdRepl
for a given player controller. - Asynchronous nodes now log the reason for call failure when the "Call Failure" pin is executed. This should help you diagnose errors related to invalid parameters.
- Fixed an issue where asynchronous nodes that returned arrays could not be used (due to the delegate array parameter being an invalid type for blueprints).
- Fixed an crash caused by array and map elements not being validated before call execution.
2020.10.02
This version has new features and bug fixes:
- Added support for the
IOnlineSession
interface, and all of it's related types. - Replaced the autogenerated names for some event parameters with their correct names.
- Prevent conflicting asynchronous requests from running.
2020.09.09
This version has new features and bug fixes:
- Added support for the
IOnlinePartySystem
interface, and all of it's related types. - Added support for the
IOnlinePresence
interface, and all of it's related types. - Fixed an issue where the lifetimes of subsystems was not correct.
- Fixed an issue where subsystems would not correctly retrieve the world pointer in some circumstances.
- Updated the plugin to use new versioning conventions.
1.25.2 (11th July)
Fixed an issue where the editor would stall for several seconds when using the NULL
online subsystem and starting play-in-editor for the first time in an editor session.
The GetLoginStatus
method on the identity interface has been changed to use the version that accepts a LocalUserNum
instead of a UserId
. Some subsystems can only provide user IDs for authenticated users, and may require calling GetLoginStatus
before GetPlayerUniqueId
can be called safely.
1.25.1 (9th July)
Fixed an crash caused by platform implementations passing stack-allocated FUniqueNetId
instances, instead of allocating them through the shared pointer system. This update implements a workaround for buggy platforms to resolve the issue.
1.25.0
Initial release.