Crossplay Integration Kit
Getting Started

Setup

Configure provider roles and their owning kits

Setup

Open Project Settings > Betide > Crossplay. It is the only page a game needs; Betide > Tools holds deployment and packaging settings.

  1. Start from — pick a preset: PC crossplay · EOS + Steam, EOS only, Steam only, Mobile, Dedicated servers · GameLift or Edgegap matchmaking. It ticks the kits, sets every role policy and turns auto-login on. Change anything afterwards.
  2. Kits — the services your game uses. Each ticked kit's settings appear further down the same page. Kits limited to a platform (Game Center, Google Play, Discord) show their platform and are hidden until the project targets it or its SDK is installed.
  3. Online API — one switch that sets the engine online API (Auto, Online Services v2, Online Subsystem v1) on every kit at once.
  4. Verify — contacts each enabled service with the values on the page and reports what it found, naming the setting to fix.
  5. Health — what still blocks a working build: a missing credential, an unapplied transport, a shared default encryption key. Each line names the field or button that fixes it.
  6. Roles, Login, Defaults — lobby and session authority, transport, auto-login, capacity and search limits.

Each kit section shows its essential and common settings; Show all reveals the advanced ones. Deployment tooling (one-click uploads, container builds, server tooling) lives on Betide > Tools.

Configure only the kits your game uses:

Product choiceSettings page
EOS identity, lobbies, sessions, storage, transport, or voiceEOS Integration Kit
Steam identity source, lobbies, sessions, social, progression, storage, or transportSteam Integration Kit
Discord identity source or social profileDiscord Integration Kit
Game Center identity, social, or progressionGame Center Integration Kit
Google identity or Play Games progressionGoogle Play Integration Kit
Cognito identity authorityAWS Integration Kit > Cognito
GameLift or Edgegap hosting and matchmakingThe provider's own kit tab

EOS credentials

Open EOS Developer Portal > Product Settings and copy five values into EOS Integration Kit > Credentials:

FieldWhere it lives in the Developer Portal
Product IDProduct Settings > General
Sandbox IDProduct Settings > Sandboxes (Dev, Stage or Live)
Deployment IDProduct Settings > Sandboxes > Deployments, inside that sandbox
Client IDProduct Settings > Clients, an SDK Credentials client starting with xyz
Client SecretProduct Settings > Clients, shown once when the client is created

That is the whole setup. Encryption Key is optional and only matters for Player Data Storage; the shipped key is shared by every project using the plugin, so generate a unique 64-character hex key before shipping - Health reminds you while the default is in place.

Artifacts (advanced) holds additional credential sets for builds that carry several: the Epic Games Launcher selects one with -EpicApp=<Artifact Name>, a dedicated server uses Dedicated Server Artifact Name and voice uses Voice Artifact Name. The Credentials fields answer to Default Artifact Name and win over an Artifacts entry with that name; a project that only has an Artifacts entry keeps working unchanged.

The Steam App ID, game version and relaunch-in-Steam flag live on the Steam Integration Kit page only; it writes the [OnlineSubsystemSteam] SteamDevAppId, SteamAppId, GameVersion and bRelaunchInSteam keys in DefaultEngine.ini. The EOS Integration Kit reads the app id from that engine key when Enable Steam Native Platform Setup is ticked and never writes [OnlineSubsystemSteam] keys itself.

Secrets

API tokens and upload credentials (Edgegap keys, the Steam deployer Username and Password) are never Config properties, so they never land in Default*.ini or source control. Each one resolves from an environment variable first (EDGEGAP_API_KEY, SIK_STEAM_PASSWORD, and so on; the field tooltip names it), otherwise from the per-developer Saved/Config/<Platform>/EditorPerProjectUserSettings.ini, which is where editing the field in Project Settings writes it. Packaged builds and CI have no editor ini, so they must supply the environment variable. The Steam upload hands credentials to steamcmd through a temporary +runscript file that is deleted when the upload ends; they are never on a command line.

UCIK stores a policy per role: primary plus ordered mirrors for lobbies and sessions, ordered fan-out lists for social/progression/storage/voice, one transport, and ordered hosting/matchmaking providers. Provider IDs use a catalog dropdown; unavailable entries remain visible with their reason.

For transport, choose the provider in the Overview and select Apply Transport Configuration. UCIK writes and validates the required GameNetDriver block. See Travel and Hosting.

Use a unified node first. Kit-specific login, lobby, session, friend, invite, progression, storage, and hosting nodes remain the advanced path for a platform-exact option set.

On this page