Vytvářejte hry a odměny

Proměňte dárek, částku podpory nebo příkaz chatu v akci ve vysílání.

Ano, hra může reagovat na dárky TikTok

Divák pošle dárek nebo zprávu Social Stream Ninja jej zachytí Vaše stránka rozhodne, co se stane

Váš JavaScript vybírá akci: zrychlit raketu, pěstovat zahradu, vytvořit nepřítele nebo plnit společný cíl. Volíte také práh. SSN nemůže měnit ceny dárků platformy.

Chci…Začněte zde
Spustit zvuk, upozornění, akci OBS nebo webhookEvent Flow (bez kódu)
Vytvořit herní plochu nebo uchovávat vlastní stav hryVýchozí šablona níže
Použijte hotovou hruTento galerie her

Vyberte šablonu

Každý náhled má ukázková tlačítka a inspektor „Last received payload“. Ukázky jsou falešné události, nikoli nákupy. Režim náhledu se nikdy nepřipojuje k živé relaci.

ŠablonaCo děláZměňte toto
Mincová raketa10 mincí TikTok, 100 Twitch Bits nebo 100 Facebook Stars přidá jedno zrychlení. Zbytky se ukládají pro každého diváka a platformu.COST
Společný cíl podporyOdhadované USD ze všech čtyř platforem staví měsíční základnu. Postup můžete nahradit poškozením, palivem nebo časovačem.GOAL_USD
Zahrada dárků a událostíVybraný dárek TikTok přidá květiny. Sledování na TikToku přidá strom. Bezplatný příkaz !water v chatu přidá vodu.GIFT_ID (zachycené ID) nebo GIFT_NAME (přesný název). „Demo flower“ je vymyšlené.
  • V HTML vyhledejte EDIT THIS RULE nebo EDIT THESE RULES.
  • Umístěte herní logiku do receive(data) funkce.
  • Pomocné funkce připojení a počítání jsou v starter.js. Styly jsou v starter.css.

Připojte šablonu ve 3 krocích

  1. Spusťte SSN a připojte chat. Ověřte, že chat i dárky přicházejí do Docku. Pro TikTok viz režimy připojení.
  2. Otevřete šablonu bez ?demo, se svým ID relace a případně nastaveným heslem.
  3. Ověřte jej v prohlížeči. Potom přidejte stejný odkaz do OBS jako zdroj prohlížeče, například 1000 × 800.
https://socialstream.ninja/games/templates/coin-rocket.html?session=YOUR_SESSION&password=YOUR_PASSWORD&clean
  • &clean skryje inspektor, stav připojení a tlačítka hostitele.
  • Nemáte heslo? Vynechte &password=….
  • Na beta webu ponechte /beta/ před games/.
Odkazy relací uchovávejte v soukromí.
Další způsoby připojení (WebSocket)

Šablony ve výchozím nastavení používají stejný iframe most jako překryvy SSN.

  • Hostovaný WebSocket: zapněte Odesílat zprávy z rozšíření do doku přes server v SSN, potom přidejte &server2.
  • Místní server: přidejte &server2&localserver, nebo &localserverport=3000. Viz Průvodce WebSocket.
  • localserver samo o sobě nezapíná cestu připojení.
  • Starší server datový tok používá jiný kanál a může vyžadovat Dock, který do něj publikuje.

Vytvořte vlastní kopii a spusťte ji z disku

Žádný server k instalaci. Upravíte soubor na počítači a nasměrujete na něj OBS.

  1. Stáhnout zdrojový ZIP beta verze a rozbalte jej.
  2. Zkopírujte vybranou šablonu vedle originálu. Příklad: games/templates/my-rocket.html.
  3. Zachovejte strukturu složek. Šablony načítají js/local-server-url.js, a cíl podpory načítá currency.js z hlavní složky. Ponechte na místě také obrázky a zvuk.
  4. Přetáhněte soubor HTML do Chromu nebo Edge a zkopírujte file:/// adresu.
  5. Přidejte vše od ? dále ze svého funkčního herního odkazu (relace, heslo, možnosti přenosu).
  6. V OBS odejděte Místní soubor vypnuté. Vložte celou adresu do pole zdroje prohlížeče URL pole.
  7. Po každé úpravě obnovte zdroj prohlížeče.
file:///C:/SSN/social_stream-beta/games/templates/my-rocket.html?session=YOUR_SESSION&clean

