Lucky Wheel System, no UI needed, runs directly in the world
Most spin systems rely on clunky menus. This one doesn’t. It uses Proximity Prompts placed in the map, so players just walk up and spin. It feels more natural, cleaner, and is easy to set up even if you’re new.
What it does
Players get free spins with tickets that regenerate over time, and you can adjust the timing however you want. There’s also a paid spin option using a Robux developer product. The system saves player data with DataStore, including offline ticket regen, and it retries up to three times if something fails.
Rewards use a weighted random system with eight segments, all fully customizable. Everything important runs on the server, so paid spins are only granted after a purchase is confirmed. Both prompts are locked during a spin to prevent overlap issues.
If a player dies mid-spin, their camera resets properly. When someone wins, it can broadcast a message to everyone. There’s also a billboard timer showing when the next free spin is available.
Easy to configure
All main settings are in SpinnerConfig. You can change max tickets, regen time, spin duration, Robux price, and the developer product ID. You can also tweak billboard text, tier colors, and sounds.
Rewards are handled in SpinnerReward. Each segment has a name, tier, weight, icon ID, and a run function. Example templates are already included, so you can just modify them.
Security
Paid spins are verified through ProcessReceipt before being granted.
Server-side debounce prevents spam.
If DataStore fails, tickets default to zero instead of max.
What you get
A local script for handling the client side
A server script for the main logic
A config module for all settings
A reward module for customizing prizes
A README module with setup instructions in English and Indonesian
A complete wheel model with Proximity Prompts
It’s already tested and working. Just drop it into your game, tweak a few settings, and you’re good to go in a few minutes.
Most spin systems rely on clunky menus. This one doesn’t. It uses Proximity Prompts placed in the map, so players just walk up and spin. It feels more natural, cleaner, and is easy to set up even if you’re new.
What it does
Players get free spins with tickets that regenerate over time, and you can adjust the timing however you want. There’s also a paid spin option using a Robux developer product. The system saves player data with DataStore, including offline ticket regen, and it retries up to three times if something fails.
Rewards use a weighted random system with eight segments, all fully customizable. Everything important runs on the server, so paid spins are only granted after a purchase is confirmed. Both prompts are locked during a spin to prevent overlap issues.
If a player dies mid-spin, their camera resets properly. When someone wins, it can broadcast a message to everyone. There’s also a billboard timer showing when the next free spin is available.
Easy to configure
All main settings are in SpinnerConfig. You can change max tickets, regen time, spin duration, Robux price, and the developer product ID. You can also tweak billboard text, tier colors, and sounds.
Rewards are handled in SpinnerReward. Each segment has a name, tier, weight, icon ID, and a run function. Example templates are already included, so you can just modify them.
Security
Paid spins are verified through ProcessReceipt before being granted.
Server-side debounce prevents spam.
If DataStore fails, tickets default to zero instead of max.
What you get
A local script for handling the client side
A server script for the main logic
A config module for all settings
A reward module for customizing prizes
A README module with setup instructions in English and Indonesian
A complete wheel model with Proximity Prompts
It’s already tested and working. Just drop it into your game, tweak a few settings, and you’re good to go in a few minutes.
