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

Social Stream Ninja zachytí událost a pošle ji vaší stránce. JavaScript rozhodne o akci: zrychlit raketu, vypěstovat zahradu, vytvořit nepřítele nebo posunout společný cíl. Akci i práh nastavujete ve hře. SSN nemění ceny dárků na platformě.

Začněte zde: vyzkoušejte tři šablony, a potom vyberte, co vaše pravidlo používá: jednotky platformy, identita dárku nebo odhadované USD.

Pro zvuk, upozornění, akci OBS nebo webhook začněte s Event Flow. Vlastní HTML stránka se hodí pro herní plochu nebo vlastní stav hry. Hotové hry najdete v galerie her.

Tři malé, upravitelné šablony

Každý náhled má ukázková tlačítka a prohlížeč posledních přijatých dat. Jde o smyšlené události, ne nákupy. Režim náhledu se nikdy nepřipojí k živé relaci.

  • Mincová raketa: 10 mincí TikTok, 100 bitů Twitch nebo 100 hvězd Facebook přidá jedno zrychlení. Zbytky se sčítají zvlášť pro každého diváka a platformu. Změňte COST v HTML a určete své částky.
  • Společný cíl podpory: spojte odhadovanou podporu USD ze čtyř platforem a stavte měsíční základnu. Změňte GOAL_USD nebo nahraďte postup poškozením, palivem či časovačem.
  • Zahrada dárků a událostí: vybraný dárek TikTok přidá květiny, zachycené sledování přidá strom a bezplatný příkaz !water v chatu přidá vodu. Nastavte GIFT_ID na zachycené ID nebo nastavte GIFT_NAME na přesný název. „Demo flower“ je smyšlený příklad.

Otevřete zdroj HTML a najděte EDIT THIS RULE nebo EDIT THESE RULES. receive(data) je funkce, ve které nahradíte ukázkovou akci vlastní logikou. Pomocné funkce spojení a počítání jsou v starter.js; vzhled najdete v starter.css.

Připojte šablonu k vysílání

  1. Spusťte SSN a připojte zdroj chatu. Ověřte, že chat a dárky/podpora dorazí do docku. Nastavení TikToku: režimy připojení.
  2. Otevřete šablonu bez ?demo, se svým ID relace SSN. Přidejte i heslo relace, pokud je nastavené.
  3. Ověřte stránku v prohlížeči a přidejte stejnou URL jako zdroj Prohlížeč v OBS, například 1000 × 800. Přidejte &clean pro skrytí dat, stavu spojení a ovládacích tlačítek.
https://socialstream.ninja/games/templates/coin-rocket.html?session=YOUR_SESSION&password=YOUR_PASSWORD&clean

Na beta webu ponechte /beta/ před games/. Není-li heslo nastavené, parametr vynechte. Odkazy relace nezveřejňujte.

Výchozí spojení používá stejný iframe most jako překryvy SSN. Pro hostovanou WebSocket cestu zachyceného chatu zapněte v SSN Odesílat zprávy z rozšíření do doku přes server a připojte &server2. Viz Průvodce WebSocket pro místní nastavení; šablony přijímají také &server2&localserver a &localserverport=3000. localserver sám cestu nezapne. Starší server používá jiný kanál a může záviset na docku, který do něj publikuje.

Vytvořte si vlastní kopii

Stáhnout zdrojový ZIP beta verze a rozbalte jej. Upravte soubory v games/templates/, se zachováním struktury složek: šablony načítají také js/local-server-url.js, a cíl podpory načítá currency.js z kořenové složky repozitáře.

Rozbalenou složku zpřístupněte místním webovým serverem. Pokud máte Python, spusťte z této složky:

python -m http.server 8080 --bind 127.0.0.1

Poté použijte http://127.0.0.1:8080/games/templates/coin-rocket.html?session=YOUR_SESSION v prohlížeči nebo OBS. Při hostování jinde zachovejte relativní cesty. Není potřeba sestavení.

Jak vybrat počet mincí pro akci?

Než vyberete číslo, rozhodněte se, co chcete měřit:

PravidloPřečtětePříklad
Jednotky platformyTikTok meta.coinsPerGift × meta.tiktokGiftCount , pokud je dodáno, nebo výslovnou hodnotu hasDonation s popiskem jako 10 coins, 100 bits, nebo 100 Stars.Každých 10 mincí přidá zrychlení.
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 odhad USD.
Srovnatelná hodnota podporygetDonationValueUSD(data) z currency.js.Každý odhadovaný dolar přidá 10 paliva; 25 dolarů dokončí cíl.
Bezplatná akce nebo členstvíSkutečná hodnota ze zdroje v event, nebo příkaz chatu.Sledování vypěstuje strom; nové předplatné spustí animaci.