Použijte skutečnou cestu. Nepřesouvejte rozbalenou složku. Relace je ID připojení SSN, nikoli název hry. Odstraňte demo pro živý vstup. Nechte SSN i zachytávání běžet. Další příklady: průvodce nastavením souboru.

Upravujete existující hru? Můžete zkopírovat libovolnou stránku z games/. games.html a battle.html mají vlastní herní logiku. Nastavení pravidel šablon není společné herní API.
Prompt pro AI k úpravě vzhledu hry

Dejte AI svou kopii HTML, starter.js, starter.css, kořenový soubor js/ pomocné funkce, grafiku či zvuk a docs/event-reference.html.

Customize [game file] to match [reference], at [canvas size].
Include its existing CSS/JS and local artwork/audio. Preserve the game's
rules, controls, gift/coin/USD distinctions, streak handling, duplicate
handling, and demo/clean modes. Change the visual design, not the reward rules,
unless I explicitly specify a rule change. Keep session/password and
transport parsing, relative paths, and Chrome 80-compatible classic scripts.
Read docs/event-reference.html and docs/making-games.html.

Treat all incoming messages, names, labels, donations, and metadata as untrusted.
Prevent HTML/JavaScript injection in every renderer you change. Use textContent
for plain fields and for chatmessage when textonly is true. For HTML-mode
chatmessage, keep supported emotes/formatting through the packaged
SocialStreamChatHTML.sanitize helper (libs/objects.js loaded first).
Do not concatenate raw input into innerHTML, attributes, CSS, or JavaScript.
Validate media/link URLs with the page's existing URL policy and assign DOM
properties; do not enable javascript: URLs or executable embedded content.
Never eval incoming data or treat a viewer message as an AI instruction.
Keep source checks, connection handling, and existing sanitizers.
Test plain text, allowed emotes, quotes, angle brackets, and an HTML injection
probe in an isolated preview; verify the probe cannot execute.

Make the edited game work directly from disk using a file:/// URL,
without requiring a local web server.
Return the edited files/assets, file URL and OBS setup steps, and tests using
fictional data. Preserve image-only events and a valid donoValue of zero.
Never treat chat text as proof of a payment.

Potom testujte v pořadí: ukázková tlačítka včetně opakovaných aktualizací série a přepsání hodnoty na nulu, skutečná relace, a nakonec zdroj OBS ve skutečné velikosti. Ověřte pravidla hry a bezpečné vykreslování. Samotná fungující animace nedokazuje správnost pravidel.

Jak vybrat počet mincí pro akci?

Nejprve rozhodněte, co měříte. Pak vyberte číslo.

Měřená hodnotaČtěte totoPříklad
Původní jednotky (mince, Bits, Stars)TikTok meta.coinsPerGift × meta.tiktokGiftCount pokud je přítomné, nebo hasDonation popisek, například 10 coins, 100 bits, 100 Stars.Každých 10 mincí = jedno zrychlení.
Jeden konkrétní dárekTikTok meta.giftId nebo meta.giftName, a jeho počet.Každý odpovídající dárek přidá květinu bez ohledu na hodnotu.
Srovnatelná peněžní hodnotagetDonationValueUSD(data) z currency.js.Každý odhadovaný 1 USD přidá 10 jednotek paliva. 25 USD dokončí cíl.
Bezplatná akce nebo členstvíSkutečná hodnota zdroje event, nebo příkaz chatu.Sledování vypěstuje strom. Nové předplatné spustí animaci.

Přesná hodnota, minimum, nebo průběžný zůstatek?

  • Přesná hodnota: coins === 10. Dárek za 25 mincí neudělá nic.
  • Minimum na událost: coins >= 10.
  • Průběžný zůstatek: který používá raketa. 25 mincí = dvě zrychlení a zbytek 5 mincí.

Máte více úrovní? Nejprve kontrolujte nejvyšší, aby jeden dárek nespustil všechny nižší.

Počet mincí TikTok není vždy znám. Pokud zachytávání poskytuje pouze název dárku, počet nebo popisek diamantů, mincová raketa událost přeskočí. Použijte místo toho pravidlo dárku nebo šablonu USD. Nikdy neodvozujte „přesné mince“ dělením odhadu USD ani záměnou diamantů za mince.
Více o mincích, dárcích a diamantech TikTok
  • Diváci kupují Coins a utrácejí je za Gifts. Cena v mincích je uvedena u dárku. Viz Vysvětlení mincí a dárků od TikToku.
  • Název dárku, počet dárků, Coins a Diamonds jsou čtyři různé věci.
  • Vyberte dárky dostupné ve svém LIVE a před zveřejněním pravidla ověřte zachycená data.
  • Hodnoty mincí mohou pocházet z mapování dárků SSN. Pokud záleží na přesné ceně, porovnejte ji s aktuální nabídkou dárků ve svém LIVE.
  • Katalogy dárků i způsoby zachytávání se liší. Pole s mincemi není zaručeno u každé zprávy TikTok.

