The monetization engine for indie Godot games.
Your store, coins, season passes, quests and rewarded ads, run from one Godot addon and one console. Checkout through Stripe, the App Store and Google Play is built in, and we check every change against store rules before your players see it.

Everything between the play button and the payout.
PowerUp is the part of your game that sells things, rewards players and gives them a reason to come back. We run it, you set it up in the console, and you don’t need a new build to change a price.
One console. Every revenue layer.
These are real screenshots of the console running buggs.io’s setup in the sandbox. You can edit everything you see here, and nothing reaches players until you hit publish.
What’s live, what’s still a draft, and the ad networks you buy players on.

Every part of your economy on one screen, marked live or draft.
Sandbox data. Revenue numbers in the console are estimates until real players show up.
See the rest of it in a demoSell what your game already has, everywhere it runs.
Set up a product once and sell it on the web, iOS, Android and desktop. The catalog keeps your game’s own ids, so you don’t have to bend your game to fit us.

Store card preview. What the offer will look like in the game, next to the checks it has to pass.
Set it up once
Bundles, packs, single items, passes and subscriptions. One product sells on web, iOS, Android and desktop, with trials and purchase limits if you want them.
Your items, your rules
Unlock an item for free, with XP, with coins or as a reward. Already have a catalog file in your game? Import it and check the diff before anything changes.
Old builds stay safe
Items only show up in the game versions that can use them, so players on an older build never get sold something they can’t see.
Coins you can trust
Every coin a player earns, buys or spends is written down. Refunds take back exactly what a purchase gave, even if the player already spent it.
No stuck coins
We work out which bundles leave players with a few coins they can never spend, and suggest a price that fixes it.
Season passes
Starter and seasonal passes with free and premium tracks. Free rewards are claimed for the player or show when they expire, so nobody loses one by surprise.
Subscriptions people keep
No Ads, a premium pass track, weekly coins, bonus coins per match and more. Renewal terms and a way to cancel always sit on the card.
Free offers and boosts
Free coins every few hours, plus in-match boosts players can pay for with coins or by watching an ad. Kept out of ranked matches by default.
Three checkouts. One wallet.
Web and desktop players pay with Stripe. Phone players buy through the App Store or Google Play, and we check the receipt before giving them anything. Either way, the coins and items land in the same wallet.
- 01StripeWeb · desktopHosted checkout and a subscription portal
- 02App StoreiOSStoreKit 2, with every receipt checked on our servers
- 03Google PlayAndroidPlay Billing, with purchases acknowledged for you
Already selling through Xsolla, Paddle, Lemon Squeezy or RevenueCat? We have early connectors that record those purchases too. Ask us about them on a demo.
Tax handled for you
Switch on Stripe Managed Payments and Stripe becomes the merchant of record, handling sales tax and VAT in 80+ countries.
Nothing gets granted twice
We check each store’s signature before we touch a wallet, and a repeated message from a store can’t pay out again.
Refunds and restores
Restore purchases on a new phone, cancel from the store or Stripe, and refunds that take back what the purchase gave.
Your accounts, your money
You sell through your own Stripe, Apple and Google accounts. Your keys are encrypted, and the console only ever shows the last few characters.
Web checkout calculator
ESTIMATE$14,000
$15,500
$18,000
This is an estimate from your numbers, before our fee. Store rules on web purchases vary by platform and country, so only offer web checkout where they allow it.

LiveOps calendar. Events on a month view. Click one to change it.
Give players a reason to come back tomorrow.
Events, quests, match rewards, a news inbox and clubs. You set them up in the console and the game gets all of it in one call. Rewards come from real matches your server reports, so players have to actually play for them.
Events on a calendar
Run events open to everyone or only to subscribers or buyers, give them reward levels, and let players replay them for a while after.
Quests that count real play
Starter, daily, weekly, event and season quests, counted from actual matches: kills, playtime, placements and more.
Match rewards
Decide how many coins a match pays and cap it per match and per day. There’s a calculator so you can try the numbers first.
Progress nobody can buy
XP and records only come from matches your game server reports, so a player can’t pay or cheat their way up.
An in-game inbox
Patch notes, announcements and gifts, aimed at everyone or just your subscribers, with buttons that open the right screen.
Clubs and tournaments
Players form clubs and compete in a weekly tournament. Names are screened and rewards go out on their own every Monday.
Make money from ads, and know what players cost.
Rewarded ads players choose to watch and interstitials that don’t drive them away. And on the other side, what you spent on ads to get each new player, in the same console.

