Skip to content
Store rules · Publish checks

Store rules, checked before you ship

Game monetization compliance for indie studios. PowerUp runs 48 checks on your real setup before a change ships, and each names the rule behind it.

Updated

Game monetization compliance is mostly a list of small promises. The price is on the card. The countdown is real. The "best value" badge is true. Kids can't spend without limits. Each one is easy to break with a single config change, and you usually find out from a player, a store reviewer or a regulator. PowerUp checks them for you: every change in the console waits in a draft, and publishing runs 48 automated checks against your real setup first (49 when Stripe Managed Payments is on). If one fails, nothing ships.

How the publish gate works

  • It reads your setup, not a questionnaire. The checks run on the exact prices, bundles, passes, ads and age settings you're about to publish.
  • Fail blocks, warn doesn't. A failure stops the publish until you fix it, with no override. A warning shows in the report so you can decide.
  • Each check names its source. Every result says where its rule comes from: a law, a case, a store rule, or PowerUp's own policy where no outside rule applies. You can read the rule yourself.
  • Rollbacks are checked too. Going back to an older version runs the gate again before it goes live.
  • The game follows the same rules. The Godot SDK won't turn a card without a price into a buy button, draws a countdown only from a server end time, and shows a value badge only when the server checked it. See remote config for drafts, versions and rollback.

What the checks protect

GroupChecksWhat it protectsWhat the checks cite
Prices and offers10Prices on every card, subscription terms and a way to cancel, honest value badges, real-money rates for coins, real countdowns, a cheapest coin bundle that can buy something, free offers that give something, one featured offer at a time, a cap on attention badgesFTC Act section 5, FTC v. JustAnswer, FTC v. HoYoverse, the FTC's pricing guides, ROSCA, California AB 2863, Colorado SB25-145, Apple guideline 3.1.2
Game versions and items9Items players own stay usable, money never buys what's free or earned with XP, every locked item can be obtained, version rules that workFTC Act section 5, your terms on owned items, internal policy
Ads6No Ads sold only where there are ads to remove, ad frequency floors, test ads kept out of production, AdMob rewards verified on the server, ad networks that can serveFTC Act section 5, Google Play Families, Apple guideline 1.3, AdMob and AdSense policies
Season passes5Rewards that claim themselves or show their deadline when earned, seasons that don't overlap, a visible price for premium, real rewards, honest last-chance promptsFTC Act section 5, FTC v. JustAnswer, ROSCA, age-appropriate design codes
Operations5Store product ids, a valid time zone, healthy integrations, a reviewed production launch, a warning when an experiment you've logged breaks its guardrailApp Store Connect and Google Play Console rules, operational, internal policy
Younger players4An age question before purchases and ads, parental consent and spending limits, no rewards for notification consent, no time-played quests for minorsCOPPA, GDPR's rules for children, Google Play Families, age-appropriate design codes, Apple and Google developer terms
Quests and events3Paid event access says so on the button, quests and event ladders count real progress toward real rewardsFTC Act section 5, Apple guideline 3.1.1, internal policy
Random rewards and direct purchase2No randomized paid content, and a direct real-money option if there ever wereFTC v. HoYoverse, New York v. Valve
Fair play2Paid boosts kept out of ranked and away from minors, sensible daily caps on match rewardsInternal policy
Clubs and news2Tournament prizes and news gifts that exist, links that are secureConsumer protection

The citations lean American: the FTC, the federal subscription law ROSCA, a few state laws and COPPA, plus Apple's and Google's store rules. The only European reference is GDPR's rules for children, on the check that ads wait for the age question. No check cites the EU consumer authorities' principles on in-game currencies, though two of them enforce what those principles ask for. The pages below say exactly where the gate's coverage stops.

PowerUp Console · sandbox
The PowerUp console's Guards and preflight page: publish gate open, 47 of 48 checks passing, one warning, and the first checks with their pass status and the rule each cites.
buggs.io's demo setup in the sandbox: each check, its result on the live config, and the rule it cites.

The rules in more detail

Each page below takes one area of law or store policy: what the rule says, with a link to the source and its status as of October 2026, what it means for an indie game in practice, and what PowerUp checks or leaves to you. For the player side of age and consent, see player accounts.

Questions

Can I publish if a check fails?

No. A failing check blocks the publish and there's no override. Warnings show up in the report but don't block. Rolling back to an older version runs the checks again too, so an old setup can't sneak past rules it would now break.

Do the checks cover EU rules?

Partly. The checks cite US law and Apple's and Google's rules, plus one reference to GDPR's rules for children. Two checks enforce what the EU consumer authorities ask of in-game currencies, but they don't cite those principles.

Does passing every check mean my game is compliant?

No. The checks cover what PowerUp can see in your setup, not your terms, your marketing or code in your game that PowerUp doesn't run. They aren't legal advice, and your game's compliance is still up to you.

Why is there a 49th check with Stripe Managed Payments?

With Managed Payments, Stripe is the merchant of record and only sells prices set up in Stripe. The extra check makes sure every web and desktop offer has one, so the store never shows something checkout would refuse.

See it running on a real game.

We’ll walk you through the console with buggs.io’s setup.