EOSCore 1.8.0

General

This update is only available for UE4.25+

REMOVE ALL PREVIOUS EOSCORE DEFINITIONS FROM YOUR DefaultEngine.ini FILE WHEN UPGRADING!

  • Updated EOS SDK to version 1.9.0
  • Added “FromUnixTimestamp” function to convert a Unix timestamp to a blueprint string
  • Added UserIndex to GetCurrentProductId
  • Added UserIndex to GetCurrentAccountId
  • All blueprint nodes now require a WorldContextObject
  • All blueprint defined delegates have been removed, use the appropriate “Add Notify” callback functions instead or setup your own delegates when invoking functions
  • Removed ProductName from DefaultEngine.ini (will now use your UE4 Project Name)
  • Removed ProductVersion from DefaultEngine.ini (will now use UE4 Project Version)
  • New supported command line arguments:
    -AUTH_TYPE=devtool
    Login using the DevTool
    -AUTH_TYPE=autologin
    Attempt to autologin using saved credentials from previous session
    -AUTH_TYPE=portal
    Authenticate using the Browser (portal)
    -AUTH_TYPE=deviceid
    Authenticate using a local device id, will attempt to create a device id if not found
    -EOSConfig=configurationName
    Override the EOS configuration specified in the Project Settings
  • You must now configure EOSCore using Project Settings
  • New Function: Login()
    This function is meant to be used in conjunction with the new EOSCore OnlineSubsystem (OSS) and its purpose is to simplify the Login procedure used by EOS.
    More details about this function will be available later
  • Removed CreateSessionResultFromInviteId as this function is no longer needed, it’s been replaced with “ListenForSessionInvites“, see example below.
  • Added EOS_Initialized() function that you can call to see if EOS has initialized or not
FromUnixTimestamp
New Settings
New Login Node
Check if EOS has initialized

Chat

  • General Chat Subsystem optimizations
  • Listening for Chat messages now requires a valid LocalUserId
  • You can now clear all chat listeners by invoking ClearAllChatListeners

OnlineSubsystem (OSS)

  • The OSS has been rewritten to a SocketSubsystem.
  • Removed EOSPlatformModule, all code has been moved to the OnlineSubsystemEOSCore
  • Changed URL layout when connecting to multiplayer games:
    Old: eoscore.remote_id
    New: eos:remote_id:gamesession:port
  • New function: “UpdateUniqueNetIdFromOSS“, this function will manually update your players netid from the OSS. This is useful if you want to manually login using the Async Nodes. You must have a valid UniqueNetId assigned to your player if you want to use the default CreateSession nodes for example.

Android

  • You can now Host / Join sessions using Android

Mods

  • Added Mods Interface Support

EOS SDK 1.9.0 Changelog

New features

  • Mods support exposes interfaces that allow for interaction with the Epic Games Store Mod Marketplace and supports:
    • Enumeration of installed mods.
    • Enumeration of available mods.
    • Mod install, uninstall, and update.

Release Notes

C# SDK

  • Removed reflection dependency from the wrapper.
  • SDK functions and delegates that output strings and byte arrays through parameters have been simplified. If they previously output a StringBuilder, they now output a string, and they no longer require a buffer length to be passed in. See upgrade notes for more details.
  • Bug Fix: The sizeInBytes and alignment parameters of Platform.AllocateMemoryFunc and Platform.ReallocateMemoryFunc are now defined as UIntPtr instead of int to reflect the different size requirements between 32 bit and 64 bit platforms. See upgrade notes for more details.

Connect

  • Bug Fix: Fixed EOS_Connect_QueryProductUserIdMappings returning EOS_UnexpectedError if the queried users had a linked Device ID.

EOS Core

  • Bug Fix: Fixed json serialization and deserialization of doubles when games use the CRT setlocale() function.
  • Bug Fix:
    • Set the default thread affinity of EOS SDK created threads to something more reasonable.
    • EOS_Initialize_Options now contains an OverrrideThreadAffinity option. This EOS_Initialize_ThreadAffinity structure defines thread affinity in several categories It’s important to note that these values will be platform dependent.

Lobbies

  • New: Lobby search now supports a new EOS_CO_CONTAINS operator. Attributes matching a CASE SENSITIVE partial string will be returned.

Mod Marketplace

  • Mods support allows interfaces with the Epic Games Store Mod Marketplace and allows:
    • Enumeration of installed mods.
    • Enumeration of available mods.
    • Mod install, uninstall, and update.

Overlay Tech Platform

  • New: Added new flags for EOS_Platform_Create to opt-in to experimental overlay support on DirectX 9, Direct3D 10, and OpenGL for Windows:
    • EOS_PF_WINDOWS_ENABLE_OVERLAY_D3D9
    • EOS_PF_WINDOWS_ENABLE_OVERLAY_D3D10
    • EOS_PF_WINDOWS_ENABLE_OVERLAY_OPENGL

