Skip to Content
Depot docs

Depot SDK

Check from inside your game whether the player owns it and its DLC, offline.

The Depot SDK lets your game ask one question: does this player own this package? It answers from the signed offline license that the Depot launcher (or the CLI) stores on the player's computer. The SDK works offline, doesn't need the launcher to be running, and never opens a browser or asks the player to sign in.

You don't need the SDK to sell or ship a game on Depot. Builds are already encrypted, and only players who own the game can download them. Use the SDK when you want the game itself to react to ownership, for example:

  • unlock DLC the player owns, or show a "get the expansion" screen when they don't,
  • show a message if the game is started without a license on this computer,
  • check that the installed files still match the release you signed.

How it works

  1. A player gets your game and installs it with the launcher.
  2. The launcher fetches a license for that player and game from Depot and stores it in a per-user folder. The license lists the packages the player owns, and Depot signs it.
  3. Your game creates the SDK with its game id and calls HasEntitlement("base") or HasEntitlement("expansion-1"). The SDK checks Depot's signature and the license's validity, then answers.

The SDK makes no network requests. Details: Offline licenses.

What it answers

StatusMeaning
GrantedThe license is valid and includes this package.
DeniedThe license is valid and doesn't include this package.
UnknownThere's no license on this computer. That doesn't mean the player doesn't own the game.
ExpiredThe license is too old. Opening the launcher renews it.
RefreshNeededYour game requires a fresher license than the one stored.
ErrorThe license file is invalid, for example its signature doesn't verify.

The SDK never blocks the game or shows UI. Your code decides what each result means for the player.

Engines

EnginePackageStatus
Unity 6 (6000.0 LTS and later)com.depot.games.sdkAvailable. The native library in the package is for macOS today.
.NET (MonoGame, FNA, Stride, Godot C# and others)Depot.Games.Sdk (netstandard2.1)Built and tested, same API shape as Unity. Not published to a package registry yet.

Both wrap the same native library, so they verify licenses the same way. Windows and Linux builds of the native library, and signed SDK downloads, aren't available yet.

using Depot.Games.Sdk;

using var depot = DepotSdk.Create(new DepotSdkOptions { GameId = "game_…", Environment = DepotEnvironment.Staging });
if (depot.HasEntitlement("expansion-1").Status == EntitlementStatus.Granted) UnlockExpansion();

That's the .NET API. For Unity, see Unity.

On this page