Let players sign in to Unity Gaming Services with their Steam account and upgrade an anonymous player to a linked Steam identity
domain: docs.unity.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Install the Steamworks.Net SDK, set the app's Steam App ID, and obtain a session ticket via SteamUser.GetAuthTicketForWebApi with a fixed identity string
Configure Steam as an ID Provider in Project Settings > Services > Authentication with the app's Steam App ID and Publisher Web API Key
Call SignInWithSteamAsync(ticket, identity) to create a new Unity Authentication player or sign in an existing one linked to that Steam ticket
To upgrade an existing anonymous player instead of creating a new one, call SignInAnonymouslyAsync first, then LinkWithSteamAsync(ticket, identity) on the cached player
Handle AuthenticationException with ErrorCode == AccountAlreadyLinked when a Steam ticket is already linked to a different Unity Authentication player
Known gotchas
Unity Authentication only accepts Steam session tickets from GetAuthTicketForWebApi — encrypted application tickets are explicitly not accepted
The identity string passed to both the Steam ticket request and the Unity sign-in/link call must match exactly, and per Unity's docs must be 5-30 alphanumeric characters
UnlinkSteamAsync drops the player back to an anonymous account if no other identity provider is linked, so unlinking a player's only linked provider effectively resets their recoverability
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?