The EOS Online Subsystem (OSS) plugin (2023)

Choose your operating system:

window

MacOS

Linux

On this page

  • setting

    • EOS configuration

      • artifact configuration

    • EOS Plus plugin settings

    • project settings

      • engine configuration

      • EOS Plus-Setup (optional)

  • EOS voice communication

  • Access

  • Login with OnlineSubsystemEOS

    • Account-Portal

    • developer

    • exchange code

    • Login Successful

  • Automatic login with OnlineSubsystemEOS

    (Video) Using Epic Online Services with Unreal Engine Blueprints

  • Login with OnlineSubsystemEOSPlus

  • external authentication

  • Cross-Platform Use of User ID

  • Using Epic Account Services

Epic online services(EOS) is an engine-independent system that offers a range of cross-platform online features including: player-centric features such as achievements and leaderboards, trading features such as the ability to purchase in-game items, and so on voice communication and friends lists.

unreal enginecan help you to implement EOS in your project through yourOnline-Subsystem(OSS) without having to write code directly with the EOS SDK. The Online Subsystem Plugin provides a common interface for all online services available on Unreal Engine. To use this feature, developers must register and configure their products withepic account services(EAS) and then enable and configure some plugins to expose the EOS functionality through the OSS interface.

For more information on EAS and EOS, seeEpic Online Services developer documentation.

setting

In order to be able to use EOS in your project, you must first activate the EOS OSS plugins. You can find them by going toTo editmenu and selectionadditionsto open theAdd-On-Browser.

InsideAdd-On-Browser, search and activateEOS Online-SubsystemjShared EOS. If you would like to add voice chat support via EOS, please enable itEOS PSTN-Voice-Chatplugins too.

After you have activated the plugins, you need to configure them. Some of the following setup steps require product-related settings or identifiers, which you will receive after registering your product with EOS.

If you have not yet registered your product with EOS, you can do soregister itabout himEpic developer portal.

EOS configuration

The following settings relate to the specific configuration of the EOS platform. For more details seeEOS API Referencepage on theplatform optionsdata structure.

  • Cache directory:This is where EOS stores temporary data.

  • Default artifact name:Games shipped in theEpic game storeand that's what they travelEpic Game LauncherUse an artifact name to search for configuration data. This field specifies a default name.

  • Tick ​​budget in milliseconds:This setting sets a time limit per tick for EOS trades. You can remove the limit by setting this value to zero.

  • Enable overlay:Use this to enable or disable all overlays. Some overlays may be platform specific, e.g. B. the eCommerce overlay, which is only valid for titles that ship on the Epic Games Store.

  • Enable social overlay:The social overlay shows information about friends, achievements and additional authentication steps. You can disable this overlay individually while leaving other overlays enabled. This setting has no effect ifEnable overlayis switched off.

  • Must be published by the Epic Games Store:For titles that ship on the Epic Games Store, enabling this setting will result in the game requiring ownership verification and launching through the Epic Games Launcher before launch. If the end user tries to launch the game using any other method, the game process will be terminated and restarted from the Epic Games Launcher.

  • Artifacts:The Epic Games Store supports multiple artifacts for a single product. For example, your product may have separate internal artifacts for development, testing, and the released version used by your customers. This array contains settings for each named artifact. There must be at least one artifact in the array, and thatDefault artifact nameThe value must match the name of one of the elements in the array. Seeartifact configurationfor more information on these settings.

artifact configuration

The artifact settings configured here must match the settings of your registered product. You can findSettings for your productsin the Developer Portal (login required).

  • Artifact Name:This is the artifact's name. For example,MyGameStagingÖstart my game.

  • Customer identification:This ID must start with "xyz" as the first 3 characters.

  • Client Secret:This is the password you use to confirm yourcustomer identification.

  • Product ID:The EOS SDK uses this ID to identify your product.

    (Video) Unreal Engine 5 Epic Online Services - Set Up EOS for Your Multiplayer Game

  • Identification of the test area:The artifact belongs to the sandbox with this ID value. Typically, the product has only one sandbox ID.

  • Deployment ID:Deployment IDs are different for each artifact. For example if you haveMyGameStagingjstart my gameArtifacts each have their own implementation IDs.

  • Encryption Key:When you upload data to an EOS service, this 64-byte hex string is used to encrypt it. Unlike other settings, this encryption key is not managed by EOS and is not stored in your product settings. The key is unique to your game and is not known to Epic Games to protect user data privacy.

EOS Plus plugin settings

EOSplusis an experimental OSS plugin that combines the features of the EOS SDK with those of another online platform (like Xbox Live, PlayStation, Steam, etc.) into a single crossplay-compatible online subsystem.

