Skip to content

Read Progressions from Your Game

This how-to retrieves Progressions and their tiers, as defined for your game in the Web Console.

Prerequisites

Retrieve a Progression

Get a Single Progression

string progressionKey = "mage";
LootLockerSDKManager.GetProgression(progressionKey, response =>
{
if (!response.success) {
Debug.Log("Failed: " + response.Error);
}
// Output the name of the fetched progression
Debug.Log(response.name);
});

See the Reference Documentation for the full response.

Get All Progressions

LootLockerSDKManager.GetProgressions(response =>
{
if (!response.success) {
Debug.Log("Failed: " + response.Error);
}
if (!response.items.Any())
{
Debug.Log("Your game does not have any progressions, create one in the Web Console");
}
// Output the name for all progressions
foreach (var progression in response.items)
{
Debug.Log(progression.name);
}
});

See the Reference Documentation for the full response.

Get All Progressions Using Count

Count limits the number of entries returned.

int count = 20;
LootLockerSDKManager.GetProgressions(count, response =>
{
if (!response.success) {
Debug.Log("Failed: " + response.Error);
}
if (!response.items.Any())
{
Debug.Log("Your game does not have any progressions, create one in the Web Console");
}
// Output the name for all progressions
foreach (var progression in response.items)
{
Debug.Log(progression.name);
}
});

See the Reference Documentation for the full response.

Paginate Progressions

Use the After parameter to paginate if your game has many Progressions.

int numberOfItemsPerPage = 10;
LootLockerPaginatedProgressionsResponse progressions;
void Start()
{
LootLockerSDKManager.StartGuestSession(_ =>
{
// Fetch the initial progressions list
LootLockerSDKManager.GetProgressions(numberOfItemsPerPage, response =>
{
if (!response.success)
{
Debug.Log("Failed: " + response.Error);
}
if (response.pagination.total == 0)
{
Debug.Log("Your game does not have any progressions, create one in the Web Console");
}
progressions = response;
});
});
}
void Update()
{
if (progressions == null) return;
// Fetch the next page if more progressions exist
if (Input.GetKeyDown(KeyCode.RightArrow) && progressions.pagination.next_cursor != null)
{
LootLockerSDKManager.GetProgressions(numberOfItemsPerPage, progressions.pagination.next_cursor, response =>
{
if (!response.success)
{
Debug.Log("Failed: " + response.Error);
}
progressions = response;
Debug.Log($"Paginating right, got {progressions.items.Count} progressions");
});
}
// Fetch the previous page if we are not on the first page
if (Input.GetKeyDown(KeyCode.LeftArrow) && progressions.pagination.previous_cursor != null)
{
LootLockerSDKManager.GetProgressions(numberOfItemsPerPage, progressions.pagination.previous_cursor, response =>
{
if (!response.success)
{
Debug.Log("Failed: " + response.Error);
}
progressions = response;
Debug.Log($"Paginating left, got {progressions.items.Count} progressions");
});
}
}

See the Reference Documentation for the full response.

Retrieve Progression Tiers

Get All Progression Tiers

string progressionKey = "mage";
LootLockerSDKManager.GetProgressionTiers(progressionKey, response =>
{
if (!response.success) {
Debug.Log("Failed: " + response.Error);
}
// Output the progression tiers with levels, required points and rewards
foreach (var progressionTier in response.items)
{
Debug.Log($"Level {progressionTier.step} requires {progressionTier.points_threshold} experience points");
foreach (var assetReward in progressionTier.rewards.asset_rewards)
{
Debug.Log($"Reaching level {progressionTier.step} awards asset with id: {assetReward.asset_id}");
}
foreach (var progressionPointsReward in progressionTier.rewards.progression_points_rewards)
{
Debug.Log($"Reaching level {progressionTier.step} awards {progressionPointsReward.amount} points in {progressionPointsReward.progression_name} progression");
}
foreach (var progressionResetReward in progressionTier.rewards.progression_reset_rewards)
{
Debug.Log($"Reaching level {progressionTier.step} resets the {progressionResetReward.progression_name} progression");
}
}
});

See the Reference Documentation for the full response.

Get All Progression Tiers Using Count

Count limits the number of entries returned.

string progressionKey = "mage";
int count = 20;
LootLockerSDKManager.GetProgressionTiers(progressionKey, count, response =>
{
if (!response.success) {
Debug.Log("Failed: " + response.Error);
}
// Output the progression tiers with levels, required points and rewards
foreach (var progressionTier in response.items)
{
Debug.Log($"Level {progressionTier.step} requires {progressionTier.points_threshold} experience points");
foreach (var assetReward in progressionTier.rewards.asset_rewards)
{
Debug.Log($"Reaching level {progressionTier.step} awards asset with id: {assetReward.asset_id}");
}
foreach (var progressionPointsReward in progressionTier.rewards.progression_points_rewards)
{
Debug.Log($"Reaching level {progressionTier.step} awards {progressionPointsReward.amount} points in {progressionPointsReward.progression_name} progression");
}
foreach (var progressionResetReward in progressionTier.rewards.progression_reset_rewards)
{
Debug.Log($"Reaching level {progressionTier.step} resets the {progressionResetReward.progression_name} progression");
}
}
});

See the Reference Documentation for the full response.

Paginate Progression Tiers

Use the After parameter to paginate if a Progression has many tiers.

string progressionKey = "mage";
int numberOfItemsPerPage = 10;
LootLockerPaginatedProgressionTiersResponse progressionTiers;
void Start()
{
LootLockerSDKManager.StartGuestSession(_ =>
{
// Fetch the initial list of progression tiers
LootLockerSDKManager.GetProgressionTiers(progressionKey, numberOfItemsPerPage, response =>
{
if (!response.success)
{
Debug.Log("Failed: " + response.Error);
}
progressionTiers = response;
});
});
}
void Update()
{
if (progressionTiers == null) return;
// Fetch the next page if more tiers exist
if (Input.GetKeyDown(KeyCode.RightArrow) && progressionTiers.pagination.next_cursor != null)
{
LootLockerSDKManager.GetProgressionTiers(progressionKey, numberOfItemsPerPage, progressionTiers.pagination.next_cursor, response =>
{
if (!response.success)
{
Debug.Log("Failed: " + response.Error);
}
progressionTiers = response;
Debug.Log($"Paginating right, got {progressionTiers.items.Count} progression tiers");
});
}
// Fetch the previous page if we are not on the first page
if (Input.GetKeyDown(KeyCode.LeftArrow) && progressionTiers.pagination.previous_cursor != null)
{
LootLockerSDKManager.GetProgressionTiers(progressionKey, numberOfItemsPerPage, progressionTiers.pagination.previous_cursor, response =>
{
if (!response.success)
{
Debug.Log("Failed: " + response.Error);
}
progressionTiers = response;
Debug.Log($"Paginating left, got {progressionTiers.items.Count} progression tiers");
});
}
}

See the Reference Documentation for the full response.

Conclusion

You've retrieved Progressions and their tiers from your game. Next, apply points to a specific holder with Player Progressions, Character Class Progressions, or Asset Instance Progressions.