Samples

  • Added a new sample to demonstrate the mod marketplace
  • Added support for reading / writing settings
    • Developer Authentication Tool credentials will be saved to settings, ready to be loaded with the next sample run.
  • Added support for automatic login via Launcher command line options.
  • Persistent auth token is now deleted after getting invalid auth result when attempting to log in with persistent auth login.
  • Added a popup dialog with a message about invalid params for EOS_Platform_Create.
  • Pressing enter while Auth Dialog text fields are in focus will start login when all relevant text fields are valid.
  • Bug Fix: Fixed a resource leak inside the sample framework

Session Based Matchmaking

  • New: Session search now supports a new EOS_CO_CONTAINS operator. Attributes matching a CASE SENSITIVE partial string will be returned.

Social Overlay

  • Removed erroneous logs when Leaderboards are not currently configured.

EOSCore:: 1.7.7

General

  • Added a couple of nullptr checks

Title Storage

The Title Storage Interface enables developers using Epic Online Services (EOS) to retrieve encrypted data from cloud servers. Data that you store through this interface is accessible to any user on any device where they can log in. While similar to the Player Data Storage Interface, this interface is specialized to handle game-specific data rather than user-specific data, and can provide different versions of files based on the user’s platform, region, or other conditions.

EOSCore:: 1.7.5

General

  • Changed CommandLine argument from AUTH_ID to AUTH_LOGIN due to Epic Launcher using AUTH_LOGIN and not AUTH_ID
  • New function: “Listen for EOS Messages” this will enable you to get EOS SDK callbacks in blueprints!
  • Updated to EOS SDK Version 1.8.0
Registering the callback
Log messages on screen

Android

  • Fixed authentication on Android using local device id

Auth Interface

  • New function: “Auth Link Account”

Connect Interface

  • New function: “Unlink Account
  • New function: “Transfer Device Id Account

UserInfo Interface

  • New function: “Query User Info by External Account

EOS SDK 1.8.0 Changelog

NEW FEATURES

  • Title Storage: Allows downloading of read-only game data previously uploaded and configured with the Dev Portal. This game data is title-wide and shared in common across all players. See documentation for details.
  • Console Account Linking: All console platforms have a way to associate native tokens and login to Epic Account Services via EOS_Auth_Login. See Authentication section below.

Achievements

  • EOS_Achievements_QueryDefinitionsOptions deprecated the member variables EpicUserIdHiddenAchievementIds and HiddenAchievementsCount.
  • Bug Fix: Achievement localization logic has been simplified to reduce the likelihood of an empty string. The logic is now simply “if the client receives the requested localization text then return it; otherwise return the default text.”

Authentication

  • New: Added support for external auth using EOS_Auth_Login and linking Epic accounts with external accounts on console. When an external account is not linked, EOS_Auth_LinkAccount can now be used to continue the login flow and link the accounts.
  • New: Account id length definition for EOS_EpicAccountId has been changed to 32 bytes. This data should never be larger than 128 bits, but continue to treat the data type as opaque. It is not guaranteed to be a UUID or any particular structure.
  • New: Add support for returning a Verification URI to EOS_Auth_Login callers when the backend returns an EOS_EResult equal to EOS_Auth_AccountFeatureRestricted.
  • New: Added EOS_AS_FriendsManagement to the EOS_EAuthScopeFlags enum. This scope is restricted to Epic first party products, and attempting to use it will result in authentication failures.
  • New: Added EOS_UserInfo_QueryUserInfoByExternalAccount to support querying for Epic Account user info using external account details.
  • Removed public define EOS_CONTINUANCETOKEN_MAX_LENGTH for EOS_ContinuanceToken_ToString and changed this function so that it can be called once with its OutBuffer set to NULL to return the required buffer size.
  • Bug Fix: Fixed bug where the VerificationURIComplete parameter of the auth callback was not returning a valid string. This was fixed in 1.6.2 and regressed in 1.7.x.

Connect

  • New: Added EOS_Connect_TransferDeviceIdAccount API. This function allows transferring local game progression created using Device ID in the scenario where the destination keychain already has an existing product user that needs to be replaced with the local game progression.
  • New: Added EOS_Connect_UnlinkAccount API. This function allows the application to recover the local user from situations where they accidentally create a new product user while having already used the application on another platform. This unlinking effectively resets the user flow, allowing the local user to re-enter the first time game experience flow.
  • EOS_Connect_CreateDeviceId will now return an error result if attempted to be used by a dedicated server.

Core

  • A small comment quality and improvement pass was made over the entire API to provide better documentation as well as improvements to our online API reference
  • Added additional logging during initialization to warn that EOS_XXXX_InitializeOptions isn’t set on platforms that expect them to be.
  • Bug Fix: Fixed off by one issue with EOS_EpicAccountId_ToString and EOS_ProductUsertId_ToString in buffer length calculations
  • Bug Fix: Fix duplicate definition of FIOSAsyncTask when the SDK is used with UE4 on iOS and macOS
  • Bug Fix: Mac can now correctly determine if it was launched by the Epic Games Launcher.

