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

authenticatedWith

Contains the name of the platform the user was authenticated with. This can currently be one of:

  • steam
  • discord
  • gog
  • itchIo
  • meta
  • 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.canLink

Returns "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.id

The ID of the Steam account that was used for signing in.

steam.sessionTicket

The session ticket that was used for signing in, in hexadecimal format.

steam.sessionTicket.base64

The session ticket that was used for signing in, encoded in base-64.

steam.encryptedAppTicket

The encrypted app ticket if it could be obtained, in hexadecimal format.

steam.encryptedAppTicket.base64

The encrypted app ticket if it could be obtained, encoded in base-64.

discord.accessToken

The OAuth access token that was used for Discord sign in.

gog.id

The ID of the GOG Galaxy account that was used for signing in.

gog.encryptedAppTicket

The GOG encrypted app ticket (in hexadecimal format) that was used for signing in.

itchIo.apiKey

The itch.io API key that was used for signing in.

meta.userId

The Meta user ID that was used for signing in.

meta.proofNonce

The Meta proof nonce that was sent to the EOS backend as part of sign in.

google.givenName

The given name of the Google account that was used for signing in.

google.idToken

The Google ID token that was used for signing in.

apple.idToken

The Apple ID token that was used for signing in.

epic.accessToken

The 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.accountId

The ID of the Epic Games account the user is signed into.

epic.app

Name of the app related to the client ID involved with the OAuth token.

epic.authTokenType

Type of OAuth token, either client, user or unknown.

epic.clientId

The OAuth client ID that requested the OAuth token.

epic.expiresAt

Absolute time in UTC before the access token expires, in ISO 8601 format.

epic.refreshToken

The OAuth refresh token that was obtained during Epic Games sign in.

epic.refreshExpiresAt

Absolute time in UTC before the refresh token expires, in ISO 8601 format.

epic.authenticatedWith

When 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.

friendCode

A friend code that is generated upon login and can be used by other players to discover the local player's user ID through IOnlineUser::QueryUserIdMapping or IPresenceSystem::FindByFriendCode.

User Attributes (all EOS accounts)

These attributes are accessible through GetUserAttribute.

Attribute NameAvailabilityDescription

id

All EOS accounts

The user ID as a string value.

ready

All 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.

productUserId

All EOS accounts

The EOS product user ID of the user.

displayName, prefDisplayName

All EOS accounts

The user's display name.

externalAccountTypes

All EOS accounts

A 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.id

All EOS accounts

The account ID on the specified external platform.

externalAccount.platform.displayName

All EOS accounts

The display name of the account on the specified external platform.

externalAccount.platform.lastLoginTime.unixTimestampUtc

All EOS accounts

The last time the user signed into the account on the specified external platform, as a UNIX timestamp in UTC.

externalAccount.epic.country

All EOS accounts that have epic in the externalAccountTypes attribute

The country of the user. This may not be available for all accounts.

externalAccount.epic.nickname

All EOS accounts that have epic in the externalAccountTypes attribute

The nickname of the user. This may not be available for all accounts.

externalAccount.epic.preferredLanguage

All EOS accounts that have epic in the externalAccountTypes attribute

The preferred language of the user. This may not be available for all accounts.

eosSynthetic.primaryFriend.subsystemName (previously SubsystemName)

Friend accounts obtained from the IOnlineFriends interface

The 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.subsystemName

Friend accounts obtained from the IOnlineFriends interface

The 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.subsystemNames

Friend accounts obtained from the IOnlineFriends interface

A 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.id

Friend accounts obtained from the IOnlineFriends interface

The user ID of the friend account from subsystem subsystemName that was wrapped by this unified friend account.

eosSynthetic.friend.subsystemName.realName

Friend accounts obtained from the IOnlineFriends interface

The real name of the friend account from subsystem subsystemName that was wrapped by this unified friend account.

eosSynthetic.friend.subsystemName.displayName

Friend accounts obtained from the IOnlineFriends interface

The display name of the friend account from subsystem subsystemName that was wrapped by this unified friend account.

eosSynthetic.friend.subsystemName.attr.attr

Friend accounts obtained from the IOnlineFriends interface

The user attribute attr of the friend account from subsystem subsystemName that was wrapped by this unified friend account.

deletable

Friend 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 accounts

Use externalAccount.epic.id instead.

country (deprecated)

All EOS accounts

Use externalAccount.epic.country instead.