Inventory #

The Inventory system manages player-owned items, providing control over listing, granting, consuming, and updating inventory. Learn more in the Inventory concept guide.

Overview #

Inventory enables your game to:

  • List available inventory items.
  • Manage player-owned items.
  • Grant or consume inventory items.
  • Update item properties.

Before You Start #

Ensure you have:

  • Unity project configured with Hiro SDK.
  • Nakama system integrated (guide).

Working with Inventory #

Listing Available Items #

List all available items, optionally filtered by category:

1
2
3
4
5
request = InventoryListRequest()
request.item_category = "weapons"

inventory_list = await hiro_client.inventory_list(request)
print(inventory_list)

Listing Player’s Inventory Items #

List all items currently owned by the player, optionally filtered by category:

1
2
3
4
5
request = InventoryListRequest()
request.item_category = "weapons"

player_inventory = await hiro_client.inventory_list_inventory(request)
print(player_inventory)

Consuming Inventory Items #

Consume (use or remove) items from a player’s inventory:

1
2
3
4
5
6
7
request = InventoryConsumeRequest()
request.items = {
    "health_potion": "1"
}

consume_rewards = await hiro_client.inventory_consume(request)
print(consume_rewards)

Granting Inventory Items #

Grant new items or remove items (using negative values) from a player’s inventory:

1
2
3
4
5
6
7
request = InventoryGrantRequest()
request.items = {
    "bronze_sword": "1"
}

grant_rewards = await hiro_client.inventory_grant(request)
print(grant_rewards)

Updating Inventory Item Properties #

Update properties of items already owned by a player:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
request = InventoryUpdateItemsRequest()
request.item_updates = {
    "bronze_sword": {
        "string_properties": {
            "example_property": "example_value"
        },
        "numeric_properties": {
            "numeric_properties": 10
        }
    }
}

update_ack = await hiro_client.inventory_update(request)
print(update_ack)

Next Steps #