Ads. Ad placements for each platform, with their rewards, pacing and age gate.
The usual formats
Rewarded, interstitial and banner ads through AdMob on phones and H5 Games Ads on the web.
Rewards checked on the server
We confirm the ad was really watched before the reward lands, and cap how many a player can claim in a day.
Paced so players stay
Interstitials wait until after the first match and keep a gap between them. You pick the limits.
A fair No Ads
No Ads turns off the ads that interrupt. Players can still watch rewarded ads when they want the reward.
Kid-safe by default
Teens get non-personalized ads and kids get child-directed ones. If we don’t know a player’s age, they see no ads.
Suggestions from your setup
The console looks at your prices and offers and points out what’s probably costing you money, in the order we’d fix it.
Ad spend in one place
Daily spend from Meta, Google Ads, TikTok and Apple Ads, next to how many players and payers it brought in.
Conversions that respect privacy
Sign-ups and first purchases go back to the ad networks, except for players in Europe, players under 18 and anyone who opted out.
Know where players came from
Campaign tags, ad click ids and install referrers are saved with each new player.
Test ideas properly
Write down what you’re testing and what would make you stop before you change a price. Results live next to the change.
Ship store changes without the 2 a.m. rollback.
Changes wait in a draft. When you publish, we check them against app store policy and consumer protection rules for prices, coin bundles, subscriptions, ads and younger players. If something fails, it doesn’t go live, and the console tells you which rule it broke.
48automated checks
- Prices and offers10
- Game versions9
- Ads6
- Season passes5
- Operations5
- Younger players4
- Quests and events3
- Random rewards and direct purchase2
- Fair play2
- Clubs and news2
Plus one more when Stripe Managed Payments is on.

Guards & preflight. The checks run on your real setup and say which rule each one comes from.
Draft first, then publish
Changes wait in a draft until you publish. Each release gets a version number, a list of what changed, and a rollback button.
Prices players can trust
Coin prices show their real-money price too, “best value” badges have to be true, and countdowns need a real end date.
Looking after younger players
A neutral age question, parental consent for under-13s, monthly spending limits for kids and teens, and no paid loot boxes.
Store rules, checked
Store product ids get checked before you publish, and test ads can’t slip into a production release.
A support view
Find any player and see their coins, items, passes and purchases. Fix a problem with a coin adjustment or an item grant, and it’s all logged.
Accounts without email
Players move to a new device with a short code. No email or personal details needed, and deleting an account takes one call.

Releases. Your published versions, what changed between them, and a preview of the next one.

Players & support. A test player’s wallet and the support tools next to it.
PowerUp checks your setup against the rules built into it. That isn’t legal advice, and your game’s compliance is still up to you.
Up and running in an afternoon. Made for Godot.
More and more indie games are made in Godot, and most monetization tools still treat it as an afterthought. Ours is plain GDScript. It’s one folder and one autoload, with nothing native to compile.
Add the addon
Copy one folder into your project and switch on PowerUp Monetization. It’s plain GDScript.
Paste your key
With a sandbox key and the built-in test data, a store shows up before you’ve set anything else up.
Load the store
One call gets the storefront. The offer button won’t sell a card that’s missing its price.
Publish
Set things up in the console and publish. The game picks up the new version on its next request.
# shop.gd: talking to PowerUp from your game
func _ready() -> void:
PowerUp.initialize("YOUR_PUBLISHABLE_KEY", save.client_id, {
"baseUrl": API_URL, "client": "mygame/1.0.0",
})
PowerUp.player_token_issued.connect(func(token: String) -> void: save.token = token)
if save.token != "":
PowerUp.set_player_token(save.token)
else:
await PowerUp.register_player(save.client_id, save.display_name)
var store: Dictionary = await PowerUp.fetch_storefront()
if store.ok:
%Shop.show(store.storefront.offers) # your UI, or the bundled storefront node
# Web and desktop use Stripe Checkout. Phones: create_purchase_intent(),
# the store sheet, then submit_receipt().
var _checkout: Dictionary = {}
func _on_product_sheet_opened(sku_key: String) -> void:
_checkout = await PowerUp.start_checkout(sku_key) # create it while the sheet opens
func _on_pay_pressed() -> void:
# Open it right away. After an await, the browser would block the popup.
if _checkout.get("ok", false) and not PowerUp.open_checkout(_checkout.checkout):
%ContinueInThisTab.show() # its button: start a "redirect" checkout (see the Stripe guide)
func _on_watch_for_coins() -> void:
var ad: Dictionary = await PowerUp.create_ad_session("free_coins")
if not ad.ok:
return # cooldown, daily cap or age gate; ad.code says which
# ...show the rewarded ad with your ad plugin, then:
await PowerUp.complete_ad_session(ad.session.sessionId, "admob", true)
PowerUp Monetization
Godot 4.x addon · v0.2.0
- Godot 4, plain GDScript. Nothing native to compile, nothing in the engine patched.
- 70 methods and 16 signals on one PowerUp autoload.
- A ready-made storefront node and an offer button that draws prices and terms correctly.
- Recorded test data and a fake transport, so you can test without a network.
- Sandbox and production keys, plus draft previews.
- Safe retries on every purchase and reward.
- Signed match tickets your game server can check on its own.
Not on Godot? We’re coming to your engine.
We started with Godot because it’s what we make buggs.io in. The engine behind PowerUp doesn’t care what your game is built with, and any engine can use the REST API today. Native SDKs for these are next.
Godot 4
The full SDK, today
Any engine
Through the REST API, today
Unity
C# SDK
Unreal Engine
C++ and Blueprints
GameMaker
GML extension
Defold
Lua extension
Cocos Creator
TypeScript SDK
Phaser & web games
JavaScript SDK
Which one ships first depends on who asks, so tell us what you’re building.
We built it for our own game. It still runs on it.
buggs.io is our multiplayer .io game. You play a bug that grows as it eats, and you try to cut the other bugs off. It has 33 bugs, 18 power-ups, weather that shakes up the arena, and bots that keep every room full.
- The in-game store and coin wallet, set up and published from the console
- Over 250 bugs, power-ups, skins and trails, each with its own way to unlock it
- Version targeting, so older versions of the game never see items they can’t show
- XP and match rewards that only come from real online matches
- Accounts that move between devices with a code instead of an email
Already built into the game and waiting for us to switch them on in the console: Stripe, Google Play and App Store checkout, paid boosts, the season pass, quests, events, news, clubs and rewarded ads.
- Nothing you pay for is random.
- Power-up charges, cooldowns and loadout slots are never for sale.
- Every power-up can be earned with XP.
- Offline matches don’t earn anything, so nobody can farm progress.
- We ask your age before any purchase or ad. No age, no ads.
- If PowerUp is ever down, you can still play.
- Webbuggs.io/play, on desktop and phone
- Google PlayAndroid
- itch.ioA listing that opens the browser version
- iPhoneComing soon
Godot 4.7 client · Node game server · PowerUp





