Updating EOSCore from a previous installment to this new version will BREAK your project, you will need to update your DefaultEngine.ini to use the new configuration settings.
This means that all EOS settings are now called EOSCore.
The reason for this change is simply so the EOSCore subsystem does not conflict with Epic’s EOS implementation that is shipped with the engine in the future.
Some references will also break and will need updating, such as “Create EOS Session” nodes.
Old
[OnlineSubsystem]
DefaultPlatformService=EOS
New
[OnlineSubsystem]
DefaultPlatformService=EOSCore
Old
[/Script/OnlineSubsystemEOS.NetDriverEOS]
NetConnectionClassName="OnlineSubsystemEOS.NetConnectionEOS"
bIsUsingP2PSockets=true
New
[/Script/OnlineSubsystemEOSCore.NetDriverEOSCore]
NetConnectionClassName="OnlineSubsystemEOSCore.NetConnectionEOSCore"
bIsUsingP2PSockets=true
Old
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
New
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOSCore.NetDriverEOSCore",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
Old
[/Script/OnlineSubsystemEOS.EOSCoreSettings]
DefaultConfigurationName=DefaultConfig
TickBudgetInMilliseconds=0
+EOSConfigurations=...
New
[/Script/OnlineSubsystemEOSCore.EOSCoreSettings]
DefaultConfigurationName=DefaultConfig
TickBudgetInMilliseconds=0
+EOSConfigurations=...
WARNING!
General
Renamed all function parameters to match the Unreal coding standard
Old Style: void MyFunction(param1, param2, param3);
New Style: void MyFunction(Param1, Param2, Parm3);
Cleaned up a lot of unused code
Refactored a lot of logic
Updated the tooltip for all EOS functions to match the latest tooltip from the SDK
Added a custom DisplayName to all EOS functions to make the functions easier to read
ECOM
Refactored most Ecom functions to fix an issue when submitting arrays on some systems/configurations
Converted OfferId struct to a regular FString
Lobby
LobbyId has been converted to a FString rather than a struct
Added a == identitcal utlity function for EcomCatalogItemId
Sessions
Added “Update EOS Session” async function to update your current game sessions settings
EOS SDK 1.12.0
New Features:
Anti-Cheat (Preview Service): The initial release of Easy Anti-Cheat as part of Epic Online Services gives you tools to address cheating in online multiplayer games. See documentation for details.
Achievements
Bug Fix: Fixed notification not showing in Achievements sample when unlocking hidden achievements.
Authentication
Changed logging level from Warning to Verbose when EOS_Auth_Login is used with EOS_LCT_PersistentAuth and no existing local credentials are reported.
Bug Fix: Fixed consent required flow on desktop with EOS_Auth_Login for External Auth by launching the Account Portal to allow consent to be given.
Bug Fix: The SDK will now internally handle EOS_Auth_ScopeConsentRequired by returning from EOS_Auth_Login a EOS_Auth_PinGrantCode with the PinGrantInfo set on the EOS_Auth_LoginCallbackInfo struct. The application is responsible for displaying the URL/Code in that callback while the SDK polls for a successful result.
C# SDK
New: Added dynamic bindings to the wrapper. See C# documentation for usage and more information.
Helper.IsOperationComplete removed in favor of Common.IsOperationComplete. Helper.ToHexString removed in favor of Common.ToString.
ToString functions have been simplified where possible. ContinuanceToken, EpicAccountId, and ProductUserId now have parameterless ToString overrides.
Connect
New: Added itch.io as a supported user authentication provider.
Core
Added more wording for clarity about how the different account IsValid and FromString functions should be used.
JSON
Bug Fix: Fixed some rare cases where certain characters would not be properly escaped for JSON.
ECommerce
Each of the EOS_Ecom APIs will now return EOS_MissingPermissions instead of EOS_UnexpectedError when the game client doesn’t have permission to access the provided override sandbox.
EOS_Ecom_CatalogOffer has been updated to support 64-bit prices. Extended the Ecom price types to be 64-bit by deprecating the original 32-bit values in the struct.
Lobbies
Added some error checking to Lobby Interface functions EOS_LobbySearch_SetParameter and EOS_LobbySearch_Find
It not possible to call EOS_LobbySearch_SetParameter, EOS_LobbySearch_SetLobbyId, or EOS_LobbySearch_SetTargetUserId if searching is in progress
It is not possible to call EOS_LobbySearch_Find if the search has parameters and a LobbyId or TargetUserId is already set
Lobbies now allow configuring host migration on lobby creation.
Defaults to enabled as before
If disabled, the lobby will collapse when the host leaves the lobby
EOS_Lobby_PromoteMember still works regardless, but the lobby will still collapse whenever the host leaves without first promoting another member
Bug Fix: Fixed improper calculation when EOS_LobbySearch_Find completes. In some instances the current player count in the search result was incorrect. This value is still only as accurate as of the time of the find call.
Bug Fix: Lobby interface makes sure to remove stale invites when EOS_Lobby_QueryInvites is called. Previously invites were only ever added, causing invites to linger. Invites can still be stale on the receiving client, and the application must handle “session not found” errors.
P2P
Added support for multiple callbacks on the same SocketId in EOS_P2P_AddNotifyPeerConnectionRequest and EOS_P2P_AddNotifyPeerConnectionClosed.
Improved P2P logging for many error cases.
Reports
New: Added a new Context member for EOS_Reports_SendPlayerBehaviorReportOptions, where developer defined data relevant to the report may be passed.
Session Based Matchmaking
Added some error checking to Session Interface functions EOS_SessionSearch_SetParameter and EOS_SessionSearch_Find
It not possible to call EOS_SessionSearch_SetParameter, EOS_SessionSearch_SetSessionId, or EOS_SessionSearch_SetTargetUserId if searching is in progress
It is not possible to call EOS_SessionSearch_Find if the search has parameters and a SessionId or TargetUserId is already set
Bug Fix: Session interface makes sure to remove stale invites when EOS_Sessions_QueryInvites is called. Previously invites were only ever added, causing invites to linger. Invites can still be stale on the receiving client, and the application must handle “session not found” errors.
Social Overlay
Bug Fix: Fixed a bug when EOS_UI_ShowFriends is called immediately after login which could lead to two instances of the Social Overlay being created, neither with complete information.
Bug Fix: The Join button will now disable dynamically in expected ways. These new disable states are:
When the lobby/session is full.
When the session which is in progress while the “Join In Progress” flag is false.
When the lobby/session has permissions are set to Invite Only.
When the lobby’s invites are disabled.
Bug Fix: Fixed a bug which could lead to the Social Overlay at startup displaying notifications of previously unlocked achievements.
Mobile
Android
Add Android 11 (API level 30) support: Manifest has <queries> entry for weblogin
iOS
Bug Fix: Fixed an issue in iOS 11 that was not parsing the auth code properly and failing to login
Bug Fix: Fix broken iOS 11 support: weak link against iOS 12+ frameworks
PROGRAMMING UPGRADE NOTES
ECommerce
For EOS_Ecom_CatalogOffer the members OriginalPrice _and _CurrentPrice _were deprecated by changing their names to _OriginalPrice_DEPRECATED _and _CurrentPrice_DEPRECATED. They were replaced with OriginalPrice64 _and _CurrentPrice64.
For EOS_Reports_SendPlayerBehaviorReportOptions, the member ReportCategory was renamed to Category and the member ReportDescription was renamed to Message.