# Progression

**URL:** https://heroiclabs.com/docs/hiro/cpp/progression/
**Keywords:** progression, hiro
**Categories:** hiro, cpp, progression

---


# Progression

Read more about the Progression system in Hiro [here](../../concepts/progression/).

## Get all progressions

Get progressions.

```cpp
void onProgressionsGet(const Hiro::ProgressionList& progressionList)
{
    for (auto it = progressionList.progressions.begin(); it != progressionList.progressions.end(); it++)
    {
        std::cout << "Found progression: " << it->second.name << '\n';
    }
}

void onError(const Nakama::NError& error)
{
    std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}

Hiro::ProgressionGetRequest request;

hiroClient->progressionsGet(session, request, onProgressionsGet, onError);
```

## Purchase progression

Purchase a progression for permanent unlock, if supported.

```cpp
void onProgressionsPurchase(const Hiro::ProgressionList& progressionList)
{
    for (auto it = progressionList.progressions.begin(); it != progressionList.progressions.end(); it++)
    {
        std::cout << "Found progression: " << it->second.name << '\n';
    }
}

void onError(const Nakama::NError& error)
{
    std::cout << Nakama::toString(error.code) << ": " << error.message << '\n';
}

Hiro::ProgressionPurchaseRequest request;
request.id = "progression_1";

hiroClient->progressionsPurchase(session, request, onProgressionsPurchase, onError);
```