GOTV в CS2 решает две задачи: пускает зрителей смотреть матч, не занимая слоты, и пишет демо, по которым потом разбирают спорные моменты. Второе на публичном сервере даже важнее первого — без записей любой спор о читерстве превращается в «мне показалось». Настраивается GOTV десятком конваров, но каждый из них влияет на нагрузку, так что бездумно копировать чужой конфиг не стоит.
Базовое включение GOTV в CS2
Минимум, который нужен для работы трансляции:
tv_enable 1
tv_port 27020
tv_delay 90
tv_name "TeaHost GOTV"
tv_password "watch"
tv_maxclients 20| Конвар | Что делает |
|---|---|
tv_enable 1 | Включает GOTV. Без него остальные конвары бесполезны |
tv_port | Порт трансляции, отличный от игрового и открытый наружу. Классика — игровой 27015, GOTV 27020 |
tv_delay | Задержка трансляции в секундах, о ней ниже |
tv_name | Имя, под которым бот GOTV виден в списке игроков |
tv_password | Пароль для зрителей; пустой — открытая трансляция |
tv_maxclients | Сколько зрителей пустить. Каждый нагружает канал, на слабом аплинке 20 — уже много |
Конвары кладутся в server.cfg, а tv_enable дополнительно дублируют в параметрах запуска, чтобы GOTV поднялся сразу; см. параметры запуска сервера CS2.
Про задержку
tv_delay — самый важный параметр для матчей. Он определяет, насколько трансляция отстаёт от происходящего на сервере.
Логика простая: без задержки зритель видит позиции игроков в реальном времени и может передать их в голосовой чат команде. Это прямой чит, и защита от него — только задержка.
Ориентиры:
tv_delay 30— минимум для полуофициальных матчейtv_delay 90— стандарт для турниров, обычная практикаtv_delay 120и больше — для трансляций с комментаторами, где нужен запас
На тренировочном сервере задержку часто ставят в 0 — там смотреть будут свои, а мгновенная картинка удобнее для разбора. Такой сервер имеет смысл держать отдельно; про него есть материал: CS2-сервер для практики.
Как подключиться зрителю
Из консоли клиента:
connect ip:27020Или, если стоит пароль:
password watch; connect ip:27020Зритель попадает в режим наблюдателя, слоты игрового сервера не расходуются. Переключение между игроками — обычными клавишами наблюдения, свободная камера доступна, если не ограничена конварами.
Автозапись демо
Записи — та часть, ради которой GOTV включают на публичных серверах, даже если смотреть трансляцию никто не собирается.
tv_autorecord 1
tv_delaymapchange 1tv_autorecord 1 включает запись каждого матча автоматически. Файлы .dem появляются в game/csgo/ с именем, включающим дату и карту.
tv_delaymapchange 1 задерживает смену карты до момента, когда GOTV отдал всё, что накопилось в буфере задержки. Без него последние секунды матча просто теряются — а это ровно тот момент, который обычно и нужен.
Ручное управление записью:
tv_record nazvanie_demo
tv_stoprecordПолезно для разовых записей — скрим, тестовая игра, конкретный раунд. Турнирный плагин MatchZy сам запускает и останавливает запись на каждый матч и умеет загружать демо по URL — но только при включённом tv_enable 1.
Хранение и место
Демо копятся быстро. Один матч — десятки мегабайт, за неделю активного публичного сервера набегают гигабайты, и в какой-то момент место на диске кончается ровно посреди матча.
Что с этим делать:
- Настроить автоочистку старых записей — задачу по расписанию, удаляющую
.demстарше двух-трёх недель. Как это ставится, описано в заметке про планировщик задач - Ценные демо (спорные матчи, подозрения на читы) сразу выкачивать через SFTP и хранить отдельно
- Не включать
tv_autorecordна дезматч-сервере, если записи там никому не нужны
Два независимых канала
CS2 поддерживает вторую инстанцию GOTV — с собственным портом и задержкой:
tv_enable1 1
tv_port1 27021
tv_delay1 0Зачем это нужно: первый канал с большой задержкой отдаётся зрителям, второй без задержки — продакшену или наблюдателю-судье. Так делают на турнирах. На обычном сервере вторая инстанция избыточна и просто ест ресурсы.
Влияние на производительность
GOTV — не бесплатная функция. Она забирает часть процессорного времени на формирование потока и заметно нагружает канал: каждый зритель получает полный поток обновлений.
Практические ориентиры:
- Десяток зрителей на обычном сервере проходит незаметно
- Полсотни на слабом канале начинают сказываться на игроках
- Запись демо нагружает диск, а не сеть, и обычно проблем не создаёт
Если сервер под нагрузкой начинает подтормаживать при включённом GOTV — первое, что стоит уменьшить, это tv_maxclients, а не задержку.
Что проверить, если не работает
tv_enableдействительно1— проверьте вызовом конвара в консоли, а не в файле- Порт GOTV открыт наружу. Игровой порт открыт, а соседний — часто нет
- Порт не занят вторым сервером на той же машине
- Пароль совпадает: зритель вводит
passwordдоconnect, а не после - GOTV поднимается при загрузке карты — после правки конфига нужна смена карты или рестарт
Проверять конвары удобнее всего через удалённую консоль; порядок настройки — в заметке про RCON. Более развёрнутый разбор трансляций с примерами конфигов есть в статье про настройку GOTV.
Коротко
Включили tv_enable, дали отдельный порт, поставили задержку по назначению сервера (90 секунд для матчей, 0 для тренировок), включили tv_autorecord вместе с tv_delaymapchange и сразу продумали, куда девать накапливающиеся демо. Дальше GOTV работает сам и вспоминают о нём только тогда, когда нужна запись — и хорошо, если она есть.
Если нужен сервер с доступом к файлам записей через панель и SFTP — тарифы под CS2 здесь.