Spinning for:
Winner — confirm action below
Wheel Options
Confetti Normal
Theme
Wheel Palette
Name Text Color
Participants
Or
🎯
No participants yet
Type a name above to begin
Prize Queue
Winner History
Works best in Chrome
· ·
The Wheel AsylumLife.com
Admin
Pre-select the winner for the next spin. Keep this corner off your stream view.
Force next winner to:
Winner locked in
How to Use the Wheel
A quick reference for whoever is running the giveaway.
✏️
Adding Participants
Type a name and press Enter or click + Add. To add many at once, click paste a list and drop in names separated by commas or new lines. Add a colon and a number to set a weight inline — e.g. Bob:3 adds Bob with a weight of 3. Double-click any name in the list to edit it inline. Entering a duplicate name bumps that person's weight by 1 instead of blocking.
🏷️
Giveaway Title
Type a title in the field above the wheel — it appears in the winner reveal overlay as a banner. Leave it blank for the default "We have a winner" message.
⚖️
Weights & Odds
Use − / + to adjust anyone's weight (1–10). Higher weight = bigger slice = better odds. The multiplier shows on the wheel as ×2, ×3, etc.

Enable Equal odds (in the Wheel Options card at the top) to treat everyone as weight 1 regardless — the +/− buttons are disabled in this mode, but your actual weight values are preserved when you turn it back off.
🎡
Spinning
Click Spin the Wheel or press Space. By default a 3-2-1 countdown fires before the wheel spins — click anywhere on it to skip straight to the spin, or press ESC to cancel. Turn off the Countdown toggle to skip the countdown entirely and spin immediately every time.

When the wheel stops, the winner's name appears full-screen with confetti. Use the Confetti slider in Wheel Options to dial the amount from Off to Extreme — or anywhere in between. Click Dismiss or press ESC to close. Remove from Pool reduces that person's weight by 1 (or removes them entirely if weight is 1). Enable Auto-remove to relabel those buttons to Keep in Pool / Continue.

If a Prize Queue is loaded, the active prize name appears below the winner and a third button — ↻ Re-spin same prize — appears. Dismiss and Remove from Pool both advance the queue to the next prize. Re-spin closes the reveal without advancing, so you can spin the same prize again for a different winner.
🎁
Prize Queue
The Prize Queue card (between Add Participant and Winner History) lets you pre-load an ordered list of prizes before the stream starts. Add prizes one at a time — type + Enter or click + Add. Drag the grip handles on the left to reorder at any time.

When prizes are loaded, a "Spinning for: [prize]" pill appears above the wheel so the audience knows what's at stake before the spin. After each winner is confirmed (Dismiss or Remove from Pool), the queue automatically advances to the next prize. Use ↻ Re-spin same prize on the winner card to hold the current prize and spin again. The previous winner is removed from history — that spin didn't count.

Prizes are entirely optional — if the queue is empty or exhausted, everything works as normal. The prize list and current position persist across reloads and are included in Save/Load JSON files.
📋
Winner History
A session log appears automatically after the first spin and shows each winner in order, most recent first. If a Prize Queue was active, the prize won is shown on a second line (🎁) under each winner's name. Hover any row to reveal the Add Back button — returns that person to the pool at weight 1, or bumps their weight if they're still in.

The card header has three buttons: Export downloads the full history as a .csv file with columns Round, Name, Prize, and Giveaway Title — rows are oldest-to-newest; Prize is blank if no Prize Queue was active. ↩ Undo appears after each spin and reverses it completely — restores the participant pool and prize queue to their pre-spin state and removes the last history entry; it clears after use or when a new spin starts. Clear wipes the log at the start of a new stream.
💾
Saving & Backups
Your setup auto-saves in this browser and comes back when you reload — but the browser can clear that data (clearing site data, private windows, etc.), so for anything you care about, keep a backup file. There are two ways to save:

↓ Save (bottom-right) writes a .json file with everything — participants, prizes, settings, your custom palettes, and the full winner history. ↑ Load restores it all later, on any computer. Great for prepping a giveaway ahead of time or moving between machines.

Export (in the Winner History card) saves just the winners as a .csv spreadsheet — handy for records, raffles, or sharing a results list.

