GOTV na serveru Counter-Strike 2 dělá dvě věci: přenáší zpožděný živý přenos, ke kterému se mohou připojit diváci, a nahrává dema toho, co se stalo. Zapni ho přes tv_enable 1 v server.cfg, dej mu vlastní UDP port přes tv_port, nastav tv_delay na počet sekund, o které mají diváci za hrou zaostávat, a přidej tv_autorecord 1, pokud chceš mít soubor .dem ke každému zápasu, aniž bys na to myslel. Změna se projeví při dalším načtení mapy, ne okamžitě. Dema se zapisují do game/csgo/ a celá soutěžní mapa má obvykle 100-300 MB, takže to, na co lidé zapomínají, není nahrávání - je to mazání. Tento návod pokrývá cvary, nahrávání ručně i automaticky, sledování a to, jak zabránit demům, aby zaplnila disk.
Co GOTV vlastně je#
GOTV je zvláštní divácký klient, který běží uvnitř procesu serveru. Připojí se jako bot pojmenovaný podle tv_name, vidí všechno, co by viděl divák s plnými informacemi, drží to v bufferu tv_delay sekund a s tím proudem pak dělá dvě věci: posílá ho všem připojeným na port GOTV a, pokud nahrává, zapisuje ho na disk.
Takový návrh vysvětluje většinu jeho chování:
- Začíná s mapou. GOTV vzniká při načtení mapy. Nastavení
tv_enable 1uprostřed mapy nic neudělá až do další změny mapy nebo restartu. - Je zpožděné pro všechny. Diváci i nahrávač vidí proud z bufferu. Demo není zpožděné vůči hře způsobem, který by měl pro rozbor význam, ale živý divák vidí události o
tv_delaysekund později. - Něco stojí. Balení úplného snímku pro GOTV v každém ticku a jeho buffering je skutečná práce. Na serveru s 10 sloty je malá; na vytíženém komunitním serveru s připojenými diváky je znatelná.
- Může zabrat slot. Bot GOTV se objeví v seznamu hráčů. Ve většině buildů se počítá do limitu hráčů serveru, takže desetihráčový zápasový server s GOTV se spouští s místem pro jednoho navíc.
GOTV není náhrada anti-cheatu, ale demo je jediný spolehlivý důkaz, který komunitní server má. Soutěžní zápasový server CS2 ukazuje GOTV v kontextu kompletního nastavení zápasu; tento příspěvek jde do GOTV hlouběji.
Cvary tv_, na kterých záleží#
Patří do game/csgo/cfg/server.cfg. Na rozdíl od kolových cvarů mp_ je konfigurace herních režimů neresetují, takže server.cfg je správné místo. Který soubor vyhrává u kterých nastavení, vysvětlují příkazy a cvary serveru CS2.
| Cvar | Co dělá | Typická hodnota |
|---|---|---|
tv_enable | Zapne GOTV při dalším načtení mapy | 1 |
tv_port | UDP port, na který se připojují diváci | 27020 nebo tvoje druhé přidělení |
tv_delay | Zpoždění vysílání v sekundách | 0 jen pro dema, 90-120 s živými diváky |
tv_delaymapchange | Drží změnu mapy, dokud zpožděný proud nedoběhne | 1 |
tv_autorecord | Nahrává automaticky každý zápas | 1 na zápasových a scrim serverech |
tv_maxclients | Počet diváků povolených na tomto GOTV | 10, nebo 0 pro zákaz živého sledování |
tv_name | Jméno bota GOTV | název serveru plus GOTV |
tv_title | Titulek zobrazený divákům | cokoli |
tv_password | Heslo pro diváky | nastav na soukromém serveru |
tv_relaypassword | Heslo pro další relay GOTV | nastav, nebo relay nepoužívej |
tv_snapshotrate | Počet snímků za sekundu posílaných do GOTV | nech výchozí, pokud nevíš proč |
tv_maxrate | Strop šířky pásma na diváka | nech výchozí |
Funkční blok pro zápasový server:
tv_enable 1tv_port 27020tv_delay 90tv_delaymapchange 1tv_autorecord 1tv_maxclients 10tv_name "Longship GOTV"tv_title "Longship scrims"tv_password "spectate-only-7731"tv_relaypassword "relay-only-1902"Výchozí hodnoty se změnily mezi CS:GO a CS2 i mezi buildy CS2, takže chceš-li vědět, na co je cvar na tvém serveru nastaven, napiš jeho název do konzole bez hodnoty; vypíše aktuální i výchozí hodnotu.
Volba zpoždění#
tv_delay je nastavení, které se pokazí oběma směry.
| Situace | tv_delay | Důvod |
|---|---|---|
| Jen dema, nikdo nesleduje živě | 0 | Žádné riziko ghostingu, demo je na konci mapy kompletní |
| Komentátoři nebo kamarádi sledují scrim | 90-120 | Zabrání komukoli posílat informace zpět |
| Veřejný casual server | 30-60 | Diváci jsou neškodní, drž přenos čerstvý |
| Vysílání ve stylu oficiálních zápasů | 105 nebo víc | Soutěžní konvence |
Zpoždění má na konci mapy vedlejší účinek. S 90sekundovým zpožděním ještě poslední kolo není odvysíláno, když mapa skončí. Bez tv_delaymapchange 1 se mapa změní hned, proud GOTV se přeruší a demo o poslední kolo přijde. Se zapnutou volbou server počká, až vysílání doběhne, než změní mapu - což znamená, že hráči vidí výsledkovou tabuli déle, než čekají. To je správná výměna.
Velké zpoždění stojí i paměť: server drží v bufferu celé okno zpoždění. Při 90 sekundách na desetihráčovém serveru je to skromné; při několika minutách na plném serveru to stojí za sledování v grafu paměti.
Porty a připojení ke GOTV#
GOTV poslouchá na vlastním UDP portu. Diváci se k němu připojují přesně jako k serveru:
connect 203.0.113.10:27020password spectate-only-7731Heslo nastav před připojením přes password <value> v konzoli klienta, jinak je připojení odmítnuto. Diváci skončí ve volné kameře se zpožděným proudem a nemohou do hry nijak zasahovat.
| Port | Protokol | Účel |
|---|---|---|
27015 | UDP | Herní provoz a dotazy Steamu |
27015 | TCP | RCON, je-li zapnutý |
27020 | UDP | GOTV, nastavuje se přes tv_port |
Na hostingu s panelem jsou čísla portů ta, která server dostal přidělená, ne nutně 27015 a 27020. Zkontroluj druhé přidělení na záložce Network a nastav tv_port na přesně to číslo; tv_port, který server nedostal, je GOTV, na které se nikdo nedostane. Na RE:NODE má každý tarif CS2 právě proto dvě přidělení portů - hra a GOTV dostanou každé jedno. Porty herních serverů vysvětleně popisují, co je přidělení a jak ho otestovat zvenku.
Nahrávání dem automaticky i ručně#
tv_autorecord 1 spustí nahrávání, když zápas začne naostro, a zastaví ho, když mapa skončí. Název souboru obsahuje datum, čas a mapu, takže se dema ve složce řadí chronologicky. Pro scrim nebo zápasový server je to správné nastavení: každý zápas je nahraný a nikdo si nemusí nic pamatovat.
Ruční nahrávání jsou tři příkazy:
tv_record scrim_2026-10-07_miragetv_stoprecordtv_statustv_record <name> spustí demo s tímto názvem (.dem se přidá), tv_stoprecord ho ukončí a tv_status vypíše, jestli je GOTV aktivní, kolik diváků je připojeno a jestli běží nahrávání. Pokud si tv_record stěžuje, že GOTV není aktivní, tv_enable bylo nastaveno až po načtení mapy - změň mapu a zkus to znovu.
Zápasové pluginy to obvykle přebírají. MatchZy, běžný zápasový plugin na CounterStrikeSharp, nahrává demo na každou mapu, když zápas začne naostro, a po skončení mapy ho umí nahrát na HTTP endpoint, s vlastními nastaveními pro složku dem a formát názvu souboru. Pokud používáš zápasový plugin, nech nahrávání na něm a tv_autorecord nech vypnuté, jinak můžeš skončit se dvěma nahrávkami téže mapy. README pluginu uvádí přesné názvy nastavení pro verzi, kterou instaluješ.
Co demo obsahuje a co ne
Demo z GOTV obsahuje všechno, co server do GOTV poslal: pozice hráčů, úhly pohledu, zbraně, granáty, chat a výsledkovou tabuli. Je to záznam na straně serveru, takže ukazuje, kde hráči skutečně byli, ne co viděl jeden klient. Proto se hodí na kontrolu podezření z cheatování a na taktický rozbor.
Ve výchozím stavu neobsahuje hlas a není to video. Chceš-li sdílet klip, někdo demo přehraje v klientovi a nahraje obrazovku.
Sledování dem#
Zkopíruj soubor .dem do složky game/csgo na klientovi a v konzoli napiš:
playdemo scrim_2026-10-07_miragedemouidemo_timescale 2demo_gototick 64000playdemo ho načte (přípona není potřeba), demoui otevře ovládání přehrávání, demo_timescale mění rychlost a demo_gototick skočí na tick - při 64 tick je jedna minuta 3 840 ticků. Dema nahraná na jedné verzi CS2 se obvykle přehrají i na další, ale velké aktualizace už přehrávání starších dem rozbily. Pokud na demu záleží - odvolání proti banu, spor na turnaji - zkontroluj ho rychle, ne za půl roku.
Použití dem při řešení hlášení o cheatování#
Nejcennější věc, kterou demo na komunitním serveru dělá, je, že z „ten je evidentně cheater“ udělá něco, na co se dá podívat. Postup, který drží férovost:
- Poznamenej si čas, mapu a jméno podezřelého, když hlášení přijde. Se zapnutým
tv_autorecordto identifikuje soubor dema. - Stáhni demo, až mapa skončí, nikdy ne, dokud se ještě zapisuje.
- Sleduj podezřelého z first person v normální rychlosti několik kol, potom v poloviční rychlosti kolem podezřelých momentů. Dívej se, kde je zaměřovač, než je nepřítel viditelný, ne na samotný kill.
- Přepni na volnou kameru a sleduj, co podezřelý mohl skutečně vidět. Pre-aim skrz zeď je podezřelý, jen když tomu nic nenasvědčovalo - žádný zvuk, žádné volání spoluhráče, žádný běžný úhel.
- Požádej druhého admina, aby se podíval, aniž bys mu řekl svůj závěr.
Zapiš si čísla ticků důležitých momentů, aby na ně další kontrolující mohl skočit rovnou přes demo_gototick. Odvolání proti banu se změní v krátký rozhovor, když je odpověď „podívej se na tick 41 200 a řekni mi, co vidíš“. Demo uchovej, dokud platí ban. Dema ze serveru se zpochybňují mnohem hůř než nahrávka z klienta samotného hráče, a to je celý důvod provozovat GOTV na serveru, kterému diváci nevadí. Lidskou stránku řešení hlášení pokrývají pravidla serveru, moderování a tým.
Komentování, turnaje a větší publikum#
Jedno GOTV přijme až tv_maxclients diváků a každého z nich obsluhuje samotný herní server. Pro scrim se dvěma komentátory a koučem je to v pořádku. Pro stovky diváků ne, protože provoz diváků soupeří se zápasem o CPU a síť serveru.
Pro škálování existují dva mechanismy. Relay jsou další instance GOTV, které se připojí k hlavnímu GOTV - ověřené přes tv_relaypassword - a přenos dál servírují svým divákům, takže herní server krmí jen jedno relay místo davu. A GOTV může vysílat přes HTTP pomocí rodiny cvarů tv_broadcast, čímž velké turnajové přenosy doručují divácký přenos ze hry přes běžnou webovou infrastrukturu. Obojí se mezi CS:GO a CS2 změnilo a míří na pořadatele s vlastní infrastrukturou; pokud pořádáš ligu, přečti si aktuální dokumentaci Valve, ne žádný blogový příspěvek, tento nevyjímaje.
Pro komunitní turnaj je praktická odpověď jednodušší: jedno GOTV s 90sekundovým zpožděním a heslem sdíleným s komentátory a k tomu streamer, který přenos ukazuje na video platformě. Diváci sledují stream, ne server, a zápasový server krmí jen hrstku diváků.
Úložiště: velikost, uchovávání a úklid#
Dema se zapisují vedle herních souborů do game/csgo/, pokud je jinam nepošle plugin. Na disku nejsou komprimovaná.
| Co | Přibližná velikost při 64 tick |
|---|---|
| Jedna soutěžní mapa, MR12, 10 hráčů | 100-300 MB |
| Jeden večer se třemi scrim mapami | 0,5-1 GB |
| Měsíc každovečerních scrimů | 15-30 GB |
Veřejný casual server se zapnutým tv_autorecord | roste s každou mapou, celý den |
Ten poslední řádek je past. Na veřejném serveru, který běží celý den, tv_autorecord 1 nahrává každou mapu a disk se zaplní za dny. Buď ho na veřejných serverech vypni a nahrávej ručně, když je důvod, nebo měj přísnou rutinu úklidu.
Rutina úklidu, která funguje na jakémkoli hostingu:
- Rozhodni se pro dobu uchovávání - pro komunitní server stačí dva až čtyři týdny.
- Stáhni dema, která chceš zachovat, než okno uplyne; zápasová dema, která stojí za uchování, patří na úložiště, které ovládáš, ne na herní server.
- Zbytek smaž. Ve správci souborů seřaď podle data a maž hromadně; přes SFTP může skript na tvém počítači vypsat a smazat soubory starší než okno.
- Po každém dni s aktualizací zkontroluj volné místo na disku. Aktualizace CS2 jsou velké a disk skoro plný dem je nejčastější důvod, proč aktualizace selže v půlce.
Na RE:NODE k tomu funguje správce souborů i SFTP a záložka Schedules umí spouštět příkazy konzole, zálohy a akce napájení podle výrazu cron - hodí se na restart, ale shellové příkazy nespouští, takže mazání souborů zůstává ruční nebo jde přes plugin, který dema nahraje a odstraní. Zálohy serveru CS2 by také neměly obsahovat gigabajty starých dem; před ruční zálohou je smaž, aby slot držel konfiguraci a pluginy, které opravdu potřebuješ. SFTP a správce souborů obsahují podrobnosti o připojení.
Řešení potíží#
Žádné demo se nenahrálo. tv_enable bylo nastaveno po načtení mapy, takže GOTV nikdy nenastartovalo. Dej ho do server.cfg, změň mapu a zkontroluj tv_status.
Demu chybí poslední kolo. tv_delaymapchange je vypnuté a zpoždění je nad nulou, takže se mapa změnila dřív, než vysílání doběhlo. Zapni ho.
Diváci se nemohou připojit ke GOTV. tv_port neodpovídá portu, který server dostal přidělený, port není otevřený, nebo je nastavené heslo a divák ho nezadal. Zkontroluj záložku Network a řádek v konzoli, který GOTV vypíše při načtení mapy.
Server je plný o jednoho hráče dřív. Slot zabírá bot GOTV. Zvyš -maxplayers o jedna.
Demo se nepřehraje. Bylo nahrané na starší verzi CS2, nebo bylo zkopírováno, zatímco se ještě zapisovalo. Počkej, až mapa skončí, než ho stáhneš, a důležitá dema kontroluj brzy po nahrání.
Disk je plný a server se neaktualizuje. Stará dema. Smaž je a spusť aktualizaci znovu. Jak vypadá neúspěšná smyčka aktualizace zvenku, popisuje co dělat, když se herní server pořád restartuje.
FAQ#
Kde se ukládají dema GOTV z CS2?
Do game/csgo/ uvnitř instalace serveru, s datem, časem a mapou v názvu, pokud je zapnuté tv_autorecord, nebo s názvem, který jsi dal tv_record. Zápasové pluginy je mohou zapisovat do jiné složky; zkontroluj nastavení cesty k demům v pluginu.
Dělá GOTV server laggovější?
Trochu. GOTV balí snímek v každém ticku a drží v bufferu okno zpoždění, což stojí něco CPU a paměti. Na desetihráčovém zápasovém serveru to není znát; na vytíženém veřejném serveru s mnoha diváky může být, a tv_maxclients tu část omezuje.
Má být tv_delay 0, nebo 90?
0, pokud nikdo nesleduje živě a chceš jen dema. 90 nebo víc, pokud může někdo za zápasu sledovat, protože divák s nulovým zpožděním může týmu předávat pozice.
Mohu nahrát demo bez GOTV?
Na straně serveru ne. Hráči si mohou nahrát vlastní demo na straně klienta přes record <name> ve své konzoli, ale to ukazuje jen jejich pohled a síťový stav. Pro férový záznam zápasu je nástrojem GOTV.
Jak dlouho mám dema uchovávat?
Dost dlouho na vyřešení sporů - pro komunitní server dva až čtyři týdny. Dema z turnajů a týkající se banů uchovávej bez omezení, ale na úložišti, které ovládáš, ne na herním serveru.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.