SEELE AIStart creating

Indie Studio guide · Horror · Direct Koin item

How an Indie Studio Can Add a Koin Cosmetic Collection to a Horror Game

Build the horror game first, then add one optional cosmetic collection that supports the existing play loop. This guide keeps the item understandable from its first preview through delivery and reload.

Create this game flow
How an Indie Studio Can Add a Koin Cosmetic Collection to a Horror Game visual reference
Visual reference only. Your generated game follows the prompt you choose.

Plan the cosmetic collection around the game

Indie studio plan

Give design, UI, and QA one shared item definition. Everyone should use the same benefit, duration, Koin price, and ownership rule.

Why it fits horror

A horror browser prototype centered on tension, atmosphere, and non-paywalled narrative access.

What the item offers

A cosmetic collection preview with a concrete description and direct Koin price.

A practical horror example

Offer moment

Place the cosmetic collection after this loop advances: a horror browser prototype centered on tension, atmosphere, and non-paywalled narrative access. Wait for a safe pause. Player progress must not depend on the offer.

Offer card

Offer-card rules: Protect narrative access; Preview it during play. Show the item, benefit, ownership or duration, balance, and clearly stated Koin cost. Keep confirm and cancel separate.

Successful result

Test preview, confirm, insufficient balance, success, equip the owned cosmetic and keep it visible in inventory, and reload. Show that change inside normal play instead of relying only on a success message.

Free path

Test a free session around a horror browser prototype centered on tension, atmosphere, and non-paywalled narrative access. If play becomes incomplete, fix the game before changing the offer.

Design the cosmetic collection in detail

Do not monetize the scare

Place the offer in a menu, chapter break, or safe room rather than during pursuit, darkness, or a jump scare. Fear and urgency should come from the game, not from a purchase decision.

Protect narrative access

Cosmetics or clearly labeled bonus scenes can be optional, but essential clues, accessibility aids, and the advertised ending should not be withheld. Explain content warnings and scope prior to confirming.

Test atmosphere and recovery

Cancel, reload, and return from the safe room without changing checkpoints, collected clues, audio state, or difficulty. Delivered visuals must remain readable without undermining contrast needed for navigation.

Check the purchase without weakening tension or access

This horror game uses a horror browser prototype centered on tension, atmosphere, and non-paywalled narrative access. Review the genre through do not monetize the scare and protect narrative access. For a indie studio, the cosmetic collection should support that loop without becoming mandatory. Review the item through preview it during play and make ownership obvious. An indie studio can divide timing, interface, implementation, and failure testing among named owners. The example offer is: A cosmetic collection preview with a concrete description and direct Koin price. This offer emphasizes expression without changing competitive power before expanding the catalog. Reach a safe room after recording the checkpoint, clues, inventory, audio settings, difficulty, and current objective. Present the choice away from pursuit or a jump scare. Cancel and return to the same atmosphere without another immediate prompt, then trigger insufficient Koin with neutral language. Complete a valid cosmetic or clearly bounded bonus-content choice and use its entry point without hiding essential clues, accessibility aids, or the advertised ending. Move into the next scene and reopen the game. Verify that lighting contrast, navigation audio, story continuity, and checkpoint recovery remain reliable, and that fear comes from authored play rather than pressure surrounding the transaction.

Give each discipline one decision

Design owns the offer timing and free path, UI owns readable states, engineering owns state transitions, and QA owns failure coverage. Agree on the same item definition before anyone creates implementation tickets.

Review the playable flow together

Use the prototype in a short team session and walk through decline, insufficient Koin, pending, success, delivery, and reopening. Resolve player-facing disagreement in the build instead of leaving it inside separate documents.

Turn states into production tasks

After the journey is approved, split identity, durable ownership, native billing, security, refunds, policy, localization, accessibility, and analytics into explicit work. The prototype should not be treated as proof that those systems exist.

Keep QA independent of the happy path

Have a tester interrupt confirmation, repeat an input, change screens during delivery, and reload at several points. Compare the result with the agreed item promise and reject duplicate grants or unexplained Koin changes.

Turn the review into an owned team decision

