Giveaways, tickets and point prizes

Run a free giveaway, let viewers buy tickets with SSN points, or hand out points as prizes.

Brand new to giveaways? Start with Your first giveaway, a walkthrough with screenshots.

Run a free giveaway in 5 steps

  1. In the popup, open Giveaway Options. Leave the ID as default and the keyword as !enter. Keep ticket price and point prize at 0.
  2. Pick a Winner card, Name reel, or Community wheel. Preview it, then copy its link into OBS as a Browser Source.
  3. Click Open entries. Viewers type the keyword in chat to enter.
  4. Click Close entries, then Draw winner. (Drawing closes entries for you if you forget.)
  5. Click New round for another draw. Past winners stay in the history.
Keep Social Stream Ninja running. It runs the draw. You never need to click inside the OBS source.

The old standalone community wheel still works if you leave &managed off the link. Points and remote controls need the managed link.

Sell tickets for SSN points

  1. Turn on the Loyalty Points System in the popup. (These are SSN points, not Twitch channel points.)
  2. In Giveaway Options, open Tickets and point prizes. Set Points per ticket and Tickets per viewer, maximum.
  3. Click Open entries. For a giveaway named friday, a viewer buys 5 tickets with !ticket friday 5.
  4. See who entered under Manage giveaways and history.
When this happens…The points…
A viewer buys ticketsAre held. They can't be spent elsewhere.
The viewer doesn't have enoughAren't charged. No tickets.
You draw a winnerAre spent.
You click Cancel and refundGo back to everyone.
You remove one viewer before the drawGo back to that viewer.
Rules lock after the first entry. To change them, cancel and refund, then start a new round. New round won't discard a paid round. Close and reopen just pauses it.

Give away points

  1. Before opening entries, set Point prize per winner and Number of prizes.
  2. Open entries as usual.
  3. Draw one winner at a time. Each winner gets the prize added to their points.

Prize points are new points, not taken from ticket sales. The most you can pay out is prize × number of prizes.

A finished draw can't be undone. To fix a mistake, adjust that viewer's points by hand. Reconnecting the display never pays twice.

Games with point rewards

Number Hunt

  1. Set the type to Number Hunt (host-controlled), Points per ticket 0, and Number of prizes 1. Add a point prize if you want one.
  2. Social Stream picks a secret number from 1 to 100.
  3. Players guess with !guess friday 50 (use your giveaway ID).

Wrong guesses narrow the range for everyone. The first right answer wins. One guess per viewer every 5 seconds.

Show it with the giveaway display or games/numberhunt.html?session=YOUR_SESSION&managed&giveaway=friday. The regular games don't award SSN points.

Coin Flip Pot

  1. Set the type to Coin Flip Pot, Points per ticket 1, Number of prizes 1, and Point prize per winner 0.
  2. Viewers bet with !ticket friday 3 heads or !ticket friday 3 tails.
  3. Close entries and draw. It's a 50/50 flip, whatever the bets.

Winners get their bet back plus a share of the losers' bets, by bet size. No fee, no new points. Example: winners bet 2 and 1, losers bet 5, so the 8-point pot pays 5 and 3.

Both sides need a player, or the draw is refused. Cancel before the draw to refund everyone.

How leftover single points are split

Leftover points go to the biggest fractional shares first. Ties go to whoever entered first.

Run several giveaways at once

  • Give each a short Giveaway ID (letters, numbers, -, _) and add &giveaway=ID to its OBS link.
  • Ticket and guess commands name the giveaway, like !ticket friday 5.
  • Give each free giveaway its own keyword. A shared keyword won't enter both.
  • All tickets come out of the viewer's one points balance.
The popup sets up new rounds. To see a running round's real rules, check the manager. Editing an OBS link only changes the look.

The OBS display

  • Use a 1280 × 720 Browser Source. The background is see-through unless you pick Themed panel.
  • The wheel shows up to 120 names, but the winner is picked from every ticket.
  • After a reconnect, it shows the saved result. Reduced-motion settings skip the animation.
  • Social Stream can't tell whether the OBS scene is live.
Keep these private: controller links, session IDs, and backup files.

Event Flow

  1. Add the Giveaway / Tickets action (under the points actions).
  2. Pick what it does: Enter free giveaway, Buy tickets, Grant free tickets, Close entries, Draw winner, Cancel and refund, or Query state.
  3. Pick the giveaway ID and ticket count. For a pot, pick heads or tails.
Buy tickets already spends the points. Don't put a Spend Points action before it.

It acts for the viewer who sent the message. Put a trusted trigger or filter before grants and host controls.

More Event Flow details
  • If it fails, dependent actions stop. The chat message still shows.
  • The result is in meta.giveawayControlResult.
  • The test panel only simulates it. For real tests, use a separate host or profile.
  • The balance is checked when it runs, so the entry message can't earn its own last point.
  • Repeat protection is strongest on sources with their own message IDs.
  • Scheduled events with no viewer can't buy tickets.

Stream Deck and API

The Stream Deck plugin has: Open giveaway, Close giveaway, Draw giveaway, Cancel and refund, New giveaway round, and Giveaway state.

  • They use the default giveaway. For another, put {"giveawayId":"friday"} in the value field. Open giveaway also takes a config object.
  • A key confirms Social Stream replied, not that OBS shows it. If it times out, check the state before drawing again.
Buying tickets through the API
{"protocol":2,"action":"buygiveawaytickets","get":"callback-1","value":{"giveawayId":"friday","roundId":"ROUND_ID","operationId":"purchase-123","count":5,"actor":{"chatname":"Avery","type":"youtube","userid":"SOURCE_USER_ID"}}}
  • operationId names the purchase; get names the reply.
  • Keep the same operation ID when retrying. Use a new one for a new purchase.
Host API access can spend any viewer's points. Never expose it as a public form.

History and backups

Manage giveaways and history shows rounds, entries, and winners. You can Export winner history (JSON) or save a full points and giveaway backup. Nothing is uploaded.

After a restart, open rounds come back closed, with tickets still held. Reopen, draw, or cancel and refund.

Restore a backup

Only works on a fresh host with no points or giveaways.

  1. Keep the old host turned off. Open SSN in a fresh browser profile and open the giveaway manager.
  2. Under Recover on a fresh host, pick your full backup. Wait for the message and note the session ID it lists.
  3. In the popup's Session Options, enter that session ID.
  4. Back in the manager, pick the giveaway ID and click Refresh. Check the rules, entries, and winners. Rounds come back closed.
  5. Reopen, draw, or Cancel and refund. Then save a new backup.
Never run the old and restored host at the same time. A backup misses anything after it was saved, and doesn't include popup settings.
More about where data lives
  • Points live in this browser or app profile and don't sync elsewhere. Rounds are kept per session.
  • Clearing browser data can delete them, so keep backups outside that profile.
  • Balance-only imports can't restore held tickets. Resetting points is blocked while tickets are held, and doesn't erase giveaway history.
  • Unconfirmed sticker purchases are released after a timeout.
  • No cloud backup or cash-out. Server backup may come later.

Fix problems

ProblemTry this
A viewer can't enterCheck the ID, keyword, members-only, that entries are open, and that the platform is captured. Bot, private, old, replayed, and test messages never count.
A viewer's account looks wrongA name change can confuse wallets. Check on the host. Platforms are never merged.
Buttons don't respondMake sure the right SSN host is running with host controls on. Refresh before retrying.
Can't reset or import pointsFinish or cancel held ticket purchases first. For a backup with held tickets, use full recovery.
!spend says unknown rewardIt needs a set-up reward with a price.

Loyalty points · Games · Polls and waitlists · API reference · Event reference