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
- A player gets your game and installs it with the launcher.
- 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.
- Your game creates the SDK with its game id and calls
HasEntitlement("base")orHasEntitlement("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
| Status | Meaning |
|---|---|
Granted | The license is valid and includes this package. |
Denied | The license is valid and doesn't include this package. |
Unknown | There's no license on this computer. That doesn't mean the player doesn't own the game. |
Expired | The license is too old. Opening the launcher renews it. |
RefreshNeeded | Your game requires a fresher license than the one stored. |
Error | The 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
| Engine | Package | Status |
|---|---|---|
| Unity 6 (6000.0 LTS and later) | com.depot.games.sdk | Available. 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.