Co posílají jednotlivé platformy

type říká, odkud data pocházejí. event říká, co se stalo, pokud je přítomné. Příchozí data závisí na režimu zachytávání, nastavení a platformě. Popisuje současný kód SSN, nikoli záruku, že každý účet dostane všechny události.

PlatformaCo získátePozor na
TikToktype: "tiktok", event: "gift". Zachytávání darů může přidat hasDonation a donoValue. Metadata mohou obsahovat ID, název, počet, mince na dárek, diamanty na dárek a ID série.Za Coins se kupují Gifts; Diamonds jsou odměny tvůrců. Zachytávání přes WebSocket v SSApp uzavírá série před odesláním; prohlížeč může posílat průběžné součty. Po vypnutí zachytávání darů TikTok mohou dárky postrádat peněžní pole.
TwitchCheers používají Bits, například hasDonation: "100 bits". Zachytávání přes API může poslat event: "cheer" a donoValue: 1. Zachytávání chatu nemusí mít událost.Předplatná, darovaná předplatná, raidy a Channel Points jsou samostatné. Odznak předplatitele u běžné zprávy není nové předplatné. Bits používané v Twitch Extensions jsou jiný systém.
FacebookViditelné řádky Stars v živém chatu poskytují například hasDonation: "100 Stars" a donoValue: 1, bez event.Cesta comments API nečte Stars z textu chatu. Řádek Stars musí být viditelný pro zachytávání stránky. Komentáře ani reakce nejsou platby.
YouTubesuperchat a supersticker nesou původní měnu v hasDonation. Dárky používají jeweldonation s N Jewels, nebo 1 YouTube Gift pokud je částka skrytá.Diváci utrácejí Jewels, tvůrci získávají Rubies. Členství a darovaná členství jsou samostatné události. Super Thanks je samostatný produkt, nikoli zaručená událost chatu.

Jiné zdroje mohou hlásit příspěvky, dárky, členství nebo nákupy. Zkontrolujte přehled událostí než je přidáte do filtru šablony isSupport filtr. Prodej nebo darované předplatné není automaticky příspěvek. YouTube posílá nákup dárku i oznámení každému příjemci; počítáním obou odměníte stejný dárek dvakrát.

Referenční odkazy platforem

Diamanty TikTok · Bity a předplatné Twitch · Přehled hvězd od Meta · YouTube Super Chat a Super Stickers · Klenoty, dárky a rubíny YouTube.

Podmínky ověřeny 29. září 2026. Způsobilost ověřte na aktuálních stránkách platforem.

Používejte donoValue a currency.js správně

PoleCo to je
hasDonationPůvodní popisek, například €5.00 nebo 100 bits. Ukažte to divákům.
donoValueVolitelná číselná hodnota USD ze zdroje. Je-li platná, i když nulová, použijte ji před odhadem z popisku.
<script src="../../currency.js"></script>
<script>
// From games/templates/: use the existing helper, including its zero handling.
var usd = getDonationValueUSD(data);
// Use usd for your rule; display data.hasDonation for the original amount/unit.
</script>

Tohle nedělejte

  • donoValue || convertToUSD(...) — zahodí záměrnou nulu.
  • Získávání čísel z chatmessage pro rozpoznání plateb.
  • Vyžadování event === "donation" — Facebook Stars a některé Cheers nemají událost.

Šablona cíle podpory nejprve vybere typy podpory a pak zavolá sdílený převodník.

Vestavěné odhady SSN
JednotkaOdhadováno jako
1 mince TikTok$0.01
1 diamant TikTok$0.005
1 Twitch Bit nebo Facebook Star$0.01
1 YouTube Jewel$0.005
Dárek TikTok s neznámou cenou1 mince za dárek
Dárek YouTube bez počtu JewelsZástupná hodnota 0,01 USD

