All projects
Blackout Store

The game's
universe
starts here.

Currency, items and perks connected to GTA RP: paid on the site, delivered to the character, with no one in between.

2026Full developmentCommerce platform
Next.js 16React 19TypeScriptPrismaMySQLFiveM

What it is

From checkout to the inventory.

Cash buys currency, currency buys the item, and the item waits in the site inventory until the player asks, then it lands on the character, inside the server. Whatever is left over goes back to the market.

  1. 01Cash buys currency
  2. 02Currency buys the item
  3. 03The item lands on the server
  4. 04And returns to the market

Scale

The numbers come from the code, not the showcase.

Everything below was counted in the real product's files during a code audit in August 2026. None of it is an estimate.

207,371

lines of code

  • TypeScript
  • Lua
  • SQL
  • JS

207,371 lines of code

Two products, not one: 143,782 lines in the web panel and 63,589 in the resource that runs inside the game, across 1,068 files.

175

API routes

  • 98 for the panel

175 API routes

98 of them exist only for the operations panel. More than half of the API is the back office, not the storefront.

54

data models

  • Prisma
  • MySQL

54 data models

Catalogue, orders, inventory, currency and audit: the database holds the whole operation, not just the cart.

41

screens in the operator panel

  • Orders
  • Catalogue
  • BCoin
  • Reports

41 screens in the operator panel

The server owner changes prices, builds kits, grants VIP and tracks delivery without opening a line of code.

5

frameworks on one bridge

  • vRP
  • ESX
  • QBCore
  • QBox
  • standalone

5 frameworks on one bridge

The resource detects which of the five the server runs and adapts on its own. The only requirement is oxmysql.

Why it's a system

Six decisions separate a store from a system.

None of them is a layout choice. These are six decisions read straight from the product's code, and they are what explain why this is a system and not a themed checkout.

  1. Order and delivery

    Paid≠Delivered

    7 order states × 5 delivery states, in two separate machines, because in practice they fail separately.

    panel › orders
  2. Command

    What≠How

    The item declares give_vehicle; it doesn't know the server's syntax. The template turns it into addcar {playerId} {model}, and each template counts its own uses.

    panel › commands
  3. Queue

    Fire and forget≠Durable queue

    Every command is stored with a time, a status and an attempt counter. If the server fails, the attempt is counted and the error kept, the command waits; it isn't lost.

    command queue
  4. Balance

    Two copies≠One source

    The site talks to two databases, its own and the game server's, and the BCoin balance is written in a single place: straight into the game database, the source of truth.

    site database + game database
  5. Payment

    Holding a credential≠Exposing the method

    Technical credentials in one tab, commercial activation in another. PIX, card, boleto and PayPal, through three providers: Mercado Pago, AbacatePay and PayPal.

    settings › payments
  6. Deletion

    Delete≠Be able to recover

    Soft delete across 14 domains, with a deletion date and an expiry window. Central recovery, not destruction.

    panel › trash
Phone buying BCoin, monitor showing the vehicle store, and the car delivered to the character in front of Los Santos Roleplay.

From checkout to your character.

Every purchase becomes a command on the game server.

  1. Add BCoin

    Buy BCoin at our secure checkout, simply and quickly.Under the hood: the payment provider's notice is verified, and the BCoin balance lands straight in the game's database.

  2. Choose your items

    Use your BCoin to get vehicles, clothing, properties and much more at the Blackout store.Under the hood: the item goes into the site's inventory and waits, the player asks for delivery whenever they want, one by one or in a batch.

  3. Receive in game

    Your items are delivered straight to your character through our integration with the server.Under the hood: the command enters the server's queue; if it fails, the attempt is counted and the admin can retry.

The panel in numbers

Every part of the operation has its own tool.

From reports to Discord alerts: what the server owner uses every day, counted on the product's screens.

Reports14

14 Analytics tabs

Finance, orders, deliveries, players, VIP, guilds and more, exported to PDF with your choice of logo, colour and theme.

Log centre10

10 Filters on one log

Order, payment, delivery, error, user, kit, marketplace, admin, what the game sent and the player ID, with search and CSV export.

Contact centre6