Rozhodněte, zda částka znamená přesně (coins === 10), nebo minimum na událost (coins >= 10), případně průběžný zůstatek. Raketa používá průběžný zůstatek: 25 mincí znamená dvě zrychlení a pět mincí zbude. Pravidlo „přesně 10“ by 25 mincí ignorovalo. Má-li událost vybrat jednu z více akcí, kontrolujte nejvyšší práh jako první, aby se nespustily všechny nižší úrovně.

Na TikToku diváci kupují mince a utrácejí je za dárky s uvedenou cenou. Vyberte dárky dostupné ve svém LIVE a před zveřejněním pravidla ověřte data. Název dárku, počet dárků, mince a diamanty jsou odlišné míry. Neodvozujte „přesné mince“ z odhadu USD ani nezaměňujte diamanty za mince. Vysvětlení mincí a dárků od TikToku.

Pokud zdroj dodá jen název/počet dárků nebo údaj v diamantech, mincová šablona událost přeskočí, nemá-li výslovná metadata mincí. Použijte pravidlo konkrétního dárku nebo šablonu odhadovaných USD. Metadata mohou pocházet také z mapování dárků SSN; záleží-li na přesné ceně, porovnejte je s aktuální nabídkou LIVE. Katalogy a způsoby zachytávání se liší; žádné univerzální pole mincí není zaručeno v každé zprávě TikTok.

Co posílají jednotlivé platformy

type určuje zdroj; event označuje akci, je-li přítomné. Dostupnost závisí na režimu, nastavení a datech platformy. Příklady popisují současný kód SSN, nezaručují všechny události pro každý účet.

PlatformaData podpory a událostíRozlišujte
TikToktype: "tiktok", event: "gift". Zachytávání příspěvků může dodat hasDonation a donoValue. Metadata mohou obsahovat ID, název, počet, mince či diamanty na dárek a identifikátor série.Za mince se kupují dárky; diamanty jsou odměny tvůrců. SSApp při zachytávání přes WebSocket nejprve dokončí sérii; prohlížeč může posílat kumulativní aktualizace. Vypnutím zachytávání příspěvků TikTok mohou dárky přijít bez peněžních polí.
TwitchCheers používají bity, například hasDonation: "100 bits". Zachytávání přes API může používat event: "cheer" a donoValue: 1; zachytávání vykresleného chatu nemusí mít značku události.Předplatné, darovaná předplatná, raidy a body kanálu jsou samostatné akce. Odznak předplatitele u běžné zprávy neznamená nové předplatné. Přímé Cheers a bity v rozšířeních Twitch jsou různé integrace.
FacebookViditelné řádky hvězd Live Chat dodávají například hasDonation: "100 Stars" a donoValue: 1, bez event .API komentářů neodvozuje hvězdy z textu. Zachytávání DOM potřebuje viditelný řádek hvězd; obyčejné komentáře a reakce nedokládají zaplacenou částku.
YouTubesuperchat a supersticker nesou původní měnovou částku v hasDonation. Dárky používají jeweldonation s N Jewels, nebo 1 YouTube Gift , když je částka skrytá.Diváci utrácejí klenoty za dárky, tvůrci získávají rubíny. Členství a darovaná členství jsou jiné události, nikoli klenoty. Super Thanks je samostatný produkt a nezaručuje událost příspěvku v živém chatu.

Zdroje 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. Terminologie ověřena 29. září 2026; aktuální podmínky a dostupnost najdete na stránkách platforem.

Jiné zdroje mohou hlásit spropitné, dárky, členství či nákupy. Prohlédněte si přehled událostí než je přidáte do filtru šablony isSupport . Prodej zboží nebo darované předplatné není automaticky spropitné. YouTube například rozlišuje nákup dárku a oznámení příjemci o uplatnění; započtení obou by stejný dárek odměnilo dvakrát.

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

hasDonation je původní zobrazovaný popisek, například €5.00 nebo 100 bits. donoValue je volitelná číselná částka USD ze zdroje. Před odhadem z popisku respektujte platnou zadanou hodnotu včetně nuly. Původní popisek zachovejte pro zobrazení.

<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>

Současné chování převodu: SSN nyní odhaduje minci TikTok na 0,01 USD, diamant na 0,005 USD, bit Twitch nebo hvězdu Facebook na 0,01 USD a klenot YouTube na 0,005 USD. Dárek TikTok bez ceny se počítá jako jedna mince za kus; dárek YouTube bez počtu klenotů používá vlastní náhradní odhad 0,01 USD. Měny se také převádějí interními přibližnými kurzy, nikoli živou kurzovní službou.

