Crossplay Integration Kit
Multiplayer

Choosing a login method

Let players choose an identity route without exposing SDK credential work

Choosing a login method

Use Login before friends, lobbies, sessions, invites, or progression. The node is provider-neutral: a method describes an identity authority, an optional credential source, and only the values your game must supply. UCIK obtains and releases Steam, Discord, Google, Play Games, Apple, and Game Center credentials itself.

Guided mode

Choose a fixed method from the Method dropdown. The list is grouped by authority. Unavailable routes stay visible with the exact missing configuration instead of disappearing.

The node creates only the selected descriptor's fields:

RecipeMethodInputs supplied by the game
Guest accountBetide.EOS.Connect.DeviceIdOptional display name
Return silentlyBetide.EOS.Auth.PersistentNone
Epic sign-inBetide.EOS.Auth.AccountPortalNone; EOS opens its UI
Launcher exchangeBetide.EOS.Auth.ExchangeCodeExchange code from a runtime wire
Developer Auth ToolBetide.EOS.Auth.DeveloperOptional host and credential overrides
Steam to EOSBetide.EOS.Connect.SteamNone; UCIK requests the configured Steam ticket
Discord, Google, or Apple to EOSCorresponding Betide.EOS.Connect.* routeNone; UCIK requests the exact credential
Cognito password or SRPCorresponding Betide.Cognito.UserPool.* routeUsername and password
Cognito managed login, OTP, MFA, passkey, or custom challengeCorresponding User Pool routeInitial declared fields, then Continue Login responses
Google or Apple to Cognito Identity PoolCorresponding Identity Pool routeNone
Steam to Cognito Identity PoolBetide.Cognito.IdentityPool.SteamExchangeNone; the configured HTTPS exchange verifies the ticket

Secret pins refuse saved literal defaults. Wire passwords, exchange codes, and challenge responses from runtime UI state. A typed Credential Override remains under Advanced for projects that acquire proof outside UCIK.

Changing a fixed method preserves compatible wires by stable field ID. Removed connected or defaulted fields become normal orphan pins so no customer data is silently discarded. Project-setting changes never reshape saved nodes; use Refresh Login Method from the node context menu when you intentionally want the latest descriptor.

Runtime mode

From the node context menu select Use Runtime Login Request. The method-specific pins become one stable FUCIK_LoginRequest input. Build a login screen by calling Get Login Methods, render each descriptor's fields, and submit the chosen method ID and typed field values.

Auto is a policy resolver. It selects the first configured and available method from Project Settings > Betide > Crossplay > Auto Login Routes for the current platform. Automatic startup uses this same request pipeline.

Results and continuation

Both terminal delegates expose stable outputs:

PinMeaning
PlayerThe primary authority handle
IdentityPrimary authority, handles keyed by FBetideProviderId, and authenticated credential sources
ErrorRole, provider, route, code, and actionable missing configuration

An interactive method can enter Needs User Interface or Needs Challenge Response before it completes. Render the returned challenge and call Continue Login with the same operation and challenge IDs. Use Cancel Login when the player closes the screen. Account creation, linking, transfer, and merge are explicit Account Policy choices; UCIK never merges accounts implicitly.

Use Get Identity Handle, Get Authenticated Providers, and Has Identity Provider for stable secondary-provider queries. See Login in C++, the adaptive example, and AWS Cognito.

On this page