NBZ Nathan Bonavia Zammit

02 · Casino · Multiplayer table game

Blackjack — Live Croupier Table

American blackjack for the casino floor. A Game Master opens a physical table as the croupier and paces the game: bets open, cards dealt, reveal, next round. Up to four players bet into the same round against a single dealer hand. The house is the bank, so the croupier never risks a cent, and everything is decided server-side.

Role
Lua (client + server), NUI
Server
Skyland
Framework
ESX
Stack
Lua, ox_target, NUI (HTML/JS/CSS)
Players
Up to 4 per round
Status
Live on Skyland
The blackjack table mid-round with fanned cards, bets and the croupier's up-card
The croupier panel with open bets, deal, reveal, the auto toggle and dev bots
A split in play, one seat fanned into two hands
The table mid-round: fanned cards on the diamond spots, bets down and the croupier's up-card showing 1 / 3

How it works

Start to finish

  1. The blackjack table mid-round with fanned cards, bets and the croupier's up-card
    The croupier panel with open bets, deal, reveal, the auto toggle and dev bots
    A split in play, one seat fanned into two hands
    The croupier panel: open bets, deal, reveal, the auto toggle and dev bots 2 / 3

    01 — The croupier

    The croupier runs the table

    • Opens bets, deals, reveals and starts the next round by hand, like a real pit dealer.
    • Or flips the table to auto and lets timers pace the phases.
    • Dev bots can fill the empty seats to exercise a full table solo.
  2. The blackjack table mid-round with fanned cards, bets and the croupier's up-card
    The croupier panel with open bets, deal, reveal, the auto toggle and dev bots
    A split in play, one seat fanned into two hands
    A split in play: the seat fans into two hands and the plate tracks each hand's total as they play out in turn 3 / 3

    02 — The rules

    Full American rules, decided on the server

    • Hit, stand, double and split: equal rank only, one split, double-after-split except on aces. Dealer stands on all 17s, blackjack pays 3:2.
    • With an ace or a ten-value card up, the server checks the hole card before anyone risks double or split money. A dealer blackjack ends the round on the spot; player blackjacks push instead of losing.
    • The six-deck shoe is reshuffled every round, so card counting is off the table.

Under the hood

What keeps it solid

Money
  • Bets are debited as they're placed; wins are created at settlement.
  • Every movement is logged.
  • KVP snapshots and an owed-money ledger turn a disconnect, a table close, a resource stop or a crash into a refund, at worst on next login.
Testing
  • The round is a pure Lua state machine with the deck injected from outside.
  • The test suite deals rigged shoes and replays whole rounds in a plain Lua interpreter, no game running.
  • A headless-Chrome harness drives the real page through deal, split, reveal and settle, each fix landed against a failing negative control first.
Seats and animation
  • Seat anchors are read off the table model's skeleton bones at runtime, the technique Rockstar's own casino script uses.
  • Official casino animations cover bet, hit and stand plus the win, lose, push and bust reactions.
  • Cards fly in from the shoe, the hole card flips in 3D, chips fly from the bet button to the spot; sounds are scoped to their round.
Anti-abuse
  • Bet limits with a hard 4× per-seat exposure cap, and action throttling.
  • A 20-second action window auto-stands absent players; an anti-AFK watchdog frees seats.
  • Single-exit close paths, so money leaves a table through exactly one route.

Tech

Tech and package

  • Lua
  • ESX
  • ox_target
  • NUI
  • Client script
  • Serverpure round engine + cards + ESX shell
  • Config
  • NUItable interface + sounds

Need something like this on your server?

Email me