To use this plugin, you must first register and configure itYour productin the developer portal for everyoneplatformyou want to support Platform-specific versions of the EOS SDK contain detailed instructions on how to use the platform features they support.

Before using this plugin you need to configure the following settings:

  • Use Epic Account Services:When enabled, the EOS OSS plugin uses the platform-specific authentication token to automatically log the user into their Epic account. The prerequisite for this is that the user has linked their Epic account with their account on the other platform; If not, this event is reported as an error in the logs. You can redirect the user to theAccount Linking Pageto complete this process where they can log in and complete the account linking process themselves via theContentEyelash.

  • User's Multiplatform User ID:This setting enables EOS Connect features using the platform specific authentication token.

  • Mirror EOS stats:If this option is activated, EOS Plus will send a duplicate of allThe statisticsInformation about the EOS OSS plugin.

  • It reflects the achievements of EOS:If this option is activated, EOS Plus will send a duplicate of allPerformanceEOS OSS add-on data.

  • Use crossplay sessions:This setting is required to play cross-platform network games. The EOS does the samesession interfacethe primary session interface.

  • Mirror Presence to EAS:This option determines whether the EOS Plus plug-in also broadcastsPresentData to the EOS OSS plugin. Presence data is only available when using Epic account services.

project settings

After setting up your product in the Developer Portal and configuring the plugins, you need to configure some settings in the project.Standard-engine. inioffice hours.

engine configuration

Follow these steps to configure your project to useEOS Online-SubsystemPlug:

  1. inside[EOS Online-Subsystem]In the section, check or add the following line to ensure that the online subsystem EOS is enabled:

    bEnabled=true
  2. inside[Online-Subsystem]In the section, check or add the following line to ensure that EOS is your default platform:

    DefaultPlatformService=EOS
  3. inside[/Script/Engine.GameEngine]In the section, check or add the following line to ensure the engine is using EOS NetDriver:

    +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
  4. If you intend to use the EOS P2P socket functionality for player-hosted games, please check or add the following line[/Script/OnlineSubsystemEOS.NetDriverEOS]Section:

    bIsUsingP2PSockets=true

TuStandard-engine. iniThe file should now contain the following lines in their respective sections:

[OnlineSubsystemEOS] bEnabled=true [OnlineSubsystem] DefaultPlatformService=EOS [/Script/Engine.GameEngine]+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [/Script/ OnlineSubsystemEOS.NetDriverEOS] bIsUsingP2PSockets=true

EOS Plus-Setup (optional)

If you want to configure your project to implement crossplay between EOS and another online platform, make these additional changes:

  1. Verify that the EOS Plus plugin is enabled by looking for the following line in the[EOSPlus Online-Subsystem]Section:

    bEnabled=true
  2. inside[Online-Subsystem]section, change your default online platform fromEOSaEOSPlusand add the name of the other online platform. In this example we are using Steam as our second platform. When you're done you should have these lines:

    DefaultPlatformService=EOSPlusNativePlatformService=Steam
  3. The engine needs to know thatEOSjEOSPlusNetwork ID types are supported to allow interaction between platforms. Add the following lines[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]Section:

    +CompatibleUniqueNetIdTypes=EOS+CompatibleUniqueNetIdTypes=EOSPlus

TuStandard-engine. iniThe file should now contain the following lines in their respective sections. You may also need to replacesteamwith another online platform name:

[OnlineSubsystemEOSPlus]bEnabled=true[OnlineSubsystem]DefaultPlatformService=EOSPlusNativePlatformService=Steam[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]+CompatibleUniqueNetIdTypes=EOS+CompatibleUniqueNetIdTypes=EOSPlus

ThatDefault Platform Servicefit into the[Online-Subsystem]The section replaces the previously set value.

(Video) Using Steam Login for Epic Online Services with Unreal Engine Blueprints

EOS voice communication

you can adjustlobbySessions to create a linked voice chat room. Users who join the lobby (including the lobby creator) automatically join the voice chat room. To set this up, set both theFOnline session settings::bUse LobbiesIfAvailablejFOnline-Session-Setup::bUse LobbiesVoiceChatIfAvailablevalues ​​tootrue.

Individual users can control their interaction with voice chat rooms using their IVoiceChatUser interface instances, which you can retrieve withFOnlineSubsystemEOS::GetVoiceChatUserInterface.

The IVoiceChatUser interface allows interaction with local hardware, online chat rooms and other voice chat users. You can choose input or output devices, change volume, block or mute specific users, and register for events such as B. Players joining or leaving the channel, starting or stopping speaking, etc.

