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.

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.

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.

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();
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.

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.

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.

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.

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.

Get All Key/Value Pairs for an Asset Instance

Section titled “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.

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.

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.

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.

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.

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.