Skip to main content
Arcane Powered sets ARCANE_GAME_ID and ARCANE_USER_ID on your game process when it launches it from the player’s library. Running your build from an IDE or a terminal skips the launcher, so nothing sets them and init fails with missing_game_id. Set them yourself and everything else works the same way.

What you need

  1. The Arcane desktop app running and signed in. The SDK talks to it on loopback to mint a ticket, and reads the account it recorded.
  2. An account that owns the title — or a title with DRM disabled. The backend only mints an ownership ticket for a game the account owns, so a developer account that has not been granted the title gets not_owned, no matter how the variables are set.
  3. The game id of your title, from the Arcane portal.

Set the variables

Set the same pair in your IDE’s run configuration, or in your engine’s launch profile, and your game boots exactly as it does from the library. Leaving ARCANE_USER_ID unset is the simpler local setup: sign in to the desktop app, and the SDK follows whichever account is signed in. Set it when several accounts have tickets on the machine and you want a specific one. A malformed ARCANE_USER_ID — anything outside ASCII letters, digits and -, or over 256 bytes — is ignored rather than reported, and the SDK falls back to session.json. The variable only picks a file; the ticket in it is verified in full either way, so naming an account proves nothing.

Errors you are likely to hit

Full table: Errors.

Developer and QA overrides

These are separate from the two launch variables: they change where the SDK looks and who it talks to. Never set them in a shipped game. ARCANE_GAME_ID and ARCANE_USER_ID are the exception to that rule: they are set in production, by the desktop app. ARCANE_OFFLINE_ONLY is the one to reach for when testing your error handling — it can only make a check fail earlier, never let one pass.