GOTV на сервере Counter-Strike 2 выполняет две задачи: ретранслирует трансляцию с задержкой, к которой могут подключаться зрители, и записывает демо происходящего. Включите его через tv_enable 1 в server.cfg, выделите ему собственный UDP-порт через tv_port, задайте в tv_delay число секунд, на которое зрители должны отставать от игры, и добавьте tv_autorecord 1, если хотите получать файл .dem для каждого матча, не думая об этом. Изменение применяется при следующей загрузке карты, а не сразу. Демо записываются в game/csgo/, и полная соревновательная карта обычно занимает 100-300 МБ, так что люди забывают не про запись, а про удаление. В этом руководстве - cvars, ручная и автоматическая запись, просмотр и то, как не дать демо заполнить диск.
Что такое GOTV на самом деле#
GOTV - это особый клиент-зритель, который работает внутри процесса сервера. Он заходит как бот с именем из tv_name, видит всё, что видел бы зритель с полной информацией, буферизует это на tv_delay секунд и затем делает с этим потоком две вещи: отправляет его всем, кто подключён к порту GOTV, и, если идёт запись, пишет его на диск.
Такое устройство объясняет большую часть его поведения:
- Он запускается вместе с картой. GOTV создаётся при загрузке карты. Установка
tv_enable 1посреди карты ничего не делает до следующей смены карты или перезапуска. - Он задержан для всех. И зрители, и запись получают буферизованный поток. Демо не задерживается относительно игры так, чтобы это мешало разбору, но зритель в прямом эфире видит события с опозданием на
tv_delayсекунд. - Он чего-то стоит серверу. Упаковка полного снимка для GOTV каждый tick и его буферизация - реальная работа. На сервере на 10 слотов это немного; на загруженном сервере сообщества с подключёнными зрителями это заметно.
- Он может занимать слот. Бот GOTV виден в списке игроков. На большинстве сборок он учитывается в лимите игроков сервера, поэтому сервер для матча 5 на 5 с GOTV запускают с запасом на одного.
GOTV не заменяет анти-чит, но демо - единственное надёжное доказательство, которое есть у сервера сообщества. Статья сервер CS2 для соревновательных матчей показывает GOTV в контексте полной настройки матчей; здесь речь идёт глубже о самом GOTV.
Важные cvars tv_#
Им место в game/csgo/cfg/server.cfg. В отличие от cvars раундов mp_, конфиги игровых режимов их не сбрасывают, так что server.cfg - правильное место. Какой файл побеждает для каких настроек, объясняет статья команды и cvars сервера CS2.
| Cvar | Что делает | Обычное значение |
|---|---|---|
tv_enable | Включает GOTV при следующей загрузке карты | 1 |
tv_port | UDP-порт, к которому подключаются зрители | 27020 или ваш второй выделенный порт |
tv_delay | Задержка трансляции в секундах | 0 только для демо, 90-120 при зрителях в прямом эфире |
tv_delaymapchange | Задерживает смену карты, пока поток с задержкой не догонит | 1 |
tv_autorecord | Автоматически записывает каждый матч | 1 на серверах матчей и скримов |
tv_maxclients | Сколько зрителей допускает этот GOTV | 10 или 0, чтобы запретить просмотр в прямом эфире |
tv_name | Имя бота GOTV | имя сервера плюс GOTV |
tv_title | Заголовок, который видят зрители | что угодно |
tv_password | Пароль для зрителей | задайте на приватном сервере |
tv_relaypassword | Пароль для других ретрансляторов GOTV | задайте или не используйте ретрансляторы |
tv_snapshotrate | Снимков в секунду, отправляемых в GOTV | оставьте по умолчанию, если не знаете зачем |
tv_maxrate | Ограничение полосы на одного зрителя | оставьте по умолчанию |
Рабочий блок для сервера матчей:
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"Значения по умолчанию менялись между CS:GO и CS2 и между сборками CS2, поэтому, если хотите знать, какое значение у cvar на вашем сервере, введите его имя в консоли без значения - выведутся текущее значение и значение по умолчанию.
Выбор задержки#
tv_delay - настройка, которую ошибочно выставляют в обе стороны.
| Ситуация | tv_delay | Причина |
|---|---|---|
| Только демо, в прямом эфире никто не смотрит | 0 | Нет риска подсказок, демо готово к концу карты |
| Комментаторы или друзья смотрят скрим | 90-120 | Никто не сможет передавать информацию обратно |
| Публичный casual-сервер | 30-60 | Зрители безвредны, трансляция остаётся свежей |
| Трансляция в официальном стиле | 105 или больше | Соревновательная традиция |
У задержки есть побочный эффект в конце карты. При задержке 90 секунд последний раунд ещё не транслирован, когда карта заканчивается. Без tv_delaymapchange 1 карта меняется сразу, поток GOTV обрывается, и демо теряет последний раунд. Если настройка включена, сервер ждёт, пока трансляция догонит, и только потом меняет карту - а значит, игроки видят таблицу счёта дольше, чем ожидают. Это правильный компромисс.
Большая задержка стоит ещё и памяти: сервер буферизует всё окно задержки. При 90 секундах на сервере на 10 игроков это немного; при нескольких минутах и заполненном сервере стоит следить за графиком памяти.
Порты и подключение к GOTV#
GOTV слушает собственный UDP-порт. Зрители подключаются к нему точно так же, как к серверу:
connect 203.0.113.10:27020password spectate-only-7731Задайте пароль до подключения командой password <value> в консоли клиента, иначе подключение будет отклонено. Зрители попадают в свободную камеру с задержанным потоком и не могут взаимодействовать с игрой.
| Порт | Протокол | Назначение |
|---|---|---|
27015 | UDP | Игровой трафик и запрос Steam |
27015 | TCP | RCON, если включён |
27020 | UDP | GOTV, задаётся через tv_port |
На хостинге с панелью номера портов - те, что выделены серверу, и это не обязательно 27015 и 27020. Найдите второй выделенный порт на вкладке Network и укажите в tv_port именно этот номер; tv_port, который серверу не выделен, - это GOTV, до которого никто не достучится. На RE:NODE у каждого тарифа CS2 по два выделенных порта именно поэтому - по одному для игры и для GOTV. Что такое выделенный порт и как проверить его снаружи, объясняет статья порты игровых серверов.
Автоматическая и ручная запись демо#
tv_autorecord 1 начинает запись, когда матч стартует, и останавливает её в конце карты. В имя файла входят дата, время и карта, поэтому демо в папке сортируются по времени. Для сервера скримов или матчей это правильная настройка: каждый матч записан, и никому не нужно об этом помнить.
Ручная запись - это три команды:
tv_record scrim_2026-10-07_miragetv_stoprecordtv_statustv_record <name> начинает демо с этим именем (.dem добавляется), tv_stoprecord завершает его, а tv_status показывает, активен ли GOTV, сколько подключено зрителей и идёт ли запись. Если tv_record жалуется, что GOTV не активен, значит tv_enable был выставлен после загрузки карты - смените карту и попробуйте снова.
Обычно это берут на себя плагины матчей. MatchZy, распространённый плагин матчей на CounterStrikeSharp, записывает демо для каждой карты, когда матч стартует, и может загружать его на HTTP-адрес в конце карты, с собственными настройками папки для демо и формата имени файла. Если вы используете плагин матчей, отдайте запись ему и оставьте tv_autorecord выключенным, иначе можно получить две записи одной и той же карты. Точные имена настроек для вашей версии указаны в README плагина.
Что есть в демо, а чего нет
Демо GOTV содержит всё, что сервер отправил в GOTV: позиции игроков, углы обзора, оружие, гранаты, чат и таблицу счёта. Это запись на стороне сервера, поэтому она показывает, где игроки были на самом деле, а не то, что видел один клиент. Поэтому она хороша для проверки подозрений в читах и для тактического разбора.
Голоса по умолчанию в нём нет, и это не видео. Чтобы поделиться клипом, кто-то проигрывает демо в клиенте и записывает экран.
Просмотр демо#
Скопируйте файл .dem в папку game/csgo клиента, затем в консоли:
playdemo scrim_2026-10-07_miragedemouidemo_timescale 2demo_gototick 64000playdemo загружает демо (расширение не нужно), demoui открывает панель управления воспроизведением, demo_timescale меняет скорость, а demo_gototick переходит к tick - при 64 tick одна минута равна 3840 tick. Демо, записанные на одной версии CS2, обычно воспроизводятся на следующей, но крупные обновления уже ломали воспроизведение старых демо. Если демо важно - апелляция на бан, спор на турнире, - разберите его сразу, а не через полгода.
Демо для разбора жалобы на читы#
Самое ценное, что демо делает на сервере сообщества, - превращает «он явно читерит» в то, что можно посмотреть. Порядок, который сохраняет справедливость:
- Когда приходит жалоба, запишите время, карту и имя подозреваемого. Если
tv_autorecordвключён, этого достаточно, чтобы найти файл демо. - Скачивайте демо после окончания карты, а не пока оно ещё записывается.
- Посмотрите подозреваемого от первого лица на обычной скорости несколько раундов, а затем на половинной скорости вокруг подозрительных моментов. Смотрите, где находится прицел до того, как враг становится виден, а не на само убийство.
- Переключитесь на свободную камеру и посмотрите, что подозреваемый действительно мог видеть. Префайр сквозь стену подозрителен, только если его не объясняют звук, подсказка тиммейта или типичный угол.
- Попросите второго админа посмотреть, не сообщая ему своего вывода.
Записывайте номера tick важных моментов, чтобы следующий проверяющий мог сразу перейти туда через demo_gototick. Апелляции на бан становятся коротким разговором, когда ответ звучит как «посмотри tick 41 200 и скажи, что видишь». Храните демо, пока действует бан. С серверными демо спорить гораздо труднее, чем с записью из клиента игрока, и именно ради этого стоит включать GOTV даже на сервере, которому не нужны зрители. Человеческая сторона работы с жалобами описана в статье правила сервера, модерация и команда.
Комментаторы, турниры и большая аудитория#
Один GOTV принимает до tv_maxclients зрителей, и каждого из них обслуживает сам игровой сервер. Для скрима с двумя комментаторами и тренером это нормально. Для аудитории в сотни человек - нет, потому что трафик зрителей конкурирует с матчем за CPU и сеть сервера.
Для масштабирования есть два механизма. Ретрансляторы - это дополнительные экземпляры GOTV, которые подключаются к главному GOTV - с аутентификацией через tv_relaypassword - и раздают поток своим зрителям, так что игровой сервер кормит один ретранслятор, а не толпу. А ещё GOTV умеет транслировать по HTTP через семейство cvars tv_broadcast - так крупные турнирные трансляции доставляют внутриигровой поток зрителя через обычную веб-инфраструктуру. Оба механизма изменились между CS:GO и CS2 и рассчитаны на организаторов с собственной инфраструктурой; если вы проводите лигу, читайте актуальную документацию Valve, а не блоги, включая этот.
Для турнира сообщества практичный ответ проще: один GOTV с задержкой 90 секунд и паролем, известным комментаторам, плюс стример, который показывает трансляцию на видеоплатформе. Зрители смотрят стрим, а не сервер, и сервер матча кормит лишь горстку зрителей.
Хранение: размер, срок и очистка#
Демо записываются рядом с файлами игры в game/csgo/, если плагин не кладёт их в другое место. На диске они не сжимаются.
| Что | Примерный размер при 64 tick |
|---|---|
| Одна соревновательная карта, MR12, 10 игроков | 100-300 МБ |
| Один вечер из трёх карт скримов | 0,5-1 ГБ |
| Месяц ежевечерних скримов | 15-30 ГБ |
Публичный casual-сервер с включённым tv_autorecord | растёт каждую карту, весь день |
Последняя строка - ловушка. На публичном сервере, который работает весь день, tv_autorecord 1 записывает каждую карту, и диск заполняется за несколько дней. Либо выключите автозапись на публичных серверах и записывайте вручную, когда есть причина, либо заведите строгий порядок очистки.
Порядок очистки, который работает на любом хостинге:
- Определите срок хранения - для сервера сообщества хватит двух-четырёх недель.
- Скачайте демо, которые хотите сохранить, до окончания этого срока; демо матчей, которые стоит хранить, место в хранилище под вашим контролем, а не на игровом сервере.
- Удалите остальное. В файловом менеджере отсортируйте по дате и удалите пачкой; через SFTP скрипт на вашей машине может найти и удалить файлы старше срока.
- Проверяйте свободное место после каждого дня обновления. Обновления CS2 большие, а диск, почти заполненный демо, - самая частая причина, по которой обновление обрывается на полпути.
На RE:NODE для этого подходят и файловый менеджер, и SFTP, а вкладка Schedules может запускать консольные команды, backup и действия с питанием по cron-выражению - это полезно для перезапуска, но shell-команды она не выполняет, так что удаление файлов остаётся ручным или идёт через плагин, который загружает и удаляет демо. Backup сервера CS2 тоже не должен включать гигабайты старых демо; очищайте их перед ручным backup, чтобы слот хранил конфигурацию и плагины, которые действительно нужны. Данные для подключения есть в статье SFTP и файловый менеджер.
Решение проблем#
Демо не записалось. tv_enable был выставлен после загрузки карты, поэтому GOTV так и не запустился. Пропишите его в server.cfg, смените карту и проверьте tv_status.
В демо нет последнего раунда. tv_delaymapchange выключен, а задержка больше нуля, поэтому карта сменилась раньше, чем трансляция догнала игру. Включите его.
Зрители не могут подключиться к GOTV. tv_port не совпадает с выделенным серверу портом, порт закрыт или задан пароль, а зритель его не ввёл. Проверьте вкладку Network и строку, которую GOTV выводит в консоль при загрузке карты.
Сервер заполняется на одного игрока раньше. Слот занимает бот GOTV. Увеличьте -maxplayers на единицу.
Демо не воспроизводится. Оно записано на старой версии CS2 или было скопировано, пока ещё записывалось. Дожидайтесь окончания карты перед скачиванием и разбирайте важные демо вскоре после записи.
Диск заполнен, и сервер не обновляется. Старые демо. Удалите их, затем снова запустите обновление. Как цикл неудачных обновлений выглядит снаружи, описано в статье почему игровой сервер постоянно перезапускается.
FAQ#
Где сохраняются демо GOTV в CS2?
В game/csgo/ внутри установки сервера; при включённом tv_autorecord в имени будут дата, время и карта, иначе - имя, которое вы передали в tv_record. Плагины матчей могут писать их в другую папку - проверьте настройку пути к демо в плагине.
Делает ли GOTV сервер более лагающим?
Немного. GOTV упаковывает снимок каждый tick и буферизует окно задержки, а это стоит немного CPU и памяти. На сервере матчей на 10 игроков это незаметно; на загруженном публичном сервере с множеством зрителей может быть заметно, и tv_maxclients ограничивает эту часть.
Ставить tv_delay 0 или 90?
0, если в прямом эфире никто не смотрит и вам нужны только демо. 90 или больше, если кто-то может смотреть во время матча, потому что зритель без задержки может передавать позиции команде.
Можно ли записать демо без GOTV?
На стороне сервера - нет. Игроки могут записать собственное клиентское демо командой record <name> в консоли, но оно показывает только их обзор и сетевое состояние. Для честной записи матча нужен GOTV.
Сколько хранить демо?
Достаточно долго, чтобы разрешать споры, - две-четыре недели для сервера сообщества. Турнирные демо и демо, связанные с банами, храните бессрочно, но в хранилище под вашим контролем, а не на игровом сервере.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.