> For the complete documentation index, see [llms.txt](https://gamelauncher.cloud/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gamelauncher.cloud/help/applications/license-keys.md).

# License Keys (Buy to Play)

<figure><img src="/files/sv2RD11POtx5wD2itz12" alt=""><figcaption></figcaption></figure>

Turn your app or DLC into buy-to-play content: generate license keys, sell them through your own store or key resellers, and let players redeem them inside the launcher. A redeemed key becomes a permanent entitlement bound to the player's account.

{% hint style="info" %}
**How it works**\
You generate keys in the dashboard and distribute them however you like (your store, Fanatical, gleam campaigns, gifts). Players click **Redeem Key** in the launcher, paste the key, and the content unlocks instantly. The purchase itself happens outside Game Launcher Cloud in this phase.
{% endhint %}

{% hint style="warning" %}
**Login System required**\
Entitlements are saved on the player's account, so buy-to-play only works on launchers with the **Auth System** enabled. Guests are asked to sign in before redeeming.
{% endhint %}

***

## Enabling Buy to Play

{% stepper %}
{% step %}
**Open the License Keys Tab**

Log in to your [Game Launcher Cloud](https://app.gamelauncher.cloud/dashboard) account, select your app, and open the **License Keys** tab.
{% endstep %}

{% step %}
**Enable Buy to Play**

Turn on the **Buy to Play** toggle at the top of the tab. From that moment, players without an entitlement see the app locked in the launcher with a **Redeem Key** button.
{% endstep %}

{% step %}
**Optional: Paid DLC**

To sell a DLC separately, edit the DLC and enable **Paid DLC (license key required)**. The DLC shows locked in the DLC Manager until the player redeems a key for it. The base app can stay free while DLCs are paid, or both can be paid.
{% endstep %}
{% endstepper %}

***

## Generating Keys

<figure><img src="/files/ALKDTGcDTGE3a5TkerNW" alt=""><figcaption><p>License Keys example</p></figcaption></figure>

Click **Generate Keys** in the License Keys tab and choose:

| Field          | Required | Description                                                                      |
| -------------- | -------- | -------------------------------------------------------------------------------- |
| **Target**     | ✅ Yes    | The base app or one of its DLCs                                                  |
| **Quantity**   | ✅ Yes    | 1 to 1000 keys per batch                                                         |
| **Expiration** | Optional | Unredeemed keys stop working after this date. Redeemed entitlements never expire |
| **Tag**        | Optional | A free note to identify the batch (e.g. the reseller it was exported for)        |

Keys look like `GLC-XXXXX-XXXXX-XXXXX-XXXXX`. After generation you can copy them all or download the batch as CSV. Keys stay retrievable later: use **Reveal** on any key or **Export CSV** on the whole list, so you can re-send a batch to a reseller at any time.

{% hint style="info" %}
**Batches**\
Keys generated together share a batch id. You can filter the list by target and status, and revoke a whole batch at once through the API if a reseller deal falls through.
{% endhint %}

***

## Redemption in the Launcher

<figure><img src="/files/b0ePJQV5xkuZNPuw8dsh" alt=""><figcaption><p>Launcher Desktop - DLC Install Window</p></figcaption></figure>

<figure><img src="/files/cZTE7bGykNP8RrcbEP5A" alt=""><figcaption><p>Launcher Desktop - Redeem Window</p></figcaption></figure>

1. The player selects the locked app (or opens the DLC Manager for a locked DLC) and clicks **Redeem Key**.
2. If they are not signed in, the launcher asks them to sign in first.
3. They paste the key (with or without dashes, case does not matter) and confirm.
4. The content unlocks immediately, without restarting the launcher, and the redemption appears in the **Redemptions** sub tab of the dashboard.

Each key is single use. If the player already owns the content, the key is not consumed and can be redeemed by someone else.

If the app has a **Store URL** configured in its link settings, the redeem dialog also shows a **Visit Store** button so interested players can buy a key.

***

## Managing Keys and Access

| Action              | Where            | Effect                                                                                                       |
| ------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------ |
| **Revoke key**      | Keys list        | An active key can no longer be redeemed. Revoking an already redeemed key also revokes the access it granted |
| **Revoke access**   | Redemptions view | The player loses access at their next launcher session. Use it for refunds and chargebacks                   |
| **Reveal / Export** | Keys list        | Shows the full key again or downloads the filtered list as CSV                                               |

***

## Offline Behavior

The launcher caches the player's entitlements on disk, so owned games stay playable without an internet connection. The cache belongs to the signed-in account and refreshes on every launcher start, sign in, and redemption. If you revoke access, the player is locked out the next time the launcher goes online.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://gamelauncher.cloud/help/applications/license-keys.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
