Skip to content

Retrieve Assets In-Game

This how-to fetches Assets from the backend to use in your game, including filtering, pagination, favouriting, and reading or writing Asset Instance Key/Value storage.

Prerequisites

Retrieve Assets

List Assets

Fetch a batch of Assets from the backend:

int count = 10;
LootLockerSDKManager.GetAssetListWithCount(count, (response) =>
{
if (response.success)
{
Debug.Log("Successfully retrieved " + response.assets.Length + " assets");
}
else
{
Debug.Log("Error retrieving assets");
}
});

See the Reference Documentation for the full response.

Get the Next Batch of Assets

After the initial call completes, call this method to retrieve more Assets. Keep calling it until you stop receiving Assets to retrieve all of them.

LootLockerSDKManager.GetAssetNextList(count, (response) =>
{
if (response.success)
{
Debug.Log("Successfully retrieved second batch of " + response.assets.Length + " assets");
}
else
{
Debug.Log("Error retrieving assets");
}
});

See the Reference Documentation for the full response.

Reset Asset Pagination

After you finish retrieving the Assets you need, reset the pagination state — otherwise, the next retrieval might start from your previous last-retrieved Asset.

LootLockerSDKManager.ResetAssetCalls();

Retrieve Assets with a Filter

int count = 10;
List<LootLocker.LootLockerEnums.AssetFilter> filter = new List<LootLocker.LootLockerEnums.AssetFilter>() { LootLocker.LootLockerEnums.AssetFilter.nonpurchasable };
LootLockerSDKManager.GetAssetListWithCount(count, (response) =>
{
if (response.success)
{
Debug.Log("Successfully retrieved " + response.assets.Length + " assets");
}
else
{
Debug.Log("Error retrieving assets");
}
}, filter);

See the Reference Documentation for the full response.

Retrieve Assets by IDs

If you already know the IDs of the Assets you want, retrieve them directly.

string[] list = new string[] { "8111" };
LootLockerSDKManager.GetAssetsById(list, (response) =>
{
if (response.success)
{
Debug.Log("Successfully retrieved " + response.assets.Length + " assets");
Debug.Log("First Asset ID: " + response.assets[0].id);
}
else
{
Debug.Log("Error retrieving assets");
}
});

See the Reference Documentation for the full response.

Manage Favourite Assets

List Favourite Assets

LootLockerSDKManager.ListFavouriteAssets((response) =>
{
if (response.success)
{
Debug.Log("Successfully retrieved " + response.favourites.Length + " assets");
if (response.favourites.Length > 0)
{
Debug.Log("First Asset ID: " + response.favourites[0]);
} else
{
Debug.Log("No favourite assets");
}
}
else
{
Debug.Log("Error retrieving assets");
}
});

See the Reference Documentation for the full response.

Add a Favourite Asset

LootLockerSDKManager.AddFavouriteAsset("8111", (response) =>
{
if (response.success)
{
Debug.Log("Successfully favourited asset");
}
else
{
Debug.Log("Error favouriting asset");
}
});

See the Reference Documentation for the full response.

Remove a Favourite Asset

LootLockerSDKManager.RemoveFavouriteAsset("8111", (response) =>
{
if (response.success)
{
Debug.Log("Successfully removed favourite asset");
}
else
{
Debug.Log("Error removing favourite asset");
}
});

See the Reference Documentation for the full response.

Manage Asset Instance Key/Value Storage

Get All Key/Value Pairs for an Asset Instance

LootLockerSDKManager.GetAllKeyValuePairsToAnInstance(45781352, (response) =>
{
if (response.success)
{
if (response.storage.Length > 0)
{
Debug.Log("Successfully retrieved " + response.storage.Length + " key value pairs");
}
else
{
Debug.Log("No key value pairs for asset instance");
}
}
else
{
Debug.Log("Error retrieving assets");
}
});

See the Reference Documentation for the full response.

Get a Key/Value Pair by ID

int assetInstanceID = 84;
int keyValueID = 1;
LootLockerSDKManager.GetAKeyValuePairByIdForAssetInstances(assetInstanceID, keyValueID, (response) =>
{
if (response.success)
{
Debug.Log("Successfully retrieved key value pair");
}
else
{
Debug.Log("Error retrieving key value pair");
}
});

See the Reference Documentation for the full response.

Create a Key/Value Pair

LootLockerSDKManager.CreateKeyValuePairForAssetInstances(45781352, "some-new-key", "value here", (response) =>
{
if (response.success)
{
Debug.Log("Successfully created key value pair for asset instance");
}
else
{
Debug.Log("Error creating key value pair");
}
});

See the Reference Documentation for the full response.

Update One or More Key/Value Pairs

int assetInstanceID = 84;
Dictionary<string, string> multipleTestKeys = new Dictionary<string, string>();
multipleTestKeys.Add("some-new-key", "Some value");
multipleTestKeys.Add("some-other-key", "Some other value");
LootLockerSDKManager.UpdateOneOrMoreKeyValuePairForAssetInstances(assetInstanceID, multipleTestKeys, (response) =>
{
if (response.success)
{
Debug.Log("Successfully updated key value pairs");
}
else
{
Debug.Log("Error updating key value pairs");
}
});

See the Reference Documentation for the full response.

Delete a Key/Value Pair

int assetInstanceID = 84;
int keyValuePairID = 1;
LootLockerSDKManager.DeleteKeyValuePairForAssetInstances(assetInstanceID, keyValuePairID, (response) =>
{
if (response.success)
{
Debug.Log("Successfully removed key value pair");
}
else
{
Debug.Log("Error removing key value pair");
}
});

See the Reference Documentation for the full response.

Conclusion

You've retrieved Assets in your game, including filtering, pagination, favouriting, and Asset Instance Key/Value storage. Next, see Check Grant Notifications to check for Assets granted to a Player from outside sources.