Keep the brief portable
For a game designer, this purchase recovery prototype should make every player action and result shown in the game easy to evaluate. Write how to handle reloads, interrupted delivery, duplicate clicks, and insufficient Koin without double granting. Choose the offer moment, explain the game benefit, and protect the complete free path. Compare the experience before and after ownership. Describe screens, signals, states, and outcomes without tying the concept to a billing plugin. This lets a Godot team choose architecture after the player journey has been tested.
Plan export work independently
Browser behavior does not install store plugins, create native entitlements, or export approved binaries. Assign persistence, identity, platform APIs, security, refunds, and export testing separately.
Replay states in the Godot build
Once implemented, compare the same item definition and recovery paths against the prototype. Check scene changes, saved ownership, repeated input, and return from suspension without double delivery.
Judge the offer in the core loop
Run the game without opening the purchase choice, then run it with the item. Compare pacing, motivation, difficulty, and recovery so the offer supports play instead of repairing frustration that was added deliberately.
Make the player promise concrete
Describe what changes on screen, how long it lasts, where it appears, and what remains available without it. Replace value labels such as better or premium with rules a player can observe.
Review the moment of choice
Check what the player was doing immediately before the offer and where cancel returns them. The item should arrive after enough context to understand it, but never during a time-critical or emotionally pressured action.
Keep pending understandable
If delivery is interrupted, explain whether the result is pending, safe to retry, or already complete. Do not show both failure and success. Test that behavior using Godot prototype teams. A browser prototype does not install Godot billing plugins or export store-ready binaries.
Make retry idempotent
Repeated clicks and reloads should resolve to one purchase result. The player must never receive duplicate items or lose Koin twice. Test that behavior using Godot prototype teams. A browser prototype does not install Godot billing plugins or export store-ready binaries.
Return to a safe game state
A cancelled choice, a Koin shortage, and recoverable errors should preserve progress and offer a clear return or retry action. Test that behavior using Godot prototype teams. A browser prototype does not install Godot billing plugins or export store-ready binaries.