Skip to main content

User attributes

When you are dealing with users in the online subsystem, they will be represented by FOnlineUser, FOnlineFriend and FUserOnlineAccount objects.

FUserOnlineAccount is used to represent locally logged in users, while FOnlineUser and FOnlineFriend are used to represent remote users such as other players in a game or players on a user's friends list.

Authentication Attributes (FUserOnlineAccount only)

The following attributes are accessible through GetAuthAttribute. For fields prefixed with a platform name such as steam., these fields will not exist unless that platform was used for sign in.

Attribute NameDescription
authenticatedWithContains the name of the platform the user was authenticated with. This can currently be one of:
  • steam
  • discord
  • gog
  • itchIo
  • oculus
  • google
  • apple
  • xbl
  • nsa
  • psn
  • epic
  • deviceId
idToken

The EOS Connect ID Token for the user account, as documented on the Epic Online Services website. This token can be used to verify the user's identity with external custom services you operate.

This token is also available by calling the IOnlineIdentity->GetAuthToken() and FUserOnlineAccount->GetAccessToken() functions.

crossPlatform.canLinkReturns "true" if the local account can be linked with a cross-platform account. This requires that you have a cross-platform account provider configured, do not require the use of cross-platform accounts, and the current user has not signed in with their cross-platform account yet.
steam.idThe ID of the Steam account that was used for signing in.
steam.sessionTicketThe session ticket that was used for signing in, in hexadecimal format.
steam.sessionTicket.base64The session ticket that was used for signing in, encoded in base-64.
steam.encryptedAppTicketThe encrypted app ticket if it could be obtained, in hexadecimal format.
steam.encryptedAppTicket.base64The encrypted app ticket if it could be obtained, encoded in base-64.
discord.accessTokenThe OAuth access token that was used for Discord sign in.
gog.idThe ID of the GOG Galaxy account that was used for signing in.
gog.encryptedAppTicketThe GOG encrypted app ticket (in hexadecimal format) that was used for signing in.
itchIo.apiKeyThe itch.io API key that was used for signing in.
oculus.userIdThe Oculus user ID that was used for signing in.
oculus.proofNonceThe Oculus proof nonce that was sent to the EOS backend as part of sign in.
google.givenNameThe given name of the Google account that was used for signing in.
google.idTokenThe Google ID token that was used for signing in.
apple.idTokenThe Apple ID token that was used for signing in.
epic.accessTokenThe OAuth access token that was used during Epic Games sign in.
epic.idToken

The ID token for the Epic Games account, as documented on the Epic Online Services website. This token differs from idToken in that it's the ID token for the Epic Games account, not the underlying EOS account. You should use idToken for external authorisation unless your game requires Epic Games accounts on all platforms.

epic.accountIdThe ID of the Epic Games account the user is signed into.
epic.appName of the app related to the client ID involved with the OAuth token.
epic.authTokenTypeType of OAuth token, either client, user or unknown.
epic.clientIdThe OAuth client ID that requested the OAuth token.
epic.expiresAtAbsolute time in UTC before the access token expires, in ISO 8601 format.
epic.refreshTokenThe OAuth refresh token that was obtained during Epic Games sign in.
epic.refreshExpiresAtAbsolute time in UTC before the refresh token expires, in ISO 8601 format.
epic.authenticatedWithWhen authenticatedWith is equal to epic, this tells you the mechanism that was used to authenticate the Epic Games account. It can be interactive, persistent, exchangeCode, devTool, automatedTesting or one of the native platform names such as steam or discord.

See authenticatedWith for details on what this might contain when you authenticate via a native platform.

User Attributes (all EOS accounts)

These attributes are accessible through GetUserAttribute.

Attribute NameAvailabilityDescription
idAll EOS accountsThe user ID as a string value.
readyAll EOS accounts"true" if all of the EOS information has finished loading for this user account. "false" if it has not. Some API calls immediately return FOnlineUser objects, so this attribute helps you determine if the asynchronous EOS API calls have finished loading data for this user account.
productUserIdAll EOS accountsThe EOS product user ID of the user.
displayName, prefDisplayNameAll EOS accountsThe user's display name.
externalAccountTypesAll EOS accountsA comma-separated list of external accounts that are associated with this EOS account. Each value in the comma-separated list can be used in the attributes below to access information about the external account.
externalAccount.platform.idAll EOS accountsThe account ID on the specified external platform.
externalAccount.platform.displayNameAll EOS accountsThe display name of the account on the specified external platform.
externalAccount.platform.lastLoginTime.unixTimestampUtcAll EOS accountsThe last time the user signed into the account on the specified external platform, as a UNIX timestamp in UTC.
externalAccount.epic.countryAll EOS accounts that have epic in the externalAccountTypes attributeThe country of the user. This may not be available for all accounts.
externalAccount.epic.nicknameAll EOS accounts that have epic in the externalAccountTypes attributeThe nickname of the user. This may not be available for all accounts.
externalAccount.epic.preferredLanguageAll EOS accounts that have epic in the externalAccountTypes attributeThe preferred language of the user. This may not be available for all accounts.
eosSynthetic.primaryFriend.subsystemName (previously SubsystemName)Friend accounts obtained from the IOnlineFriends interfaceThe name of the subsystem that owns the user ID used to identify this user. This will be a subsystem like "Steam" if the friend does not have an EOS account, and "EOS" if the friend is identified by an EOS user ID.
eosSynthetic.preferredFriend.subsystemNameFriend accounts obtained from the IOnlineFriends interfaceThe name of the subsystem that is providing the friend's real name and display name fields. This may be different from the primary friend account.
eosSynthetic.subsystemNamesFriend accounts obtained from the IOnlineFriends interfaceA comma-delimited list of subsystem names who from which the friend account was unified. This can be a value like "RedpointEOS,Steam,Discord".
eosSynthetic.friend.subsystemName.idFriend accounts obtained from the IOnlineFriends interfaceThe user ID of the friend account from subsystem subsystemName that was wrapped by this unified friend account.
eosSynthetic.friend.subsystemName.realNameFriend accounts obtained from the IOnlineFriends interfaceThe real name of the friend account from subsystem subsystemName that was wrapped by this unified friend account.
eosSynthetic.friend.subsystemName.displayNameFriend accounts obtained from the IOnlineFriends interfaceThe display name of the friend account from subsystem subsystemName that was wrapped by this unified friend account.
eosSynthetic.friend.subsystemName.attr.attrFriend accounts obtained from the IOnlineFriends interfaceThe user attribute attr of the friend account from subsystem subsystemName that was wrapped by this unified friend account.
deletableFriend accounts obtained from the IOnlineFriends interface

Either "true" or "false". If "true", this friend can be removed with a call to DeleteFriend. See Deleting a friend from the friends list for more information.

epicAccountId (deprecated)All EOS accountsUse externalAccount.epic.id instead.
country (deprecated)All EOS accountsUse externalAccount.epic.country instead.