The lucky wheel is a spin animation you can drop into OBS. You define the segments and their odds, then spin it yourself, let viewers spin it with a command or a channel points redemption, or have Bits, subs and tips spin it automatically.
What it solves
Randomness is content in itself. Instead of deciding "what do I give this time", hand the choice to the wheel; viewers see the process and the odds, and whatever comes up plays better than you simply announcing it. The wheel is also the most direct way to turn viewer actions into something that happens on screen: someone tips, the wheel spins.
Getting started
- Create a wheel, add segments and give each a weight (higher weight = more likely).
- Add the wheel's OBS URL as a browser source.
- Decide who can spin: the dashboard button, a chat command, a channel points reward, or automatic viewer triggers.
- Optionally attach effects to the result (grant points, add marathon time, and so on).
Composite wheels
A composite wheel (Pro) chains 2–3 steps into a formula evaluated in order: the first step is a
value, and each later step is either a multiplier or an addition, any of which may be negative.
For example "value → add → multiply" evaluates as (A + B) × C. The resulting figure can
be applied as marathon seconds or points, or set to "none", in which case it's pure showmanship.
Common misconceptions
- The wheel is only the visual; the winner is drawn on the server. Where the animation stops is a performance of a result that was already decided. Reloading OBS won't change the outcome, and no amount of timing can game it.
- The two cooldowns both apply to the chat command; it isn't either/or. The wheel's own cooldown and the per-viewer interval must both pass before a chat command spin happens. Reward redemptions ignore this per-viewer cooldown; throttle redemptions from the reward's own settings on Twitch instead.
- Selecting no viewer roles means nobody can spin by command. It is not "empty = everyone". The dashboard spin button still works, so you can't lock yourself out.
- Reward redemptions have their own "viewer permission", separate from the chat command's. It defaults to the whole channel, and you can tighten it yourself. It never charges the point cost (redeeming already costs the viewer channel points) and ignores the chat command's per-viewer cooldown. To limit how often or how many times it can be redeemed, use the reward's own settings on Twitch (cooldown, per-viewer/per-stream limits). A redemption turned away by that permission does not consume the wheel's shared cooldown, so a viewer without the role cannot keep redeeming to lock everyone else out.
- The dashboard spin button ignores every restriction. Cooldowns, roles and command settings don't apply to it; it's there for you.
- Disabling a wheel blocks triggers, not your own testing. A disabled wheel won't be spun by anything, but you can still spin it from the dashboard to check the segments and the animation.
- Automatic triggers need one rule per source, not one per amount. Adding several rules for the same source only makes it harder to maintain.
Settings
The text below is taken from the in-app help, so it stays in sync with the actual interface.
| Setting | What it does |
|---|---|
| Type | Composite chains built-in steps into a formula, evaluated in order (Pro) |
| Options source | Custom items, or entrants of a giveaway (tickets = weight) |
| Giveaway | Winner is still drawn server-side; the wheel is the visual |
| Apply result to | The computed value is applied as marathon seconds or channel points; choose None to only show the wheel result without any effect |
| Chat command (optional) | No spaces allowed; a ! prefix is not added automatically, type it yourself if you want one. Leave empty to disable. See "Viewer permission" below for who can use it. |
| Per-user cooldown (sec) | Minimum gap between spins by the same viewer. Applies on top of the cooldown above; both must pass. 0 = no limit. Only applies to the chat command, not reward redemptions. |
| Point cost | Spinning via the chat command deducts this many points from the viewer's balance first; not enough = no spin. 0 = free. The Spin button and reward redemptions are never charged. |
| Channel points reward | Redeeming this reward spins the wheel. Leave empty to disable; the name must match Twitch exactly. Never charges site points and ignores the chat command's per-user cooldown; redeeming already costs channel points. |
| Single event | One event reaches the threshold |
| Per threshold | Fires once for each full threshold; a single event can fire multiple times. |
| Reward title | Must match the Twitch channel points reward title exactly. |
| Only while live | Auto triggers and the chat command only work while the stream is live |
| Announce result message | Send the result message in chat when the spin ends; the prize action's custom message is still sent when this is off |
| Cooldown (sec) | Minimum interval between triggered spins (0 = none); the dashboard button and accumulated triggers are not limited. |
| Spin duration (sec) | Also drives the server-side queue timing |
| Max options visible | When there are more options than this, the wheel shows only this many at a time, and the rest sit behind a fixed cover and rotate in as the wheel spins (odds are unaffected); leave blank to show all |
| Show title | Show the wheel name above the OBS animation (composite wheels show each step name) |
| Show queue count | Show how many spins are still waiting on the wheel in the OBS animation (hidden when nothing is queued) |
| Queue count position | Which corner or the center of the wheel the queue badge sits on |
| Spin speed | Does not change the spin duration or queue wait, only how many revolutions the animation makes |
| Volume | Master volume for all sounds in the OBS animation (50% = default level) |
| Pointer follows option color | The pointer takes the color of the option it is pointing at; off = solid white |
| Font | Pick from the list or type any system/custom font name |
| Font size | Scale relative to the auto-sized text (100% = default); size already adapts to the wheel size and slice width |
| Label lines | How many lines a long name may wrap onto (1 = no wrapping, truncate instead); anything past the last line is trimmed with an ellipsis |
| Spin sound | Played while the wheel is spinning |
| Result sound | Played when the result is revealed |
| Confetti | Confetti burst when the result is shown |
| Spin announcement | Posted when someone spins with the command or the reward. Leave empty to post nothing. The result is deliberately unavailable here; it would spoil the animation. |
| Not enough points | Posted when a viewer cannot afford the point cost. Leave empty to post nothing. |
| Prize win message | Extra text sent to chat when this item wins; leave blank to send nothing. Can be combined with the action below. |
| Time (±) | Adds to / subtracts from the marathon timer. Accepts seconds or 1h30m. |
| Factor | Multiplies the time currently remaining; no effect once it has hit zero |
| Points (±) | Grants or deducts channel points from the triggering viewer |
| Bonus Credits (±) | Grants or deducts bonus credits from the triggering viewer |
Other notes
- Off = this wheel never triggers (dashboard test spin still works)
- A composite wheel has 2–3 built-in steps evaluated in order: the first step is the value (starting number), each later step is a multiplier (×) or an add (+), both may be negative. E.g. value→add→multiplier = (A + B) × C. Each step has its own options; a number is required. Without Pro, only the value step spins.
- The Spin button on the wheel list is always available and ignores the limits below.
- No roles selected = nobody can spin via chat command (the Spin button in the wheel list and reward redemptions are unaffected).
- No roles selected = nobody can spin the wheel by redeeming this reward (the redemption itself still goes through; it just won't spin).
- To limit how often this can be redeemed, adjust it on the reward itself in your Twitch channel points settings (cooldown, per-user/per-stream limits).
- Spin automatically when viewers do any of the following; each source needs only one rule. Triggers set to Send to pending land in the Pending tab for you to spin or dismiss.
- Once set up, cheers, subscriptions, donations and more can spin the wheel automatically.
- Upgrade to let cheers, subscriptions, donations and more spin the wheel automatically.
- Fires once for each full threshold within one event
- Most spins a single event can trigger; very high values are capped to keep a huge tip or big raid from flooding the spin queue.
- You are not on the Pro plan; the settings below are kept but will not run.
- New subs and resub shares both count; gift recipients do not, since they count under Gift subs. The number is how many times one subscription spins the wheel. Keep at least one tier on.
- Prizes without their own colour cycle through this palette.
- https only; mp3 / ogg / wav / m4a.
- At least 2 items; the chance of each item = weight / total weight.
- One option per line, names only; weights, actions and colors are kept as-is (new lines get defaults). Switch to Advanced to edit them.
- When picked, automatically spins the selected wheel; the chained spin respects the target wheel's cooldown, and up to three wheels can be chained
- When picked, queues one more spin of this same wheel; it does not use up the chain limit of "Spin another wheel" and ignores the wheel cooldown.
- When picked, runs the Twitch command as the bot; moderation commands need the bot to be a MOD.
- Same as typing "!command args" in chat; the permissions applied depend on "Run as" above.
- Spin records are kept for 30 days.
- Local preview only: no chat message, no actions.
Other settings
These settings have no additional help text in the dashboard; only their names are listed here.
- (untitled)
- No wheels yet.
- Select or create a wheel.
- Over limit
- Failed to delete. Please try again.
- Clone
- Failed to clone. Please try again.
- A new wheel was created, but copying its settings failed. Please check and fill them in yourself.
- Spin
- Spin started
- Spin dropped (queue full, please retry later)
- Spin failed (needs at least 2 items or incomplete settings)
- Basics
- Name
- Single wheel
- Composite wheel
- Custom items
- Giveaway entrants
- Edit steps and options in the Items tab; set how the result is applied here.
- Add step
- None
- The first step of a composite wheel must be a value step, and every step needs at least 2 options with a required number.
- Please enter a wheel name
- Step name
- Role
- Options
- Value
- Multiplier
- Add amount
- Custom label (optional)
- Add option
- Remove step
- Formula preview
- Add
- Chat command spin
- Channel points reward spin
- Auto triggers below are bound to this same reward. A redemption only spins once and this setting wins, so that auto trigger will not run, including "send to pending".
- Auto triggers
- No auto triggers yet
- Auto triggers are a Pro feature
- View plans
- This duplicates an earlier trigger; only the first one runs.
- Already used by another trigger
- Count mode
- Max spins/event (1-1000)
- Add trigger
- Threshold (bits)
- Threshold (gift subs)
- Threshold (donation amount)
- Threshold (raid viewers)
- No title set. This trigger will not run.
- Subscription tiers that trigger
- When triggered
- times
- Cheer
- Subscription
- Gift subs
- Donation
- Channel points
- Raid
- Manual
- Chat command
- Wheel chain
- Spin now
- Send to pending
- Spin limits
- OBS widget appearance
- Item palette
- Built-in presets
- My palettes
- Current palette
- Add colour
- Reset to built-in
- Save as my palette
- Palette name
- Default
- Pastel
- Neon
- Warm
- Cool
- Greyscale
- Monochrome ramp
- Twitch purple
- Result display (sec)
- Center
- Top left
- Top right
- Bottom left
- Bottom right
- Clear queue
- Cancelled (queue cleared)
- Slow
- Normal
- Fast
- Text color
- Sounds
- Preview
- Result message
- Wheel name
- Result item
- Composite value
- Point cost (abbrev. 1.2K)
- Point cost (Chinese units 1.2萬)
- Point cost (Japanese units 1.2万)
- Point cost (full 1,200)
- Viewer's balance (abbrev. 1.2K)
- Viewer's balance (Chinese units 1.2萬)
- Viewer's balance (Japanese units 1.2万)
- Viewer's balance (full 1,200)
- Point name
- Items
- Simple
- Advanced
- Label
- Weight
- Chance to win: this weight's share of the total
- Color
- Auto
- Restore auto
- Action
- Message
- × Multiply
- ÷ Divide
- Target wheel
- The target wheel was deleted; please choose again
- Please choose a target wheel
- Command
- Please choose a command
- Choose an alert box style and enter a title
- No items yet.
- Add item
- This wheel uses giveaway entrants or composite steps; custom items are not used.
- Marathon time
- Marathon time ×/÷
- Bonus Credits
- Counter
- Coin pusher
- Spin another wheel
- Twitch command
- Built-in command
- Alert notification
- Spin again
- No pending spins.
- Dismiss
- Dismiss all
- Action failed
- Skipped (no triggering user)
- Spinning…
- Waiting to run
- No spins yet.
- Test spin
- Lucky Wheel is not enabled. No wheel will be triggered: auto triggers, chat commands and the OBS widget will not respond.
- Enable now
- Failed to toggle the module
- Wheel to preview