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.
- 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.
- 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.
- Online API — one switch that sets the engine online API (Auto, Online Services v2, Online Subsystem v1) on every kit at once.
- Verify — contacts each enabled service with the values on the page and reports what it found, naming the setting to fix.
- 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.
- 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 choice | Settings page |
|---|---|
| EOS identity, lobbies, sessions, storage, transport, or voice | EOS Integration Kit |
| Steam identity source, lobbies, sessions, social, progression, storage, or transport | Steam Integration Kit |
| Discord identity source or social profile | Discord Integration Kit |
| Game Center identity, social, or progression | Game Center Integration Kit |
| Google identity or Play Games progression | Google Play Integration Kit |
| Cognito identity authority | AWS Integration Kit > Cognito |
| GameLift or Edgegap hosting and matchmaking | The provider's own kit tab |
EOS credentials
Open EOS Developer Portal > Product Settings and copy five values into EOS Integration Kit > Credentials:
| Field | Where it lives in the Developer Portal |
|---|---|
| Product ID | Product Settings > General |
| Sandbox ID | Product Settings > Sandboxes (Dev, Stage or Live) |
| Deployment ID | Product Settings > Sandboxes > Deployments, inside that sandbox |
| Client ID | Product Settings > Clients, an SDK Credentials client starting with xyz |
| Client Secret | Product 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.