Параметры запуска сервера CS2 — это то, что читается раньше любого конфига и определяет, каким сервер вообще будет: сколько слотов, в каком режиме, на каком порту, доступен ли RCON. Часть настроек в server.cfg просто не сработает, если соответствующий параметр не был передан при старте, — отсюда и хроническое «прописал, а не применилось».
Как читаются параметры запуска сервера CS2
Сам исполняемый файл лежит в:
game/bin/linuxsteamrt64/cs2Минимально работающая строка выглядит так:
./cs2 -dedicated -console +game_type 0 +game_mode 1 +map de_dust2Различие между префиксами важно:
| Префикс | Примеры | Как работает |
|---|---|---|
| Дефис | -dedicated, -port, -maxplayers, -usercon | Параметры движка, читаются один раз при старте, менять их на лету нельзя |
| Плюс | +map, +game_mode, +sv_setsteamaccount | Консольные команды, которые выполняются сразу после запуска; их же можно вызвать потом в консоли |
На арендованном сервере строку целиком вы, скорее всего, не пишете: в панели управления есть поле дополнительных параметров, а базовая часть подставляется автоматически.
Обязательный минимум
-dedicatedЗапуск в режиме выделенного сервера, без графики. Без него процесс попытается стартовать как клиент.
+map de_dust2Стартовая карта. Без неё сервер поднимется, но повиснет без загруженного уровня.
+game_type 0 +game_mode 1Режим игры. Задаётся именно здесь, потому что должен быть известен до загрузки карты. Все комбинации разобраны в заметке про game_mode и game_type.
+sv_setsteamaccount ВАШ_ТОКЕНGSLT-токен, без которого сервера не будет в браузере. Как получить — в заметке про GSLT-токен.
Сеть
-port 27015
+ip 0.0.0.0-port задаёт основной UDP-порт. Менять его нужно, если на одной машине крутятся несколько серверов: каждому свой порт, и не забудьте, что рядом занимаются соседние порты под GOTV.
+ip определяет, на каком адресе слушать. На хостинге обычно указывается конкретный внешний IP, а не 0.0.0.0, иначе сервер может представиться Steam не тем адресом.
Про смену порта в панели есть отдельная заметка: смена порта игрового сервера.
Слоты
-maxplayers 12Именно параметр запуска реально управляет количеством слотов — в конфиге их не задают. Если вам нужен сервер на 20 человек в казуале или на 12 в матче, ставится -maxplayers с нужным числом; так же он записан, например, в стандартной строке запуска LinuxGSM. Верхний предел игры — 64.
Слоты стоит выставлять по режиму и по памяти сервера:
| Режим | Слотов | Память на ванильном сервере |
|---|---|---|
| Соревновательный 5v5, праки | 10–12 (плюс пара под судей) | 2 ГБ — до 12 игроков |
| Ретейк, напарники, небольшой паблик | 12–24 | 4 ГБ — до 24 |
| Сёрф, бхоп, DM | до 32 | 6 ГБ — до 32 |
| Большой паблик | до 64 | 8 ГБ — до 64, предел игры |
С плагинами CounterStrikeSharp закладывайте примерно в 1,5 раза больше памяти.
RCON и консоль
-usercon
-console-usercon включает возможность подключения по RCON. Без него rcon_password в конфиге ничего не даст — сервер просто не будет слушать RCON-соединения, и вы получите загадочный отказ подключения. Настройка целиком — в заметке про RCON на сервере CS2.
-console включает серверную консоль в терминале.
Конфиги и карты
+exec server.cfgОбычно server.cfg выполняется автоматически при загрузке карты, но явный вызов не помешает — особенно если у вас нестандартное имя конфига.
Для карт из мастерской:
+host_workshop_map 3070744334Сервер сам скачает карту по её ID. Для набора карт используется коллекция:
+host_workshop_collection 123456789Про работу с мастерской подробнее — в заметке про карты из Workshop.
Обычный пул карт задаётся иначе:
+mapgroup mg_activeРазбор — в заметке про mapcycle и mapgroup.
GOTV
+tv_enable 1
+tv_port 27020Порт GOTV должен отличаться от игрового и быть открыт наружу. Все остальные настройки трансляции удобнее держать в конфиге; см. настройку GOTV.
Готовые строки
Соревновательный сервер под матчи:
./cs2 -dedicated -console -usercon -port 27015 -maxplayers 12 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_mirage +sv_setsteamaccount ТОКЕН +exec server.cfgДезматч для разогрева:
./cs2 -dedicated -console -usercon -port 27016 -maxplayers 20 +game_type 1 +game_mode 2 +map de_dust2 +sv_setsteamaccount ТОКЕНСервер под кастомный режим с картой из мастерской:
./cs2 -dedicated -console -usercon -port 27017 -maxplayers 24 +game_type 3 +game_mode 0 +host_workshop_map 3070744334 +sv_setsteamaccount ТОКЕНПро тикрейт
Отдельно, потому что спрашивают постоянно: параметра -tickrate в CS2 нет. Сервер работает с фиксированной частотой, а точность выстрелов и движения обеспечивается субтиковой системой. Строки вроде -tickrate 128 в параметрах CS2-сервера ничего не меняют — их переносят по привычке из гайдов по CS:GO. Подробнее про то, как это устроено, — в статье про тикрейт сервера.
Частые проблемы
Сервер не появляется в браузере. Проверяйте GSLT и открытость порта, а не параметры режима. Разбор — почему CS2-сервер не виден.
RCON отказывает при верном пароле. Забыт -usercon.
Слотов больше или меньше, чем ожидалось. Значение в конфиге перебито режимом; используйте -maxplayers.
Режим сбрасывается после смены карты. Значит, он задан только в конфиге; переносите в строку запуска.
Коротко
Обязательный набор — -dedicated, -usercon, -port, -maxplayers, плюс +game_type, +game_mode, +map и токен. Параметры с дефисом задают поведение процесса, с плюсом — команды после старта. Всё, что относится к правилам игры, лучше держать в конфигах режима, а в строке запуска — только то, что нужно до загрузки карты.
Нужен сервер, где эта строка уже собрана и правится полями в панели — тарифы под CS2 тут.