Jde o porovnávací hodnoty SSN, ne o společnou definici útraty diváka, čistého příjmu tvůrce nebo zůstatku k výběru. Různé způsoby zachytávání mohou dát jiné odhady. Náhradní jedna mince za neznámý dárek TikTok zejména nedokazuje jeho cenu.

Nepoužívejte donoValue || convertToUSD(...): tím by se zahodila záměrná nula. Nezískávejte číslice z chatmessage pro zjištění plateb ani nevyžadujte značku event === "donation": hvězdy Facebook a některé Cheers nemají značku události. Šablona cíle nejprve vybere typy podpory a pak zavolá společný převodník.

Zdroj: currency.js a popis dat. Metadata dárků jsou volitelná; příklady nevymýšlejí chybějící pole.

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

TikTok může hlásit kumulativní počty 1, 2, 3 v jedné sérii. Jsou to tři dárky, ne šest. U sčítacích akcí si pamatujte nejvyšší přijatý počet nebo částku a přidejte jen nárůst. Závěrečná aktualizace se stejným součtem nic nepřidává.

// 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řednostně používá nativní ID skupiny/odesílatele/dárku TikTok, poté meta.tiktokGiftStreakId nebo ID zpráv. Běžná ID také potlačují opakované doručení. Funkce nečeká na repeatEnd , protože prohlížeč toto pole nemusí nikdy dodat. Jediná akce po dokončení série vyžaduje samostatné pravidlo ukončení z polí, která spojení skutečně posílá.

Výukové šablony drží v paměti nejvýše 2 000 identifikátorů. Reset a obnovení stránky vymažou paměť i postup. Bez stabilních ID nelze spolehlivě odstranit duplicity; druhé zachytávání stejného kanálu může mít jiná ID. Začněte jednou cestou. Raketa seskupuje zůstatky podle platformy a ID uživatele, případně zobrazovaného jména; shodná jména mohou bez ID sdílet zůstatek. Pro trvalou hru přidejte ukládání stavu a obsluhu opakování, než budete spoléhat na zachování placených odměn po restartu.

Odměny bez vlastní hry

V části Event Flow, použijte Porovnat vlastnost s donoValue, větší nebo rovno, a práh v USD. Poté připojte zvuk, animaci nebo ovládání OBS. Porovnání upřednostní platnou hodnotu ze zdroje a podle potřeby použije stávající převod měn.

Pro konkrétní dárek TikTok porovnejte meta.giftId nebo meta.giftName, a omezte tok na události dárků TikTok. Číselná porovnání pole hasDonation se také vyhodnocují v USD; nejde o přímé porovnání mincí. Pro pravidla v mincích použijte nativní metadata nebo vlastní kód.

Práh vyhodnocený pro každou zprávu není totéž co průběžný zůstatek nebo počítadlo série. Nepředpokládejte, že práh Event Flow automaticky sčítá a odstraňuje duplicity jako šablona. Použijte stavové uzly , když tok potřebuje stav, nebo ponechte logiku ve hře.

Vyzkoušejte před zapojením placené akce

  1. Použijte ukázková tlačítka. Série 1 → 2 → 3 má přidat hodnotu tří dárků; výslovná nula nemá přidat USD; neznámá cena nemá přidat přesné mince.
  2. Připojte skutečný zdroj a prohlédněte zachycená data. Ověřte název/ID dárku, částku/jednotku, počet a očekávanou událost. Ukázka ověřuje pravidlo, nikoli živé zachytávání platformy.
  3. Ověřte ve scéně OBS opakované události, opětovné připojení a obnovení stránky. Nevypínejte ani neobnovujte zdroj Prohlížeč, pokud chcete zachovat hru v paměti.

U hry bez obsluhy nebo AFK musí SSN, zachytávání i stránka hry zůstat spuštěné. Uspání počítače, vypršení přihlášení nebo odpojení akce přeruší; šablony nedoplní zmeškané události ani neřeší vrácení peněz. Automatické reakce neznamenají oprávnění zpeněžit vysílání bez obsluhy: ověřte aktuální pravidla LIVE a monetizace pro daný formát.

Pokud nic nepřichází, zkontrolujte dock SSN, pak relaci/heslo a přenos. Přichází-li chat, ale dárek neodpovídá, prohlédněte data a filtry příspěvků/událostí. Dostupnost sledování a předplatného se liší podle zdroje; viz přehled událostí. Podrobnosti o připojení najdete v vlastní překryvy.