RE:NODE

Návody12 min čtení

GOTV a dema v CS2: nahrávání a úložiště

Nastavení GOTV na serveru CS2: důležité cvary tv_, zpoždění, automatické i ruční nahrávání dem, živé sledování a hlídání místa na disku.

0 čtenářů

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 1 uprostř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_delay sekund 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.

CvarCo děláTypická hodnota
tv_enableZapne GOTV při dalším načtení mapy1
tv_portUDP port, na který se připojují diváci27020 nebo tvoje druhé přidělení
tv_delayZpoždění vysílání v sekundách0 jen pro dema, 90-120 s živými diváky
tv_delaymapchangeDrží změnu mapy, dokud zpožděný proud nedoběhne1
tv_autorecordNahrává automaticky každý zápas1 na zápasových a scrim serverech
tv_maxclientsPočet diváků povolených na tomto GOTV10, nebo 0 pro zákaz živého sledování
tv_nameJméno bota GOTVnázev serveru plus GOTV
tv_titleTitulek zobrazený divákůmcokoli
tv_passwordHeslo pro divákynastav na soukromém serveru
tv_relaypasswordHeslo pro další relay GOTVnastav, nebo relay nepoužívej
tv_snapshotratePočet snímků za sekundu posílaných do GOTVnech výchozí, pokud nevíš proč
tv_maxrateStrop šířky pásma na divákanech výchozí

Funkční blok pro zápasový server:

game/csgo/cfg/server.cfg
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.

Situacetv_delayDůvod
Jen dema, nikdo nesleduje živě0Žádné riziko ghostingu, demo je na konci mapy kompletní
Komentátoři nebo kamarádi sledují scrim90-120Zabrání komukoli posílat informace zpět
Veřejný casual server30-60Diváci jsou neškodní, drž přenos čerstvý
Vysílání ve stylu oficiálních zápasů105 nebo vícSoutěž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:

code
connect 203.0.113.10:27020password spectate-only-7731

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

PortProtokolÚčel
27015UDPHerní provoz a dotazy Steamu
27015TCPRCON, je-li zapnutý
27020UDPGOTV, 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.

každý tickzpožděný přenostv_autorecord nebo tv_recordHráčiUDP herní portServer CS2živá simulaceKlient GOTVbuffer tv_delayDiváciUDP tv_portSoubor demagame/csgo/*.dem
Kde GOTV sedí uvnitř serveru CS2

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:

code
tv_record scrim_2026-10-07_miragetv_stoprecordtv_status

tv_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š:

code
playdemo scrim_2026-10-07_miragedemouidemo_timescale 2demo_gototick 64000

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

  1. Poznamenej si čas, mapu a jméno podezřelého, když hlášení přijde. Se zapnutým tv_autorecord to identifikuje soubor dema.
  2. Stáhni demo, až mapa skončí, nikdy ne, dokud se ještě zapisuje.
  3. 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.
  4. 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.
  5. 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á.

CoPřibližná velikost při 64 tick
Jedna soutěžní mapa, MR12, 10 hráčů100-300 MB
Jeden večer se třemi scrim mapami0,5-1 GB
Měsíc každovečerních scrimů15-30 GB
Veřejný casual server se zapnutým tv_autorecordroste 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:

  1. Rozhodni se pro dobu uchovávání - pro komunitní server stačí dva až čtyři týdny.
  2. 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.
  3. 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.
  4. 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.

0/2000