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.
- ~95% return to player, confirmed over two 500,000-spin simulation runs
- ~35% hit rate
- 1,000× cap on any single spin
- 30 free spins at most, retriggerable
How it works
Start to finish
-
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.
-
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.
-
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
- 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?