Schedule a short session with design, UI, engineering, and QA using the same playable link and item definition. Assign one person to operate while the others record disagreements about timing, wording, delivery, fairness, and recovery. End with an explicit decision for each disputed state and name the owner of every native implementation task. Update the prototype or source brief before tickets spread outdated assumptions. QA should then write independent scenarios from the agreed player promise, including interruption and duplicate input. This creates a shared reference without mistaking the browser build for a backend, billing integration, revenue forecast, or release approval.

Audit the cosmetic from preview to ownership

Place the visual on the actual character, vehicle, card, room, trail, or game object and compare it with the thumbnail at normal play scale. Check front, back, motion, color contrast, overlapping equipment, and any platform-specific crop. State that it is visual only when no statistic, rule, or outcome changes. Confirm the exact piece or bundle, then replace buy with owned or equip and file it under an obvious collection category. Switch to another cosmetic, reopen the game, and select it again without another deduction. Also inspect multiplayer, streaming, and accessibility contexts so the design does not hide hazards, impersonate earned rarity, expose private information, or suggest competitive power that the item never provides.

Preview it during play

Show the cosmetic on the character, vehicle, card, or game space where players will actually see it. A thumbnail alone can hide scale, color, or animation differences.

Make ownership obvious

After the player buys it, change the action from buy to owned or equip. Keep the cosmetic in the relevant collection after reload so players know where to use it.

Protect competitive clarity

Describe the item as visual only when it changes no stats or outcomes. Avoid rarity language that suggests an advantage the cosmetic does not provide.

Build it in five steps

  1. 1. Finish the horror loop

    Make the main activity playable before adding the cosmetic collection. Players need context to judge whether the item is useful.

    Result: A working horror foundation

  2. 2. Write one item definition

    A cosmetic collection preview with a concrete description and direct Koin price. Keep the same wording in the preview, confirmation, and delivered state.

    Result: A consistent player promise

  3. 3. Generate the purchase choice

    Show the exact Koin amount, current Koin balance, confirm, cancel, and what ownership means. Design chooses the offer moment, UI makes every state distinct, and QA tests transitions and recovery. Use the playable prototype during the team review.

    Result: An understandable decision

  4. 4. Deliver and recover

    Test preview, confirm, insufficient balance, success, equip the owned cosmetic and keep it visible in inventory, and reload. Then test not enough Koin, cancellation, repeated input, interruption, and reload.

    Result: A visible, stable result

  5. 5. Test as a indie studio

    Write test cases for not enough Koin, a player cancellation, delayed delivery, repeated input, and reload. Create production tickets only after the player journey is agreed.

    Result: Indie studio plan

Generate it in SEELE

Prompt 1

Create a browser-playable horror game prototype for a small indie studio. Build the core loop around tension, atmosphere, and non-paywalled narrative access. Add one optional cosmetic collection offer containing a three-item style set with preview, Koin price, confirmation, and equip state. Price it directly in Koin, require an explicit confirmation, show the balance effect, and equip the owned cosmetic and keep it visible in inventory. Do not add subscriptions, external payment checkout, revenue reporting, or guaranteed earnings. Include insufficient-Koin, cancel, success, and reload states.

Prompt 2

Keep the item optional. Show its full price in Koin, Koin balance now, confirm, cancel, low-balance, success, visible delivery, and reload states.

Indie Studio playtest checklist

Before you publish

Frequently asked questions

What should this horror offer contain?

A cosmetic collection preview with a concrete description and direct Koin price. Start with one item and one price.

Is this a subscription?

No. The player spends Koin directly on one named item or unlock.

What happens if the player cancels?

Return to the same game state without spending Koin or delivering the item.

What if the Koin balance is too low?

Explain the shortage, preserve progress, and do not deliver the item.

Does this include payment or revenue reports?

No. It covers the player-facing purchase experience, not financial reporting.

Is the prototype ready for a native store?

No. The browser prototype still needs native billing, persistence, security, refunds, and platform approval.

Build this horror purchase flow

Open the complete prompt in SEELE, adjust the item and Koin price, then generate a playable version you can test.

Open this prompt in Workspace