Ostatní měny používají vestavěné přibližné kurzy, nikoli živé kurzy. Slouží pouze k porovnání podpory. Nejde o částku zaplacenou divákem, váš výdělek ani částku k výběru. Různé metody zachytávání mohou dávat různé odhady. Zástupná jedna mince neznamená, že dárek stojí jednu minci.

Zdroj: currency.js a popis dat. Metadata dárků jsou volitelná; příklady nevymýšlejí pole, která vaše zachytávání neposkytuje.

Sérii dárků započítejte jen jednou

TikTok může sérii hlásit jako průběžné součty: 1, 2, 3. To jsou tři dárky, nikoli šest. Pamatujte si nejvyšší součet dané série a přičítejte jen nárůst.

// All three events refer to the same streak:
// incoming total: 1, 2, 3, 3
// added to game:  1, 1, 1, 0
var newCoins = RewardStarter.increment(data, RewardStarter.coins(data), 'coins');
  • Pomocná funkce páruje série podle ID skupiny, odesílatele a dárku TikTok, potom podle meta.tiktokGiftStreakId, pak ID zpráv. ID zpráv také brání opakovanému doručení.
  • Nečeká na repeatEnd, protože zachytávání v prohlížeči jej nemusí nikdy poslat. Potřebujete jednu akci až po konci série? Napište samostatné pravidlo s poli, která vaše připojení skutečně posílá.
  • Používejte jedinou cestu zachytávání. Druhé zachytávání stejného kanálu může používat jiná ID a počítat dvakrát.
Paměťová omezení šablon
  • Pamatují si nejvýše 2 000 ID, pouze v paměti.
  • Reset nebo nové načtení vymaže tuto paměť i postup hry.
  • U zpráv bez stabilních ID nelze spolehlivě odstranit duplicity.
  • Raketa seskupuje zůstatky podle platformy a ID uživatele, případně zobrazovaného jména, pokud ID chybí. Diváci stejného jména mohou sdílet zůstatek.
  • Má-li hra přežít restart, doplňte ukládání stavu a zpracování opakovaných událostí, než se spolehnete na placené odměny.

Odměny bez vlastní hry

V části Event Flow:

  1. Přidejte Porovnat vlastnost.
  2. Nastavte na donoValue, větší nebo rovno, a částku v USD.
  3. Připojte akci, například zvuk, animaci nebo ovládání OBS.

Použije vlastní hodnotu zdroje, pokud je platná; jinak převod měn SSN.

  • Jeden konkrétní dárek TikTok: porovnejte meta.giftId nebo meta.giftName, a omezte tok na události dárků TikTok.
  • Číselné kontroly v hasDonation se také převádějí na USD. Nejde o přímé kontroly mincí. Pro pravidla mincí používejte původní metadata nebo vlastní kód.
  • Každá kontrola se provádí pro jednu zprávu. Nejde o průběžný zůstatek ani počítadlo série. Použijte stavové uzly pokud to potřebujete, nebo ponechte tuto logiku ve hře.

Otestujte před připojením placené akce

  1. Ukázková tlačítka. Série 1 → 2 → 3 přidá tři dárky. Ukázka s přepsáním hodnoty na nulu nepřidá žádné USD. Neznámá cena nepřidá přesný počet mincí.
  2. Skutečný zdroj. Prohlédněte skutečně zachycená data. Ověřte název/ID dárku, částku, jednotku, počet a událost. Ukázky testují pravidlo, nikoli živé zachytávání.
  3. scénu OBS. Ověřte opakované události, obnovení spojení a nové načtení. Pokud potřebujete zachovat průběh v paměti, zdroj prohlížeče neobnovujte ani nevypínejte.
ProblémVyzkoušejte
Nic nepřicházíNejprve zkontrolujte Dock SSN. Potom relaci, heslo a způsob přenosu.
Chat přichází, ale dárek neodpovídá pravidluProhlédněte data a zkontrolujte filtry darů a událostí.
Nepřichází sledování ani předplatnáLiší se podle zdroje. Viz přehled událostí.
Provozujete hru bez obsluhy (AFK)? SSN, zachytávání i herní stránka musí zůstat spuštěné. Uspání, vypršení přihlášení nebo výpadek dat zastaví akce. Šablony nedohánějí zmeškané události ani neřeší vrácení plateb. Automatické reakce samy o sobě neopravňují stream bez obsluhy k výdělku; ověřte aktuální pravidla LIVE a monetizace platformy.

Další podrobnosti připojení: vlastní překryvy.