> For the complete documentation index, see [llms.txt](https://docs.allout.game/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allout.game/monetization/in-game-products.md).

# In Game Products

### Product Types

#### Game Passes

Use game passes for persistent one-time purchases:

* Unlocking admin passes
* Permanent power ups/abilities
* Buying houses

#### Consumables

Use consumables for products you want people to be able to buy multiple times:

* Health potions
* Buffs that expire over time
* One time in-game coin purchases

### Creating Products

<figure><img src="/files/Sb8qr6N3ga30EBnIkXBn" alt=""><figcaption><p>To create a product click the "+ Add Product" button on the Monetization tab of your game's Creator Portal</p></figcaption></figure>

<figure><img src="/files/QuMNFlTwnpkzkTa6sIAq" alt=""><figcaption><p>If the consumable box is not checked this will be a "Game Pass"</p></figcaption></figure>

{% hint style="warning" %}
Uploading product images is currently restricted to admins only. Please reach out on [Developer Support](/going-all-out/developer-support.md) to upload thumbnails
{% endhint %}

### Understanding the products list

<figure><img src="/files/5yPl0inxBynIMnI29Byv" alt=""><figcaption></figcaption></figure>

The products list displays the names of all your products along with some helpful items:

* The number of sparks spent (and the total number of sales hovering the ? icon)
* An **estimate** of the amount of revenue each generated
* The ID of the product (can click to copy to [place in your game code for purchasing](/core-engine-concepts/purchasing-product-apis.md))
* The number of "Grant Failures"

#### Purchase Handlers / Grant Failures

When a user buys a product in your game, we run the "purchase handler" function you've defined in your game code.

Your purchase handler will normally grant an item or feature to a player based on which product ID they bought.

However, if your purchase handler fails (for example if their inventory was full and you didn't handle that scenario) it will count as a "grant failure" and be displayed in the Products page on the creator portal so you can fix the issue.

Grant failures will be **automatically retried each time the player joins until they succeed.**

If your purchase handler was successful, but for some reason the user lost the item due to a game bug or otherwise, you can **re-run** the purchase handler for that user by marking the purchase as ungranted in the [Editing/Viewing Player Data](/data-and-persistence/editing-viewing-player-data.md)"Purchases" section.


---

# 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://docs.allout.game/monetization/in-game-products.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.