ECommerce

  • Bug Fix: Improved logic for determining if local Ecom data is stale. This is to resolve some false negatives caused by clock skew between the server and the client.

Friends

  • New: Add support for caching and notifying about Friend invites when the EOS_AS_FriendsManagement scope is enabled.

Leaderboards

  • Bug Fix: Fixed issue with EOS_Leaderboards_QueryLeaderboardUserScores calling callbacks multiple times when querying with a large number of users or stats.

Lobbies

  • Bug Fix: Fixed the accuracy of the AvailableSlots variable on the EOS_LobbyDetails_Info data structure. It should now always be correct.

Mobile

  • Bug Fix: Mobile Auth Login – URLs are now properly encoded, when additional scopes are requested.

P2P

  • P2P functionality will now lazily initialize when first accessed instead of when EOS_Platform_Create is called to reduce resource usage for applications that do not require P2P.

Samples

  • Changed config name for Steam version of AuthAndFriends project (“Steam_” instead of “_Steam”) so default is non-Steam config.
  • Added support for continuing login with an external account using EOS_Auth_LinkAccount with a continuation token. When a login attempt results in EOS_InvalidUser the continuation token can be used immediately to continue the login flow or at a later time to when the application is ready.
  • Bug Fix: Fixed Steam App Ticket string buffer size, it depends on Steam App Ticket size instead of having a hard limit of 256.
  • Bug Fix: Fixed a bug where the sample needs to wait for the lobby leave to complete before continuing the lobby join. Otherwise the sample would just fail to join and not be in any lobby. This occurs when trying to join a lobby associated with the Social Overlay while in a lobby associated with the Social Overlay.
  • Bug Fix: Fixed CMakeLists file for AuthAndFriends for Mac / Linux
  • Bug Fix: Fixed login in C# sample if persistent auth fails

Session Based Matchmaking

  • Added the ability to set the session ID at creation time. This will allow developers to use EOS_SessionSearch_Find and EOS_SessionSearch_SetSessionId with a session ID structure of your choosing. Sessions don’t need to be public with your own special attribute to find them for private sessions.
  • WARNING – this value must be globally unique throughout your application’s ecosystem, failure to do so will return EOS_Sessions_SessionAlreadyExists.
  • Bug Fix: Session interface now allows EOS_SessionSearch_SetTargetUserId for any target user ID as long as they are already registered with the session and the session is advertised publicly.

Social Overlay

  • Bug Fix: The Social Overlay could have entered a state at initialization where the application which uses achievements would not have them available. This would happen if the access to the achievements service had a momentary blip. The SDK will now recover from this and retry.
  • Bug Fix: Fixed a bug where a new user may never get the Social Overlay. The Social Overlay will now reinitialize after the association of the Product User ID and the Epic Account ID has been established.
  • Bug Fix: Fixed a bug where the use of Achievements without Stats would disable the Achievements feature in the Social Overlay.
  • Bug Fix: Fixed a bug which could cause some users to never have access to the Social Overlay on their first login to the product.

Stats

  • Updated all EOS Stats options structs to always require a TargetUserId value. For all network operations a LocalUserId value will also be required. This is a change to conform existing SDK options patterns.

UserInfo

  • Added EOS_UserInfo_QueryUserInfoByExternalAccount to allow querying for user info using an external account ID and external account type.
  • Bug Fix: EOS_UserInfo_QueryUserInfo has additional checks for invalid (null) target user IDs. It was previously possible to send a request devoid of any IDs and get an unexpected error from the backend. This is now prevented by the client API.

PROGRAMMING UPGRADE NOTES

Session Based Matchmaking

  • Bug Fix: Added EOS_CO_ONEOF and EOS_CO_NOTONEOF enumerations to the search criteria, but these enumerations are not available for public use at this time.

Stats

  • EOS_Stats_IngestStatOptions now requires both LocalUserId and TargetUserId. The TargetUserId must always be valid. When ingesting from a client these must be the same value. When ingesting from a dedicated server then LocalUserId will be ignored and should be null.
  • EOS_Stats_QueryStatsOptions now requires both LocalUserId and TargetUserId. The TargetUserId must always be valid. When querying from a client the LocalUserId must be set to a user which is locally connected. When querying from a dedicated server then LocalUserId will be ignored and should be null.

IMPORTANT NOTES

  • Android may have browser issues in SDK if there are multiple account/profile contexts.

EOSCore:: Credentials

This guide will show you how to obtain your Credentials that you use in your DefaultEngine.ini configuration file.

Head to https://dev.epicgames.com/portal, login and select your Project. (Or create a new project if you don’t have one yet)

ProductId

SandboxId

DeploymentId

ClientId

Client Secret

Epic Account Services

If you want to use the Epic Account Services functionality, we must configure our Client to have permissions to use EAS.