if you useFOnlineSubsystemEOS::GetVoiceChatUserInterface, the system handles the initialization, connection and login automatically. However, it depends on how you integratevoice chat, you can still manually join and leave trusted server channels. Refer to[Trusted Server Integration]section ofEOS VoiceChat-PluginDocumentation for more information.

Access

The method of handling user authentication depends on whether the basic OnlineSubsystemEOS plugin is used or used in conjunction with OnlineSubsystemEOSPlus. There are two methods to start the login process in the online identity interface.

Method

description

automatic entry

Requires a local user number to be passed.

Access

needs oneFOnlineAccountCredentialesObject.

In the next section, you will learn how to get a user to log in using both methods in the two plugins mentioned above.

Login with OnlineSubsystemEOS

In addition to providing a valid local user number, the login method also requires aFOnlineAccountCredentialesObject to pass This structure has three fields:

  • writes

  • I WOULD

  • Symbolic

Based on their values, these three fields specify which authentication method the OnlineSubsystemEOS plugin should use. Here are examples of configuring all the different types of authentication:

Account-Portal

  • writes: Account portal

  • I WOULD:

  • Symbolic:

With this method, a browser window will open when the login prompt comes up and the user will be prompted to enter their Epic account information. If the user is already logged in to Epic Games in this browser, they will be prompted to consent to the access areas for the product in question. This method does not require the Dev Auth Tool to be running.

developer

  • writes: developer

  • I WOULD: premises Server:(wois hePuertospecified in Dev Auth Tool)

  • Symbolic: CredentialsName

This method requires the EOSDeveloper Authentication Tool(Developer Authentication Tool) to run. see the followingAuthentication tool for developers.

After configuring the Dev Auth tool, remember whatPuertojCredential nameThey used because they are needed to fill theI WOULDjSymbolicfields ofFOnlineAccountCredentialesobject as above.

This login method will open when the login call is made and the user will be prompted to enter their Epic Ganes account information.

If the user is already logged into Epic Games in that browser, they will be prompted to consent to the access panels for that product (this step occurs only when a user logs in for the first time).

This is the recommended way to develop with OnlineSubsystemEOS on desktop platforms.

exchange code

  • writes: "Exchange Code"

    (Video) Unreal Engine Epic Online Services (EOS) #1: "Setup SDK and Test Sample Project"

  • I WOULD:

  • Symbolic: "<exchange code>" (wo<exchange code>is heexchange codepowered by Epic Launcher)

This method should only be used when launching the app from the Epic Launcher as it requires the replacement code provided by the Epic Launcher. This method does not require the Dev Auth Tool to be running and you would use it with the shipping build of your game.

Login Successful

If either of these methods is successfully completed, the sign-up process ends with the registration of all required EOS notification services (login status, friends and self-presence updates, and authentication update) and activation of the following registered delegates:

Method

description

OnLoginComplete

Parameters include whether the login was successful and the UniqueNetId for the newly authenticated user.

OnLoginStatusChanged

the parameters correspond to the previous and current login status and the UniqueNetId for the newly authenticated user.

Automatic login with OnlineSubsystemEOS

For himautomatic entryMethod to work on OnlineSubsystemEOS requires adding command line parameters to the game run, which are directly translated into the three fields inFOnlineAccountCredentialesotherwise, the object is passed to the login method.

All three parameters must be setto make AutoLogin work even if some are not used (e.g. in account portal or code exchange methods). The parameters are the following:

  • Typ = AUTH_TYPE

  • ID = AUTH_LOGIN

  • Token = AUTH_PASSWORD

Here are some examples of the parameters required for the three login methods discussed in the previous section. If these are added to the gameplay command, the login will be processed correctly but will be subject to theRequirementexplained in the previous section. (Developer Authentication Tool, Epic Games Launcher)

developer

-AUTH_TYPE="Desarrollador" -AUTH_LOGIN="localhost:<puerto>" -AUTH_PASSWORD="CredentialsName"

exchange code

-AUTH_TYPE="ExchangeCode" -AUTH_LOGIN="Vacío" -AUTH_PASSWORD="Exchange_Code_From_Launcher"

Login with OnlineSubsystemEOSPlus

There is no difference between using AutoLogin and OnlineSubsystemEOSPlus Login, moreover, only certain values ​​need to be set in the at loginFOnlineAccountCredentialesArticles for some selected platforms.

external authentication

The login method that OnlineSubsystemEOSPlus uses to process EOS authentication is different than that used by OnlineSubsystemEOS.

