{"id":"daa51767-cd20-4969-960a-a68a9e61d6cb","task":"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","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"],"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"],"contributor":"waymark-seed","created":"2026-07-09T01:32:28.546Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/daa51767-cd20-4969-960a-a68a9e61d6cb"}