6 Message labels

Support, quote, partnership, feedback, item price and other. Plus an alert when an item shows up on the site without a price.

Payments5

5 Payment methods

PIX on two providers, card, PayPal and boleto, each one switched on and off in the panel.

Discord6

6 Alert channels

One per event type: orders, approved payments, delivery errors, new accounts and admin actions, among others. The address is stored encrypted.

  1. 01Reports
  2. 02Log centre
  3. 03Contact centre
  4. 04Payments
  5. 05Discord
Monitor showing the store's reports panel, the contact centre and the newsletter editor.

Behind the store, a complete operation.

Orders, catalogue, BCoin, deliveries, reports and communication in a single panel.

  • Operations

    41 screens: orders, catalogue, VIP plans and kits.

  • Content

    Catalogue and a bin covering 14 record types.

  • Integrations

    5 integrations and 5 payment methods.

  • Reports

    14 analytics tabs and logs by player.

  • Automation

    Automatic expiry and 6 Discord channels.

In-game delivery

The site sells. The game server delivers.

Every purchase becomes a command in a queue. If the player is offline, the server goes down or the command is wrong, nothing is lost: the attempt is counted, the error is kept and the admin decides what to do.

  1. Paid
  2. Command
  3. Queue
  4. Server
  5. Character
  1. paidPayment confirmed by the provider's notice.
  2. commandaddcar {playerId} {model}
  3. validatedCommand checked before it runs on the server.
  4. queuePENDING · waiting for its execution time.
  5. serverAttempt 1 · failed · error kept.
  6. serverAttempt 2 · executed.
  7. characterItem in game · delivery e-mail sent.
An example item. The states, the queue and the actions are the ones in the code.

When it fails, the admin decides

  • RetryPuts the command back in the queue.
  • RevertUndoes a delivery already made.
  • ConfirmCloses a delivery checked in game.
  • ManualDelivered by the admin, outside the queue.
  • ForceRuns it now, without waiting for its time.
  • Validated commandChecked before it runs, it executes inside a game server.
  • Charged onceIf the provider's notice arrives twice, the purchase isn't processed twice.
  • An inventory that waitsThe item stays in the site inventory and goes to the game when the player asks for it, one at a time or in bulk.

Marketplace

A duplicate item doesn't sit idle in the inventory.

A player with a spare item chooses: sell it to the site right away at a guaranteed price, or list it for other players and wait for a better one. Liquidity or price, and the buyer gets the item inside the game.

Instant

Sell to the site

  • The site buys it back at a price calculated from its rarity.
  • Guaranteed price, lower value.
Marketplace screen with items on sale by players, prices in BC and each seller.
Live marketplace · demo data
Better price

List it for players

  • A suggested price by rarity keeps the listing in line.
  • Can be anonymous; depends on someone buying.
Listing price
400 BC
Site fee (5%)
20 BC
Seller receives
380 BC

5% is the code's default fee, and the server owner can change it.

  • Anonymous sellingThe seller lists an item without showing their name to the buyer.
  • Listings that expireEvery listing has an expiry date and comes down on its own.
  • Market protectionThe market has its own protection module, and the rarity-based suggested price keeps listings on the curve.
  • Delivered in gameThe buyer gets the item in their inventory and sends it to the character, like any store purchase.

The technologies

What it is made of, piece by piece

A whole GTA RP server store: the storefront, the cart, three ways to pay, in-game delivery and the owner's panel. Pick a piece to see what it does here and which file it is in.

24technologies, in 5 layers

Screen

Server

Data

Payment

Integrations

Inside the product

68 screens, along four paths.

From the storefront to the panel: the product's screens, split by who uses them, the player buying, the player with their kits, the operator running the store and the owner reading the data.

The store · Home
Home

Screen 1 of 15: Home

Prototype

You can go in and click around.

The navigable prototype runs with no backend: a service worker intercepts the real API's own URLs inside the browser and returns a fictional database in the shape the screens already expected. That's 3,154 lines of fake data, on a fixed seed, every visitor sees the same charts.

No login: the visitor arrives already authenticated.

Prototype ready
Open full screen

Fictional data, declared in the interface itself.