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.

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
- 01
Preview the three included challenges
- 02
Show permanent access at 75 Koin
- 03
Offer Confirm and Cancel before access changes
- 04
Explain insufficient balance with a safe return
- 05
Unlock the challenge-select entries after success
- 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
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.