Blackout Casino

A night in Vegas.Inside your server.

An immersive experience with games, an integrated economy and the atmosphere of a real casino.

A whole casino inside GTA RP, games, economy and proof of every play.

Inside the gameFull suite or single gamePortuguese and English

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • Lua
  • FiveM NUI
  • SQL
Blackout Casino

A night in Vegas.Inside your server.

An immersive experience with games, an integrated economy and the atmosphere of a real casino.

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • Lua
  • FiveM NUI
  • SQL

A whole casino inside GTA RP, games, economy and proof of every play.

Inside the gameFull suite or single gamePortuguese and English

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • Lua
  • FiveM NUI
  • SQL

What it is

A luxury casino, inside GTA RP.

The panel opens over the city, the player picks a table, the server decides the round and the prize goes back to the balance, in the server's own currency, without leaving the game.

  1. 01The panel opens in-game
  2. 02The player picks a table
  3. 03The server decides the round
  4. 04The prize returns to the balance

Scale

Behind the luxury, real engineering.

Counted in the product's code: interface, server, game bridge and database.

130,305

lines of code

  • TypeScript
  • JavaScript
  • Lua
  • SQL
Interface
Next.js 16, React 19 and TypeScript: the lobby, the tables, verification and the admin panels.
Server
JavaScript: rules, balance, prizes and audit for every game, decided far from the player's screen.
Game bridge
Lua: opens the casino inside FiveM and talks to the server's framework.
Database
SQL: transactions, rounds, seeds and audit records, kept separate per game.

22

games in the catalogue

  • Casino
  • Arcade
  • PvP
  • Store
  • Events
Casino
Roulette, blackjack, poker, dice, Brazilian roulette, bingo and pool.
Arcade
Crash, slots, mines, plinko and the animal game.
PvP
Case battle, coinflip and jackpot.
Store and Events
Cases, upgrade, marketplace and inventory; lottery, daily bonus and giveaways.

Every game ships with a full identity: card, logo in Portuguese and English, gold version and opening video.

How the casino is delivered

The whole suite, or only the games the server wants.

Full suite

Every game, managed from one central panel.

  • One login for the whole administration
  • Settings and audit for every game in one place

Single game

Only the chosen games, each with its own panel.

  • Panel, login and audit log per game
  • Opening one panel gives no access to the others
  • A new game comes in without touching the rest
  • A video scene in every game

    Every game opens with its own scene: the machine lights up, the table comes into frame. The hall has the light and sound of a real casino.

  • Runs on the server's framework

    The Lua bridge recognises the server's framework and uses the right adapter. One package serves all of them.

    • vRP
    • ESX
    • QBCore
    • QBox

Provably fair

Nobody has to trust it. Anyone can check it.

Across the casino's games, every play carries proof that the result was locked before the bet, and that nobody touched it afterwards. It's maths, not a promise: the player checks it.

  1. Before the bet

    The server locks the result

    The server draws a secret seed and shows only its fingerprint, the SHA-256 hash. From then on it can't change: any swap would change the fingerprint.

  2. On the bet

    The player brings their own seed

    The player types their own seed, or keeps the one they got, and every play gets a sequence number, the nonce. The server doesn't decide alone.

  3. On the play

    Both seeds become the result

    The play's code comes from the HMAC-SHA256 of the server seed with the player seed and the nonce. That code is what the game reads as a card, a ball or a multiplier.

  4. On the seed swap

    The secret seed is revealed

    When the player swaps seeds, the server reveals the previous one. Its SHA-256 must be the fingerprint shown before, and with it the player redoes every play.

Receipt of a play

code = HMAC-SHA256(server seed, player seed + nonce)

…

Check it yourself

The maths runs here, in your browser. Make a few plays, swap the seed to reveal it, then change one character: the proof fails instantly.

Commitment · SHA-256 of the server seed…
Nonce#0
Plays with this seed

No plays yet.

The pool game's Provably Fair window, with commitment, player seed and nonce
Inside the product, in pool: the pre-game commitment, the player seed, the play number and the swap that reveals the seed. There's also a tab to verify old plays.
  • Proof in every playEvery verifiable play carries the commitment, both seeds and the nonce. The player checks the result alone, without asking anyone.
  • The same maths on both sidesThe game's browser and the server reach the same result, byte for byte, with cryptography built to run inside FiveM.
  • An audit that staysEvery revealed seed is archived in the database. Any old play can be redone and checked, at any time.

Multiplayer

It isn't a solo game. It's a full table.

The casino brings the server's players to the same table, and the table lives on the server. Every bet, every turn and every result goes through it: nobody plays a different match from the person next to them.

  • Rooms and tables

    Shared rooms and tables

    The player creates a room or joins one that's already open, picks the buy-in and waits for the others. The same lobby serves the casino's table games.

    • Create a room
    • Join an open one
    • Buy-in
  • Synchronised match

    Everyone sees the same play

    Each player's turn, the play and the result go through the server and reach the whole table the same way. In pool, the most demanding match, with its own physics, the server replays the shot to check the result.

    • The server decides
    • Turn by turn
    • Result checked
  • From solo to PvP

    Every game in the mode it needs

    Alone against the house, practice against the machine or a match against other players: the casino has all three, and each game uses what makes sense for it.

    • Solo
    • Against the machine
    • Player versus player

All in the server's currency, the server owner defines it.

Why it is a system

Six decisions separate a casino from a pretty screen.

None of them is a visual effect. They are engineering choices read in the product's code.

  1. Result

    Computed on screen≠Decided by the server

    The interface only shows. Balance, bet, round and prize are decided by the server, and every transaction is logged.

    Server › transactions
  2. Trust

    Trust me≠Check it yourself

    The server publishes the seed's hash before the round and reveals the seed afterwards: the player checks it.

    Round verification
  3. Games

    One rule for all≠One engine per game

    Each game has its own engine, types, screen and panel. A new game comes in without touching the others.

    Each game's module
  4. Where it runs

    A separate website≠Inside the game

    The casino opens as a floating panel over GTA RP: the player comes in, bets and leaves without leaving the city.

    FiveM NUI
  5. Server

    One framework only≠Any server

    The Lua bridge detects the framework and uses the vRP, ESX, QBCore or QBox adapter.

    Lua bridge
  6. Administration

    One password for all≠One vault per game

    Login and audit separated per game, and an admin password that renews itself, with its own test.

    Each game's panel

The technologies

What it is made of, piece by piece

The casino has two halves: the screens players see on top of the game and the server that decides every round, out of their reach. Pick a piece to see what it does here and which file it is in.

15technologies, in 4 layers

Screen

Server

Data

Game

Inside the game

Inside the casino, screen by screen.

24 captures of the product running: the lobby's five halls, each game's cinematic opening, the match in progress and the window that proves every result. It's what the player sees, no mock-ups.

The casino · Opening
Opening

Screen 1 of 10: Opening

Prototype

Play before you install. Right in the browser.

Four of the casino's games open to anyone who wants to feel it up close: the same panel, the same rules and the same opening scenes, running in the browser, with no server and nothing to install.

  • Runs in the browser, nothing to install, no server
  • Demo wallet with the same fees as the FiveM panel
  • Demo chips: no real money

Prototype ready

Animal Game

Pick the animals, place the ticket on the table and follow the draw.

Full screen

The prototype is a demo: the chips aren't real and the balance stays in this browser only.