It begins by making a copy of the FOnlineAccountCredentials object that is passed to the login method (if any of the optional values ​​have been set). The system will then start the login process for the native platform users (if it hasn't already done so). This means signing in with the active platform account or prompting for user selection on a console platform if required. The login process halts if that first login to the platform is unsuccessful, triggering registered OnLoginComplete delegates with information about the failure.

After this first platform login is successful and one of the two settings mentioned in the previous section is enabled, the EOS login will begin using the credentials we saved at the beginning. Regardless of which one is configured, the first part of this new login process is the same: we query the native platform subsystem for an external authentication token.

Cross-Platform Use of User ID

If this setting is enabled and Epic account services are not being used, the external authentication token will be added to the credentials required by the login method and EOS will attempt to authenticate by calling the EOS_Connect_Login method.

More configuration is required in the EOS project development portal. In order for EOS authentication to complete successfully, the platform in question must have been added to the list of identity providers as described in this article. If the identity provider is configured correctly, EOS authentication should complete successfully, unlocking access to all EOS game features.

Using Epic Account Services

When this setting is enabled, the login process proceeds as if cross-platform use of user IDs were also enabled. The external authentication token is added to the credentials required by the login method and EOS attempts to authenticate itself by calling the EOS_Auth_Login method. This method requires an Epic Games account to be pre-linked to the platform account used for EOS authentication.

At this moment,account linkingduring the sign-up process is only available on thesteamplatform, and when you try to log in on another platform, the following authentication error appears in the log:

registration error

LogEOSSDK: Warning: LogEOS: Received error response from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage= [The request from the authorization server is pending because the end user still has to call up and enter the confirmation code.], CorrId=[...]

This functionality will also be available on other platforms in future versions. Meanwhile, manual account linking can be done from the Accounts tab in the Epic Games Connections section.Account Settings.

The Epic account used in the linking process must agree to the Application Access Panels (as described in sectionLogin with OnlineSubsystemEOS) or this other error is shown in the log:

registration error

(Video) Working on Epic Online Services Tutorials (Understanding an Online Subsystem Plugin)

LogEOSSDK: Warning: LogEOS: Received error response from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.oauth.scope_consent_required], NumericErrorCode=[58005], ErrorMessage=[The the user has not consented to the required scopes.], CorrId=[...]

Once the account is linked and the access scopes are accepted and the EOS authentication is configured correctly as well, the login will complete successfully and the application will be able to use all the additional EAS features.

FAQs

What is EOS SDK? ›

The Arista EOS SDK allows development of high performance on switch agents that react to and interact directly with EOS.

What is EOS ue4? ›

Epic Online Services (EOS) is an engine-agnostic system that provides a range of cross-platform online features, including: player-centric features such as achievements and leaderboards, commercial features such as the ability to purchase in-game items, and social features such as voice communication and friends lists.

Is Epic online services free? ›

Epic Online Services are free, cross-platform services that make it easier and faster for developers to successfully launch, operate, and scale high-quality games.

What does the EOS system do? ›

The Entrepreneurial Operating System, or EOS®, is a set of concepts and tools that comprises a complete business management system that empowers entrepreneurs to reach their business goals and improve the lives of every individual the business affects.

What is the purpose of EOS? ›

What Is the Purpose of EOS? The EOS system was designed to support decentralized applications, commonly called dApps, on a commercial scale. EOS provides the core functionality for businesses to build blockchain applications in a way that is similar to building web apps.

Videos

1. Troubleshooting Unreal Engine Problems with Epic Online Services - 7 Fixes for Crashes and Bugs
(maygames)
2. UE4 With EOS Free Multiplayer Game Making in Unreal Engine 4 With EOS Blueprint Code Free Multiplaye
(Tec Learning)
3. Unreal Engine Epic Online Services(EOS) #2: "Create Sessions"
(Sneaky Kitty Game Dev)
4. Power Your Games with Free Epic Online Services | Unreal Fest 2022
(Unreal Engine)
5. Authenticating using DeviceId (Epic Online Services)
(Dry Eel Development)
6. Integrating Epic Online Services Voice Chat into your Game
(maygames)

References

Top Articles
Latest Posts
Article information

Author: Clemencia Bogisich Ret

Last Updated: 30/10/2023

Views: 5858

Rating: 5 / 5 (60 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Clemencia Bogisich Ret

Birthday: 2001-07-17

Address: Suite 794 53887 Geri Spring, West Cristentown, KY 54855

Phone: +5934435460663

Job: Central Hospitality Director

Hobby: Yoga, Electronics, Rafting, Lockpicking, Inline skating, Puzzles, scrapbook

Introduction: My name is Clemencia Bogisich Ret, I am a super, outstanding, graceful, friendly, vast, comfortable, agreeable person who loves writing and wants to share my knowledge and understanding with you.