# Unlockables

**URL:** https://heroiclabs.com/docs/hiro/concepts/unlockables/
**Keywords:** unlockables, hiro
**Categories:** hiro, unlockables, concepts

---


# Unlockables

![Time-based unlockable reward chests in Squad Alpha by Say Games.]({{< fingerprint_image "/images/pages/hiro/concepts/unlockables.png" >}})

Unlockables are a Hiro meta system which allows the player to unlock rewards in the game. The rewards can be anything from a new character, a new weapon, or anything relevant for your game. Unlockables can be unlocked by the player by waiting for a period of time or by watching a [rewarded video](../economy/rewarded-video).

You can configure unlockables so that players only have a limited number of slots for active unlockables at any time, and also provide players the ability to purchase extra slots to store more unlockables, up to a maximum limit.

## Customization parameters

All unlockables and their configuration is done through a JSON definition.

The following JSON represents the customization parameters you can use to configure the default user experience for the Unlockables system.

```json
{
    "active_slots": 1, // Initial number of active slots.
    "max_active_slots": 3,
    "slots": 4,
    "slot_cost": {
        "currencies": {
            "gems": 50
        }
    },
    "unlockables": {
        "unlockable_id1": {
            "probability": 100,
            "category": "",
            "cost": {
                "currencies": {
                    "coins": 10
                }
            },
            "cost_unit_time_sec": 60,
            "description": "",
            "name": "Tiny Reward Chest!",
            "start_cost": {
                "currencies": {
                    "coins": 5
                }
            },
            "reward": {
                "guaranteed": {
                "currencies": {
                    "gold": {
                        "min": 100
                    }
                },
                "items": {
                    "hero_card": {
                        "min": 1,
                        "max": 5
                    }
                }
            },
            "wait_time_sec": 14400, // 4 hours.,
            "additional_properties": {
                "<propertyName>": "value"
            }
        }
    }
}
```

The JSON schema defines an `unlockables` object which \_must contain an individual object for each unlockable you wish to define in the system. You can configure as few or as many unlockables as needed for your desired gameplay.

{{< table name="gdk.concepts.unlockables.unlockables-system" >}}

### Slot Cost

{{< table name="gdk.concepts.unlockables.slot-cost" >}}

Each individual unlockable may define the following:

### Unlockable

{{< table name="gdk.concepts.unlockables.unlockable" >}}

### Unlockable Cost

{{< table name="gdk.concepts.unlockables.unlockable-cost" >}}

### Unlockable Start Cost

{{< table name="gdk.concepts.unlockables.unlockable-start-cost" >}}
