NBZ Nathan Bonavia Zammit

03 · Casino · Single-player slot

Slot Machines — Candy Cascade

A single-player candy slot in the Sweet Bonanza style, played against the house bank. Admins place physical machines on the casino floor; players sit down, pull the lever and spin. Every spin is drawn, evaluated and paid entirely on the server, the interface only replays the result, and the maths is calibrated by simulation like a real machine.

Role
Lua (client + server), NUI
Server
Skyland
Framework
ESX
Stack
Lua, ox_lib, ox_target, NUI, KVP storage (no database)
Players
1 per machine
Status
Live on Skyland
The Candy Cascade cabinet with a pull lever, bet presets and the casino floor behind the reels
Mid-tumble: winning symbols detonating and new candy dropping in
Free spins with multiplier bombs collecting into the running total
The staff panel with observed versus configured RTP per machine
The Candy Cascade cabinet: pull lever on the right, bet presets below, and the real casino floor visible behind the reels 1 / 4

How it works

Start to finish

  1. The Candy Cascade cabinet with a pull lever, bet presets and the casino floor behind the reels
    Mid-tumble: winning symbols detonating and new candy dropping in
    Free spins with multiplier bombs collecting into the running total
    The staff panel with observed versus configured RTP per machine
    The Candy Cascade cabinet: pull lever on the right, bet presets below, and the real casino floor visible behind the reels 1 / 4

    01 — The cabinet

    A lever you actually pull

    • Full candy-slot ruleset: a 6×5 grid that pays 8+ matching symbols anywhere on screen, tumbles where winning symbols explode and new ones fall in to chain.
    • Free spins on 4+ scatters, retriggerable up to 30, with ×2 to ×100 multiplier bombs, everything capped at 1,000× the bet.
    • The lever arms at 72% of its travel, springs back on release and the cabinet recoils; turbo and skip for impatient players.
  2. The Candy Cascade cabinet with a pull lever, bet presets and the casino floor behind the reels
    Mid-tumble: winning symbols detonating and new candy dropping in
    Free spins with multiplier bombs collecting into the running total
    The staff panel with observed versus configured RTP per machine
    Mid-tumble: winning symbols detonate, new candy drops in, and the win plate keeps counting through the chain 2 / 4

    02 — The maths

    Tuned like a real machine

    • ~95% return to player confirmed on two 500,000-spin simulation runs, a ~35% hit rate, and free spins roughly once every 185 spins.
    • Three simulation-measured payout presets (Tight ~92%, Normal ~95%, Generous ~97%), plus an advanced mode that edits individual weights within ±50% bounds.
    • The server refuses any setting a control simulation estimates above 120% RTP.
  3. The Candy Cascade cabinet with a pull lever, bet presets and the casino floor behind the reels
    Mid-tumble: winning symbols detonating and new candy dropping in
    Free spins with multiplier bombs collecting into the running total
    The staff panel with observed versus configured RTP per machine
    The staff panel: observed vs configured RTP per machine, the three payout presets and the audit journal 4 / 4

    03 — The staff panel

    Observed against configured

    • Per-machine statistics with observed vs configured RTP, a sortable player list (wagered, won, net, last seen), and a live feed of the last 200 spins.
    • An audit journal of every settings change.
    • Placeable machines persisted in KVP: the whole resource runs without a database.

Under the hood

What keeps it solid

Money
  • All money moves in one atomic server handler: validate, debit, resolve, credit, then send the interface the result to replay.
  • Only preset bets are accepted.
  • A payout interrupted by a disconnect is stored as owed and settled at the next login.
Engine
  • Pure Lua, tested outside FiveM: three spec suites, an RTP simulator and a weight-sweep tool that derived the presets.
  • The full tuning history and a re-calibration guide live in the docs.
Interface
  • Rebuilt through a design contest: three complete themes judged on screenshots against research into commercial candy slots, then two directed revision passes on the winner.
  • A win celebration ladder from SWEET WIN to MAX WIN with one continuous count-up across tiers.
  • A headless screenshot harness, since FiveM's embedded browser is Chromium 103 and every animation has to work within its limits.
Feel
  • Players physically sit at the machines, with seated win and lose reactions.
  • The cabinet is deliberately see-through: an adjustable background lets the real casino show behind the reels.

Tech

Tech and package

  • Lua
  • ESX
  • ox_lib
  • KVP
  • Client scripts
  • Serverengine, money, admin
  • Config
  • NUIgame + sounds
  • Tests and toolsRTP simulator, preset sweep, preview and sound generators

Need something like this on your server?

Email me