If you try to close the tab with winners you haven't backed up, your browser shows a generic "Leave site?" warning. (Browsers don't let apps customize that message.) To be safe, hit ↓ Save or Export first — either one clears the warning.
🔊
Sound & Confetti
Sound is on by default — ticking during the spin, beeps during the countdown, and a short fanfare when the winner is revealed. Use the Sound toggle in Wheel Options to mute everything instantly.

The Confetti slider (also in Wheel Options, below the toggles) controls how much confetti fires on the winner reveal — drag it from Off to Extreme, or anywhere in between. The setting persists across reloads and is saved in your .json file.
🎨
Themes, Colors & Palettes
All in the Wheel Options card:

Theme restyles the whole interface (background, accents, glow) — pick any of the built-in skins; your choice is saved.

Wheel Palette sets the colors of the wheel slices. Click any preset swatch to recolor the wheel instantly. To make your own — say, from your logo's colors — click +, then add colors with the picker or paste hex codes (e.g. #F3AF3C, #1D648E), name it, and Save. Edit or delete your custom palettes with the that appears on them (built-in presets are fixed). To start a custom from a preset, select that preset first, then click +.

Name Text Color changes the color of the names drawn on the wheel; the text shadow adjusts automatically so names stay readable on any slice color.

The Reset link in the Wheel Options header returns the toggles, confetti, theme, name text color, and wheel palette to their defaults. It keeps your custom palettes, participants, prizes, and winner history.
🖼️
Wheel Logo
Click the center of the wheel to upload a logo — it displays inside the hub. Hover over it to reveal the button and remove it. The logo is compressed automatically and saved across reloads.
🖥️
Presentation Mode
Click the expand icon (top-right of the wheel) to hide the control panel and fill the screen with the wheel. Crop your stream to exclude the bottom-right corner — that's where all operator controls live. Move the mouse to reveal the exit hint, or press ESC.
🔒
Admin — Pre-Selecting a Winner
Press Ctrl + Shift + A to open the admin panel — no visible button by design. Pick a name and click Lock In. The next spin always lands on that person and looks completely natural. The lock clears automatically after the spin fires.
💾
Save & Load
Use ↓ Save to export your current setup — participants, weights, title, skin, prize queue, and logo — as a .json file. Use ↑ Load to restore it on any computer. Great for passing a giveaway config between streamers or saving a recurring setup. Both buttons are in the bottom-right corner next to Help.
📺
Two-Window Stream Setup
Open two Chrome windows from the same URL (e.g. https://thewheel.asylumlife.com):

Display window — append ?display=1. Full-screen wheel only, no controls. Give this window to OBS as a Window Capture. It listens for changes from the control window via localStorage and mirrors everything in real time — wheel redraws, spin animations, winner overlay — automatically.

Before going live: click anywhere on the display window once. This unlocks the Web Audio API — Chrome requires a real user gesture before sound can play. A small 🔊 hint appears at the bottom to remind you; it fades out after the click.

Control window — append ?control=1. Control panel only, no wheel canvas. Manage participants, prizes, and settings here. When you press Spin, the winner is determined instantly and the display window kicks off the full spin animation. A compact winner action area appears so you can Dismiss, Remove from Pool, or Re-spin — the display window responds to each action. The ↩ Undo button in the Winner History card header also works here and will close the display overlay automatically.

Standalone window — append ?display=1&spin=1. A full-screen wheel like Display mode, but with the Spin button visible and the winner action buttons (Dismiss, Remove from Pool, Re-spin) shown right on it. It's a single self-contained window — no separate control window needed. Use this if you only want one window on screen and are happy spinning from the wheel itself. Because it's self-contained, it does not sync with a ?control=1 window.

Why Window Capture, not Browser Source? OBS's built-in browser source uses an isolated engine that cannot share localStorage with Chrome. Window Capture of a Chrome tab shares the same localStorage as any other Chrome tab on the same machine — that's what makes the sync work.

Both windows must be open in the same Chrome profile on the same machine and loaded from the same origin (same domain or both from localhost).
⌨️
Keyboard Shortcuts
Space  Spin the wheel
Enter  Add the typed name
ESC    Cancel countdown · dismiss winner · close panel · exit presentation
Ctrl + Shift + A  Open / close admin panel
Paste a name list
One name per line or comma-separated · add :weight for odds (e.g. Bob:3)
New wheel palette
Pick colors, or paste hex codes below. Need at least 2 colors. Editing a built-in palette saves a copy.
tap to skip
🏆  We have a winner
Prize: