Skip to content
UCIK Docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Set up Steam

Configure a Steam App ID and test authenticated clients correctly.

Run Steam and sign in to an account with access to your game. Set Steam App ID in Project Settings → Betide → Crossplay → Steam, then restart the editor.

The setting writes the Steam identity into DefaultEngine.ini and refreshes steam_appid.txt for PIE. 480 is Valve’s shared Spacewar test app; use your own App ID for your game’s achievements, inventory, Workshop, and release testing.

Verify the client

Select Verify in the Steam settings. It checks runtime initialization, the active App ID, Steam login, and ownership. A successful check does not verify your multiplayer transport or individual service configuration.

The plugin starts Steam login automatically for the first eligible game instance, even when EOS is your primary Crossplay identity. Friends and other service queries do not start login themselves.

Steam client status
Preparing your graph…

Loading the interactive viewer.

Game module dependencies: SIKBlueprints, SIKCore, SteamIntegrationShared, Engine.

#include "Auth/SIKAuthLibrary.h"

bool GetSteamPlayer(UObject *WorldContext, FString &OutSteamId, FString &OutDisplayName)
{
    OutSteamId.Reset();
    OutDisplayName.Reset();
    if (!USIKAuthLibrary::IsLoggedIn(WorldContext, 0))
        return false;
    OutSteamId = USIKAuthLibrary::GetLocalUserSteamId(WorldContext, 0);
    OutDisplayName = USIKAuthLibrary::GetLocalUserDisplayName(WorldContext, 0);
    return true;
}

These nodes are under Steam Integration Kit → Auth. Read services after authentication is ready. For the game’s unified player identity, use Login With Crossplay.

Test with two players

Use two Steam accounts on separate machines, each with access to the App ID. One local instance owns the Steam client for that app; additional PIE or Standalone instances remain excluded for that run. The owner keeps its connection across map travel.

-NoSteam, commandlets, and dedicated servers do not start a client login. Use -NoSteam for local tests that should exercise another provider without claiming Steam.

Choose the backend and transport

Online Services Mode selects Auto, V1, or V2. Auto uses OSSv2 when available; keep related kit backend settings aligned. Use a Crossplay preset for the unified transport policy.

Auto-Detect NetDriver From URL is enabled by default: an IP address uses the IP driver, while a Steam-ID address uses Steam sockets. Dedicated servers use IP by default. Enable Use Steam Sockets On Dedicated Server only when you intend to connect to them through Steam IDs. Match Game Server Port to the server’s listening port.

Packaged builds and Steam launch

The plugin supplies its Steam SDK integration and stages the runtime libraries. Test a packaged build with Steam running and the correct App ID. If initialization fails, check the runtime library, launch context, signed-in account, and app ownership against Valve’s initialization requirements.

For local development outside Steam, steam_appid.txt identifies the app. Do not include that development file in your Steam depot. Relaunch In Steam restarts a packaged build through Steam when needed; leave it off for Spacewar testing.

Steam login uses the account already signed into the Steam client. Logging out of the plugin session does not sign that account out of Steam.

Uploading builds

Configure maps, depots, and the target beta branch under Betide → Tools. An empty branch leaves the uploaded build unassigned; this uploader cannot set Steam’s default branch live.

Uploader credentials use per-developer storage or SIK_STEAM_USERNAME / SIK_STEAM_PASSWORD. They are not runtime credentials. Establish the account’s SteamCMD login and Steam Guard authorization before unattended uploads.

Next: Steam multiplayer or platform services.

Was this page helpful?