Changelog
1.9.8.9
New
-
Online Subsystem interfaces. The
EOSCoreOnline Subsystem now implementsIOnlineFriends,IOnlinePresence,IOnlineUserand parts ofIOnlineExternalUI. See Supported Platforms and Features.- Friends: read the friends list, send, accept and reject friend invites, query blocked players, and get friends list and blocklist notifications.
- Presence: set and query presence, with presence change notifications. Friend presence is kept in sync.
- User: query user info and display names, look up users by display name, and query external account mappings.
- External UI:
ShowLoginUI(Account Portal),ShowFriendsUI(EOS overlay),ShowWebURLandOnExternalUIChange.
-
Join from the overlay. Pressing Join on a friend in the EOS social overlay now calls
OnSessionUserInviteAcceptedwith the friend's session. See Join Friends Multiplayer Game. -
Lobby sessions. With
bUseLobbiesIfAvailablethe Online Subsystem session interface creates, finds (SEARCH_LOBBIES), joins, updates and leaves EOS Lobbies, with lobby invites, overlay joins, member attributes and participant joined/left notifications. See Lobby Sessions. -
FindSessionByIdfinds lobbies and EOS sessions by id, andFindFriendSessionfinds the lobby a friend is in. -
UpdateSessionnow applies changes toNumPublicConnections(max players) andbAllowInvites. -
Platform handle provider. The EOS platform is shared through the
EOSPlatformHandleProvidermodular feature, so other plugins (such as HostMigrationCore) can use the same EOS platform without depending on EOSCore. See Platform Handle Provider. -
New settings in the
[/Script/OnlineSubsystemEOSCore.EOSCoreSettings]section:SDKLogLevelsets the EOS SDK log level.TaskNetworkTimeoutSecondssets the network timeout for EOS tasks.
See Settings Reference.
-
Connect logout. Logging out of the Online Subsystem now also calls
EOS_Connect_Logout. -
Mobile lifecycle. The EOS application status is set to background suspended or foreground when the app is suspended or resumed.
Changed
- Platforms: the plugin now lists its supported platforms (
PlatformAllowList), so it is no longer loaded on unsupported platforms. -AUTH_TYPEautomatic login: credential types now have to match the EOS SDK type names exactly (not case sensitive). An unknown type fails the login instead of picking the wrong credential type. See Command Line Arguments.- Blueprint functions called before EOS is initialized, or without a valid platform, now return
EOS_NotConfiguredinstead of failing without a result. - Async nodes called without a valid platform now always run their failure output instead of never completing.
- Multiple worlds: when a world is available (PIE with several clients, for example), the EOSCore subsystem now only uses that world's instance.
- EOS log messages (
ListenForEOSMessages) are now delivered on the game thread. SDK fatal messages are logged asError, so they no longer crash the game. - Configuration overrides:
DefaultConfigurationNameis only used when no other configuration matches. - Settings:
bEnabledis now read from theOnlineSubsystemEOSCoresettings section. - Logging:
- Access tokens, auth tokens and Web API responses are no longer written to the log.
- A missing Android or iOS Client Id now gives a build warning.
- Android: the default
AndroidClientIdis now empty instead of an example value. - Packaging:
xaudio2_9redist.dllis staged with the EOS SDK, and the bundled copy is used when the system copy is missing. - Error dialog: the dialog for a failed EOS SDK load is no longer shown on dedicated servers, in commandlets or in unattended runs.
Fixed
- Crash when Online Subsystem callbacks ran after their interface had been destroyed, for example during shutdown or a level change.
- EOS notifications not removed when the Identity and Session interfaces were destroyed.
- Null dereference in
EndSessionfor LAN sessions. - Null dereferences in the Auth and Connect login status changed handlers.
Logincontinuing when the EOS subsystem was missing.- Memory leaks in the session invite received and invite accepted handlers. Accepting an invite also checks that the session details could be read.
- PlayerDataStorage reads and writes sharing the same progress callback.
- PlayerDataStorage transfer handles that were never released.
- The EOS platform not being released on shutdown, and the SDK not being shut down last.
- Wrong EOS cache directory on iOS.
- A heap allocation for the XAudio DLL path that was never freed.
- Async action callback signatures that did not match their delegates.
- Compatibility with newer engine versions in the Build.cs version checks.
OnJoinSessionCompletebeing called twice when joining an EOS session, and a failed join leaving the session behind.- The completion delegate passed to
DestroySessionnot being called for EOS sessions. - Session invites failing for friends whose Product User Id was not cached by the Identity interface.
SEARCH_LOBBIESbeing sent as a search filter in EOS session searches.