Skip to main content
Flock’s economy has three pieces:
  • Shops — collections of purchasable items.
  • Shop items — individual offers with a price and currency.
  • Inventory — a record of what each player has purchased.
Scope: shops and items are defined per game version; inventory is per player.
A purchase debits the player’s wallet and records an inventory entry:
Every purchase creates its own entry, so buying the same item twice gives you two. Each entry carries a server-set status (unused, used, or revoked after a refund) and used_at. Using an item, which the SDKs call consuming it, marks its entry used. A purchase is never charged twice, and never queued offline. Inventory is always fetched fresh; the catalog is cached and served offline, so treat a displayed price as advisory until the purchase succeeds. Items can also cost real money, paid through the App Store or Google Play on a phone: see In-App Purchases. On Windows, macOS, Linux and WebGL they are paid through a web checkout: see Web Payments.

The id a purchase takes

A purchase names a shop item by its id: the id of the item inside its shop. It is not the item’s name, and it is not the shop’s id. Read it from the shop rather than typing it in: the SDK lists the shops of the Game Version your build runs, each with its items. Unreal’s generated shop items carry the id already. A shop belongs to one Game Version, so a shop made under another version is not listed and cannot be found by name. If the list comes back empty, check the dashboard shows the shop under the Game Version your build runs.
A wallet is made when the player registers. The server builds each player’s wallet from the Game Version’s currency template at registration, with every currency starting at zero. Create the currency template before your test player registers; a player who registered before it existed has no wallet to pay from. A player whose wallet was made under another Game Version keeps it: at sign-in the server moves it to this version’s currency template, balances kept and new currencies at zero. See Currencies and Wallets.
When a call fails, the SDK’s text says what is wrong and how to fix it. A purchase given the item’s name instead of its id reads:
A request.not_found 404 whose reason is a bare Not Found means the request reached no route at all (any other reason names a record the route did not find): the API URL must be the Flock server’s address alone, with no /v1 or other path after it.
Purchases grant their contents server-side. Give a shop item a type of Currency pack or Consumable and attach rewards to it, and the server credits the player as part of the same transaction that debits the price. Neither half can happen without the other, and the client never decides what was granted — so a modified client cannot award itself anything, and a dropped connection cannot leave a player charged with nothing to show for it.A Standard item is the older behaviour and still the default: it debits the price and records an inventory entry your game interprets however it likes. The wallet sells a standard item again on every purchase, so before offering one, check the player does not hold it already. (A store sells it only once: see In-App Purchases.)
An item is priced in a currency, so first create the currency config of this Game Version (see Currencies and Wallets). Without one, the shop’s items say Add a currency config to enable item creation, with Go to Currencies.
  1. In the menu at the top of the page, choose your game and the Game Version your build runs. A shop belongs to that one version.
  2. Open Monetization → Shops. Under Your Shops, press New.
  3. Type the Shop Name, leave Status at Active, and press Create Shop. Success: the page says Shop created. Add your first item. and the shop is listed under Your Shops.
  4. With the shop selected, open its Items tab and press Add Item.
  5. In New Item, fill in:
    • Item Name, and Status (Active to sell it).
    • Item type, which decides what the player gets:
      • Standard adds an entry to the player’s inventory and grants nothing more; your game decides what it means. A wallet sells it again on every purchase.
      • Currency pack pays its rewards straight into the player’s wallet when bought, with no inventory entry.
      • Consumable sits unused in the player’s inventory and pays its rewards when your game consumes it.
    • Price and Currency. In a game currency the price is a whole number, such as 50. In a real currency, type it as the player sees it, such as 4.99: the server keeps it in the currency’s smallest unit, so the SDK reads 499.
    • Store product IDs (App Store, Google Play): only for an item sold inside a mobile app (see In-App Purchases).
    • Rewards, for a currency pack or a consumable: press Add reward, pick a currency other than the price’s, and enter a whole Amount above zero. A pack needs a second currency in the currency config.
  6. Press Add Item. Success: the item shows in Shop Items with its price and currency, its rewards, and Real money when a real currency prices it.
Preview as player shows the shop as a player sees it. A version deployed to Production is locked: its shops and items are read-only there and change only through a patch.
The Shops page with two shops under Your Shops and the selected shop's items

Monetization → Shops: a shop's Items tab, with Add Item.

See Currencies and Wallets for the balances that back purchases.