Disclosure. buggs.io is made by Power Up Gaming, the same team that makes PowerUp. We built the engine for our own game first, and buggs.io still runs on the version you’d get.
Everything in the box.
Here’s the short version. Every plan gets all of it, and the console is easier to show than to list.
Catalog & storefront
- Items, bundles, passes and subscriptions
- One product on every platform
- Import the catalog you already have
Currency & wallet
- Hard and soft currencies
- A full history behind every balance
- Price ladders without stuck coins
Passes & subscriptions
- Starter and seasonal passes
- Free and premium tracks
- Subscriptions with real perks
Quests, events & progression
- Daily, weekly and event quests
- A LiveOps calendar
- Rewards from real matches
Ads
- Rewarded, interstitial and banner
- Rewards confirmed on the server
- Sensible pacing and age rules
Players & support
- Look up any player
- Fix things with logged adjustments
- Device transfer without email
Insights & growth
- Suggestions from your setup
- Ad spend and cost per player
- Where players came from
Player protection
- Real prices next to coin prices
- Limits and consent for kids
- A record of what players saw
Security
- Encrypted keys
- Signed tokens your server can check
- Separate sandbox and production
Want to see all of it?
Book a demo and we’ll take you through the whole console, set up with a real game, and talk through how it would fit yours.
Free until your game makes money.
Prices are on the page. No per-install fees, no per-seat licences, and we won’t change the deal you signed up on.
Indie
Everything in the engine, for your first game.
$0
until you earn $1,000 a month through PowerUp
- Every feature
- Sandbox and production
- The Godot SDK and the API
- Stripe, App Store and Google Play
- Community support
Studio
MOST STUDIOSFor games making real money, with a team behind them.
3%
of revenue through PowerUp. The same on web, App Store and Google Play.
- Everything in Indie
- More than one game
- Priority support
- Help moving your catalog over
Enterprise
For publishers with several games.
Custom
a lower rate as your revenue grows
- Everything in Studio
- Your own dedicated instance
- A launch review before big updates
- Security review and a data processing agreement
- Custom data retention
- Annual contracts and invoicing
You keep your own Stripe, Apple and Google accounts, and they charge their usual fees. Our 3% is separate, and it’s the same wherever the sale happens.
Questions studios ask first.
Let’s look at your game.
Book a demo and we’ll show you the console with a real game in it. If it’s a fit, we’ll set you up with sandbox keys and a console of your own.
hello@powerupgaming.dev

