RBLXEssentials
$7.99 Roblox Studio pack

Roulette System

Roulette System adds a spin-to-win wheel to your game. Players spend spins to land on rewards, get a free one on a cooldown, and buy more with developer products. You set every slot, reward and odd in the RBLX Essentials Plugin. No script editing.

Or take every paid pack together for $34.99, instead of $55.94 bought one at a time.

Roulette System

Core Features

Version 2.1.0: Update DataStore, Easy Pet System and Roulette together. Back up customized pack folders first. Restart old servers after updating; keep StoreVersion and existing player data unchanged.

The spin wheel in game, mid-spin, with the spin count on the HUD
Spin menuIncluded. A HUD button, a wheel that spends a spin, and the reward paid the moment it stops. If the client never reports back the server pays it anyway, so a spin is never eaten.
The seven reward slots in the plugin, with the wheel drawn from them and the odds beside each row
Seven weighted slotsCash, Diamonds, extra Spins, any leaderstat, or a module you write. The odds beside each row are worked out from the weights, so you can see what a change actually costs a player.
The Spins and Dev Products settings in the plugin
Free spins and spin productsWhat a new player starts with, how long the free-spin clock runs, and the ids of the +1, +3 and +10 products. Paste them and the buy buttons are wired.

Setup

1Drag the .rbxm into Studio
2Hit Install in the plugin
3Set your slots and odds. Press Play.

Developer API

RouletteSystem: spins from your own code
local roulette = ctx.require("RouletteSystem")

-- Hand out spins from a quest, a code, anything.
-- Capped by MaxSpins; false if the amount is not positive.
roulette.addSpins(player, 5)

-- 0 until the player's save has loaded.
print(roulette.getSpins(player))

-- Second return says why not, never a sentence to show.
local ok, why = roulette.canSpin(player)
Spins live in the player's save alongside everything else, so a spin bought on Monday is still there on Friday.
Custom rewards: hand out anything
-- A ModuleScript in the pack's CustomRewards folder.
local GrantGems = {}

-- `d` is the live save: changes persist and replicate.
function GrantGems.Grant(player, d)
    d.Stats = d.Stats or {}
    d.Stats.Gems = (d.Stats.Gems or 0) + 1
end

return GrantGems
Drop it in and the slot's Module dropdown lists it by name. RandomPet ships on slot 6: it hatches a pet from an Easy Pet System egg using that egg's own odds, and falls back to Diamonds when that pack is not installed.

Customisation

Slot names and icons One reward slot opened in the plugin, showing type, amount, weight, display name and icon Type a name or paste an icon and the wheel in Studio redraws as you type. What you configure is what you see.
Works with General UI Kit The spin wheel open inside General UI Kit's HUD, with its icon rail, pet bar and music player Install both and General UI Kit's Spin menu is the one that runs, styled with the rest of your interface.

Works great with

Datastore
Datastore & Purchase SystemRequired
UI Kit
General UI KitStyling
Pet System
Easy Pet SystemPets
Sound System
Sound SystemSounds
Time Rewards
Time Rewards SystemSpins

Only Datastore & Purchase System is required, because it is what keeps a player's spins between sessions. The other four are optional and the pack works without any of them.

Documentation

Every field, the plugin panels and the version history live at rblxessentials.com/docs.

Updates

📋 Version history and changelogs for all packs are available at rblxessentials.com/docs#changelog.

The rest of the ecosystem

Every pack saves through Datastore, plays its sounds through Sound System and puts its menu on the same HUD. Nothing needs wiring between them.

Roulette System

A weighted Roblox spin wheel: eight slots, real drop chances, free spins on a cooldown, paid spins and reward modules you write yourself.