Build a game

Content unlock hub

Scope optional content before you ask a player to unlock it

A content unlock needs a visible boundary: what opens, what remains free, whether access is permanent, and how the game restores it later.

Authentic Bunny gameplay used as context for content unlock testing
Real gameplay context: BunnyUse the playable result to evaluate placement and UI state—not as proof of a completed transaction.

Concrete design brief

Worked example: a 75 Koin moonlit garden pack

List three named garden challenges and their reward cosmetics, mark the base platforming loop as free, and price permanent access at 75 Koin. After confirmation, open the challenge-select state; after reload, restore access without asking again.

Open the playable result →

Required state chain

Specify the whole IAP flow

  1. 01

    Preview the three included challenges

  2. 02

    Show permanent access at 75 Koin

  3. 03

    Offer Confirm and Cancel before access changes

  4. 04

    Explain insufficient balance with a safe return

  5. 05

    Unlock the challenge-select entries after success

  6. 06

    Reload and restore the unlocked-content flag

Before release: replace mocked balances and local flags with authenticated transaction records, idempotent delivery, platform-required consent, security review, and a support/refund process.

Related IAP design hubs

Move to the closest purchase intent

Cosmetic IAP Consumable IAP Convenience IAP Purchase flow testing Player trust

Focused questions

Content unlock FAQ

How much of the game should remain free?

Keep a coherent base experience playable and state the paid boundary before confirmation; the right scope depends on the game, audience, and release policy.

How should a permanent unlock be restored?

Persist an entitlement identifier, reconcile it when the game loads, and never charge again merely because local state was cleared.