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.
For a new visual design, see customize a game and run it locally.
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
COSTv 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_USDnebo 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
!waterv chatu přidá vodu. NastavteGIFT_IDna zachycené ID nebo nastavteGIFT_NAMEna 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í
- 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í.
- Otevřete šablonu bez
?demo, se svým ID relace SSN. Přidejte i heslo relace, pokud je nastavené. - 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
&cleanpro 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.
Drag the starter HTML into Chrome or Edge and copy its file:/// address. Add everything from ? onward in your working SSN game link, including your session and any password. Open that address in your browser, then paste it into an OBS Browser Source's URL field with Místní soubor unchecked. OBS saves this address for next time.
file:///C:/SSN/social_stream-beta/games/templates/coin-rocket.html?session=YOUR_SESSION&clean
Use the actual path on your computer. Keep the extracted folder in the same place; there is no server to install or start. See the file setup guide for more examples.
Customize a game design and run it locally
Use the three starters above for a new game, or copy the exact page you use from games/. games.html a battle.html also have their own game behavior; the starters' rule constants are not a universal game API.
Download the source ZIP, extract it, and duplicate the chosen HTML beside the original. For example, keep my-rocket.html v games/templates/, s starter.js, starter.css, root js/ helpers, and any referenced images or audio in place. Give the AI those files and docs/event-reference.html.
Open your copy directly from disk using the file setup steps. An example address for the edited starter is:
file:///C:/SSN/social_stream-beta/games/templates/my-rocket.html?session=YOUR_SESSION&clean
Use your actual generated link's session, password, and transport options. Remove demo for live input; keep clean on these starters to hide the operator tools. The session is the SSN connection ID, not the game name. Keep SSN and capture running.
In OBS, leave Místní soubor unchecked and paste your full file address into the Browser Source's URL field. After saving a design change, refresh the source to load it.
AI design prompt
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.
Test in demo mode with the starter's buttons, including repeated streak updates and a zero-value override. Then test the actual event route with your session, and finally the OBS source at its intended size. Check both gameplay and safe rendering; a working animation alone does not verify the game rules.
Jak vybrat počet mincí pro akci?
Než vyberete číslo, rozhodněte se, co chcete měřit:
| Pravidlo | Přečtěte | Příklad |
|---|---|---|
| Jednotky platformy | TikTok 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árek | TikTok 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 podpory | getDonationValueUSD(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.
| Platforma | Data podpory a událostí | Rozlišujte |
|---|---|---|
| TikTok | type: "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í. |
| Twitch | Cheers 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. |
Viditelné řá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. | |
| YouTube | superchat 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
- 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.
- 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.
- 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.