# Unlockables

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

---


# Unlockables

Read more about the Unlockables system in Hiro [here](../../concepts/unlockables/).

## Create a random unlockable

Create a random unlockable to assign to a slot (or overflow) unless there are no slots.

```gdscript
var unlockables_list = await hiro.unlockablesCreate(session)
print(unlockables_list)
```

## Get in progress unlockables

Get the unlockables which are currently in progress for the player.

```gdscript
var unlockables_list = await hiro.unlockablesGet(session)
print(unlockables_list)
```

## Start an unlock

Start the unlock timer for an unlockable in the specified slot.

```gdscript
var request = Hiro.UnlockablesRequest.new()
request.instance_id = "unlockable_instance_1"

var unlockables_list = await hiro.unlockablesUnlockStart(session, request)
print(unlockables_list)
```

## Purchase an unlockable

Purchase an unlockable with soft currency based on the remainder cost calculated by the offset left to wait.

```gdscript
var request = Hiro.UnlockablesRequest.new()
request.instance_id = "unlockable_instance_1"

var unlockables_list = await hiro.unlockablesPurchaseUnlock(session, request)
print(unlockables_list)
```

## Purchase a new unlockable slot

Purchase a new slot to be used to store unlockables.

```gdscript
var unlockables_list = await hiro.unlockablesPurchaseSlot(session)
print(unlockables_list)
```

## Claim an unlockable

Claim an unlockable whose start timer has completed or completion was fast tracked with a purchase.

```gdscript
var request = Hiro.UnlockablesRequest.new()
request.instance_id = "unlockable_instance_1"

var unlockables_list = await hiro.unlockablesClaim(session, request)
print(unlockables_list)
```