Skip to content
Godot · Monetization

Godot monetization

Godot monetization from start to finish. Premium or free-to-play, in-app purchases, coins, season passes, rewarded ads, web checkout and store rules.

Updated

Godot monetization is everything between "my game is fun" and "my game pays for itself": how players pay, what they pay for, and how you keep it fair. The engine stays out of it on purpose. Godot is MIT-licensed, takes no royalties and ships no store, ad or currency system, so every Godot game that earns money adds those pieces itself. This page walks through each piece, what it takes to build, and where PowerUp fits if you'd rather not build it all yourself.

Start with the business model

Pick the model before you pick plugins. It decides almost everything below.

  • Premium. Players pay once, usually on Steam, itch.io or a console store, and that store takes the payment. You may need nothing on this page beyond the store's own tools. PowerUp doesn't sell through Steam today, so it isn't the right fit for a premium PC game.
  • Free-to-play with purchases. The game is free and earns from items, coins, passes or subscriptions. That needs a catalog, a shop, platform billing and somewhere trustworthy to keep balances.
  • Ads. Rewarded ads, interstitials and banners, on their own or next to purchases. Common for web and casual mobile games.
  • Hybrid. Where most free-to-play games end up: purchases for players who want them, rewarded ads for the rest, and a No Ads option.

If you ship to the web (itch.io, your own site, a game portal) as well as to phones, plan for that early. Phones pay through the App Store and Google Play, while web builds and desktop builds you sell yourself need a card checkout such as Stripe. Ideally one wallet sits behind all of them, so a player's coins and items are the same wherever they bought them.

The pieces of a free-to-play Godot game

In-app purchases on iOS and Android

As of October 2026, Godot's documentation covers a first-party Google Play Billing plugin for Godot 4.2 and later. For iOS, the Godot project's iOS plugins repository includes an in-app store plugin you build from source, and the Asset Library lists community StoreKit plugins. A plugin gets you the store's payment sheet. It can't tell you whether a purchase is real: for that, a server checks the receipt with Apple or Google before anything is granted, and listens afterwards for refunds and renewals.

Start with in-app purchases for Godot, then follow the iOS and Android guide and server-side receipt validation.

Coins and an in-game shop

A virtual currency is easy to add and easy to get wrong. A balance saved on the device can be edited. A balance on a server still needs a full history behind it, so a refund can take back exactly what a purchase gave and your support team can see what happened. Watch the maths too: bundles that leave players with a few coins they can never spend frustrate players. In Europe, the network of national consumer authorities and the European Commission published key principles on in-game virtual currencies on 21 March 2025, starting with clear and transparent pricing. Our page on EU rules for in-game currencies goes through them.

Read virtual currency and an in-game shop, then build an in-game shop in Godot.

Season passes

A season pass sells progress through a ladder of reward tiers, with a free track and a premium one, for a limited time. The hard parts are counting progress honestly from real matches and deciding what happens to rewards nobody claimed when the season ends. See season passes and make a battle pass in Godot.

Rewarded ads

AdMob is a common choice on phones, and Google's H5 Games Ads on the web. The game saying "the ad finished" isn't proof, so rewards should be confirmed on a server and capped per day. Pacing matters just as much: an interstitial before the first match is a good way to lose a new player. Read rewarded ads for Godot and the guide to rewarded ads checked on the server.

Web checkout

Web builds, and desktop builds sold outside a store, can't use the App Store or Google Play, so they need their own checkout, and Stripe Checkout is the common choice. On phones, the rules about sending players to a web purchase have loosened in places. As of October 2026, Apple's App Review Guidelines let apps on the United States storefront include buttons and links to other ways to pay, and Google Play's payments policy has programs for alternative billing and links to outside offers in eligible countries.

Web checkout for Godot explains the options, Stripe checkout in a Godot game walks through the code, and web checkout for mobile games covers the store rules. To see what it could be worth, try the web checkout fee calculator.

LiveOps and remote config

Free-to-play games earn over months, not on launch day. That means events, quests, news and sales that change without a new build going through review. It also means prices and rules served from a server, a way to check a change before players see it, and a way to roll it back. Read LiveOps for Godot and remote config.

Store rules and player trust

Both stores want their own billing for digital goods sold inside a phone app. As of October 2026, Apple's guideline 3.1.1 names in-game currencies and game levels among the things that must use in-app purchase, and Google Play's payments policy requires Play billing for items such as virtual currencies, unless one of its exceptions or programs applies. Both require a game that sells randomized items, such as loot boxes, to show the odds before the purchase.

Beyond the stores, regulators are paying closer attention to in-game currencies, randomized rewards and younger players. Our store rules section covers loot box odds disclosure, EU rules for in-game currencies and the new app store age laws, each with links to the rule itself. 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.

Build it yourself or use a service

Every piece above can be built. Together they come to a fair amount of backend work:

  • receipt checks for two app stores, plus refunds, renewals and restores
  • webhook endpoints that check signatures and ignore repeated messages, so nothing is granted twice
  • a coin ledger with a history behind every balance
  • a config server with versions, a review step and rollback
  • server-side checks for ad rewards, with daily caps
  • an age question and spending limits for younger players, with purchases for under-13s locked until you record a parent's consent

General game backends cover other ground, such as accounts, cloud saves and leaderboards. Godot backends compared looks at the options side by side.

Where PowerUp fits

PowerUp is a monetization engine for indie games, built for Godot first. One addon, addons/powerup/, adds a PowerUp autoload with 70 methods and 16 signals, all plain GDScript. The console runs your catalog, coins, passes, quests, events and ads, with three checkouts built in: Stripe on web and desktop, the App Store and Google Play. Every change waits in a draft until it passes 48 automated publish checks (49 with Stripe Managed Payments).

func _ready() -> void:
    PowerUp.initialize("YOUR_PUBLISHABLE_KEY", save.client_id, {"baseUrl": API_URL})
    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:
        for offer in store.storefront.offers:
            var button := PowerUpOfferButton.new()
            button.configure(offer)   # it won't enable a card that's missing its price
            button.offer_pressed.connect(_on_offer_pressed)   # your purchase flow
            %OfferGrid.add_child(button)

We built it for our own game, buggs.io, which runs its store, coin wallet, item collection and online progress on PowerUp today. The SDK isn't public yet: studios get the addon and their keys with early access. See pricing, or read getting started to see what setup looks like. The feature pages below go deeper on each piece.

Questions

Does Godot have built-in in-app purchases?

Not in the engine itself, but there are official plugins. Godot's documentation covers a first-party Google Play Billing plugin for Android, and the Godot project's iOS plugins repository includes an in-app store plugin you build from source. Community StoreKit plugins are in the Asset Library too. Whichever you use, check each purchase on a server before you grant anything.

Do I owe Godot royalties if my game makes money?

No. Godot is free and open source under the MIT license, which charges nothing and lets you license your own game however you like. It does ask you to include Godot's copyright notice and license text, and the Godot team says a link to its license page in your game's credits or documentation is enough.

Do I need a server to monetize a Godot game?

Once players pay real money, you should have one. Receipts need checking with Apple and Google, refunds and renewals arrive later from the stores, and a coin balance saved on the device can be edited. You can build that server yourself or use a hosted one such as PowerUp.

Can I mix ads and in-app purchases in one game?

Yes, and most free-to-play games do. A common setup is rewarded ads players choose to watch, a few interstitials between matches, and a No Ads purchase that turns off the interrupting ones while rewarded ads stay available.

See it running on a real game.

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