Настройка кастомных режимов: surf, bhop, deathmatch
Стандартный CS2-сервер из коробки заточен под классику: 5x5, раунды, покупка оружия. Но стоит захотеть surf-полосу, bhop-разминку для прыжковой техники или дэтматч без раундов для тренировки прицела — и половина привычных конваров либо не работает, либо ведёт себя иначе, чем в CS:GO. Разберём по каждому режиму: что реально нужно прописать в конфигах, какие карты и файлы задействовать, и где заканчиваются возможности голых конваров и начинается территория плагинов.
Содержание
Surf: карты, воздух и sv_airaccelerate
Surf держится на двух вещах: специальных картах с наклонными поверхностями (обычные de_ и cs_ карты для этого не подходят — нужна геометрия, заточенная под скольжение) и конваре, который отвечает за ускорение в воздухе.
По умолчанию sv_airaccelerate выставлен слишком низко для комфортного серфинга — стандартное движение "воздухом" на нём практически не работает. Сообщество surf-серверов годами использует значение около 150 как отправную точку — оно даёт ощутимый воздушный контроль, но не превращает игру в невесомость. Некоторые площадки под конкретные стили карт (например, "ramp" против "linear" surf) подстраивают его выше или ниже — тут нет единственно верного числа, экспериментируйте под свою аудиторию.
Базовый набор в server.cfg для surf-режима:
sv_airaccelerate 150
sv_accelerate 5
sv_gravity 800
sv_cheats 0
mp_friendlyfire 0
mp_roundtime 60
mp_maxrounds 0
mp_free_armor 1
Карты ставятся так же, как любые Workshop-карты — через SteamCMD или подписку на коллекцию в Workshop, с прописыванием в gamemodelist и mapcycle. Если ещё не поднимали сервер с нуля и не разбирались с базовой установкой через SteamCMD, GSLT-токеном и systemd-автозапуском — почитайте инструкцию по установке CS2-сервера, там пошагово разобран весь процесс от нуля до рабочего сервера, здесь фокус только на логике режима.
Важный нюанс: sv_airaccelerate в общем server.cfg применится ко всем картам подряд, включая обычные соревновательные, если они тоже есть в ротации. Если сервер смешанный (surf плюс обычные карты), это сломает баланс движения в классике. Решение — per-map конфиги (об этом ниже, в разделе про gamemodes_server.txt).
Bhop: физика прыжков без потери скорости
Bunny hop — это когда игрок прыгает без остановки, сохраняя и набирая скорость воздушными страфами. В CS2 (как и в CS:GO) есть встроенная система "стамины", которая специально мешает бесконечному прыганью: с каждым последующим прыжком высота и скорость немного проседают, если не соблюдать тайминг. Для bhop-сервера это нужно либо смягчить, либо убрать совсем — в зависимости от того, какой стиль вы хотите: "auto bhop" (сервер сам держит прыжок, пока зажат пробел) или "legit" (игрок обязан жать прыжок вручную с точным таймингом).
Конвары, которые отвечают за это:
sv_enablebunnyhopping 1
sv_autobunnyhopping 1
sv_staminamax 0
sv_staminajumpcost 0
sv_staminalandcost 0
sv_staminarecoveryrate 0
sv_airaccelerate 1000
sv_accelerate 10
sv_autobunnyhopping 1 включает автопрыжок — удобно для казуальных bhop-серверов, где игроки просто хотят кататься по трассе без задротства с таймингом. Для "legit"-серверов, где ценится именно скилл нажатия прыжка в нужный момент, ставьте sv_autobunnyhopping 0 и оставляйте sv_enablebunnyhopping 1 — тогда прыжок засчитывается только при ручном нажатии в правильный момент приземления.
Обнулённые стамина-конвары убирают штраф за частые прыжки — без этого даже с включённым bhop игрок будет терять скорость на 4-5 прыжке подряд, и весь смысл режима теряется. sv_airaccelerate для bhop обычно ставят заметно выше, чем для surf, — трассы bhop короче и требуют резких, а не плавных манёвров в воздухе.
Поднять сервер Counter-Strike 2 за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверDeathmatch: респаун без раундов
Классический раундный цикл (купил — умер — жди раунда) в дэтматче не нужен — игроки должны респауниться сразу и без пауз, оттачивая прицел и позиционирование. За это отвечает не один конвар, а связка mp_ параметров.
mp_respawn_on_death_ct 1
mp_respawn_on_death_t 1
mp_respawnwavetime 0
mp_ignore_round_win_conditions 1
mp_roundtime 60
mp_maxrounds 0
mp_free_armor 2
mp_randomspawn 1
mp_randomspawn_los 0
mp_teammates_are_enemies 1
mp_solid_teammates 0
mp_buy_anywhere 1
mp_buytime 9999
mp_startmoney 16000
mp_afterroundmoney 16000
Разберём ключевые:
mp_respawn_on_death_ct/mp_respawn_on_death_t— включают немедленный респаун после смерти для каждой стороны отдельно.mp_ignore_round_win_conditions 1— раунд не завершается по стандартным условиям (все убиты, бомба взорвалась) — это то, что превращает "раунды" в непрерывный поток респаунов.mp_free_armor 2— выдаёт броню и шлем сразу при респауне, без похода в магазин. Значение1даёт только броню без шлема,0— ничего.mp_randomspawn 1— респаун в случайных точках карты, а не в стандартных зонах Т/CT, чтобы не было предсказуемых спавн-килов.mp_teammates_are_enemies 1— превращает режим в free-for-all: свои тоже враги. Уберите этот конвар (или поставьте 0), если хотите классический дэтматч "команда на команду".mp_buy_anywhere 1и большойmp_buytime— покупка оружия в любой точке карты в любой момент, без привязки к раунду.
Отдельно стоит проверить mp_weapons_allow_zeus, mp_weapons_allow_map_placed и лимиты на конкретное оружие через mp_death_drop_gun/mp_death_drop_grenade, если хотите контролировать, что остаётся на карте после смерти — на плотных дэтматч-серверах трупы с оружием быстро захламляют пол.
gamemodes_server.txt и разблокировка нестандартных конваров
Часть конваров в CS2 заблокирована вне определённых игровых режимов — Valve защищает целостность соревновательного и казуального режимов от произвольных твиков. Чтобы surf- и bhop-настройки вроде sv_airaccelerate применялись стабильно, сервер обычно переводят в кастомный game_type/game_mode через файл gamemodes_server.txt (лежит в game/csgo/cfg/), а не пытаются продавить их поверх штатного competitive или casual. Список заблокированных вне custom-режима конваров периодически меняется от патча к патчу — если что-то не применяется, первым делом проверяйте именно это, а не опечатку в команде.
Практичнее всего разносить настройки по картам, а не держать всё в одном server.cfg. CS2 автоматически подхватывает файл cfg/<имя_карты>.cfg при загрузке конкретной карты — туда и кладите специфичные для surf или bhop конвары, а общий server.cfg оставляйте под настройки, одинаковые для всего сервера (порт, хостнейм, RCON-пароль). Так смешанная ротация карт не ломает баланс движения на обычных картах.
Плагины для гибкой кастомизации
Голых конваров хватает для базовой физики движения и правил респауна, но полноценный surf нужен с таймером прохождения, чекпоинтами и телепортом на старт после падения — это уже логика, которую конвары не покрывают. Для этого используют плагины поверх фреймворка Metamod:Source (загрузчик, который встраивается между движком и игрой) и CounterStrikeSharp — актуальную на 2026 год платформу для написания плагинов CS2 на C#/.NET, пришедшую на смену SourceMod-плагинам эпохи CS:GO.
Через CounterStrikeSharp реализуют то, что вручную конварами не собрать: HUD со спидометром и таймером круга для surf, таблицы лидеров и статистику по прыжкам для bhop, кастомные меню оружия и логику урона для дэтматча. Экосистема плагинов под CS2 моложе, чем была у SourceMod под CS:GO, — многие полезные модули community ещё дорабатывает, поэтому перед установкой любого плагина проверяйте, под какую именно версию CounterStrikeSharp и билд сервера он собран: рассинхрон версий — частая причина падения сервера при старте карты.
Типичные грабли и проверка настроек
- Конвар не применился после смены карты. Проверьте, не лежит ли он в общем
server.cfg, который перезаписывается настройками из<mapname>.cfgили самого режима — порядок исполнения конфигов в CS2 важен, более поздний файл переопределяет более ранний. - Workshop-карта не подгружается. Убедитесь, что ID карты (или коллекции) прописан в
gamemodelistи добавлен вmapcycle.txt— простое наличие карты на диске после SteamCMD-загрузки ещё не значит, что сервер знает о её существовании. - Забытый
sv_cheats 1. Иногда его включают для тестов телепорта или noclip и забывают выключить — это дыра в безопасности сервера, обязательно возвращайтеsv_cheats 0перед тем как открывать сервер для игроков. - Проверка значений вживую. Через RCON можно в любой момент свериться с текущим состоянием:
rcon_password <пароль>и затемmp_free_armorбез значения — сервер вернёт текущее значение конвара, это быстрее, чем перезапускать сервер ради проверки. - Смешение режимов на одном сервере. Если хотите surf и deathmatch на одном инстансе через ротацию, per-map конфиги — не опция, а обязательное условие: иначе настройки одного режима будут "протекать" в другой.
Поднять сервер Counter-Strike 2 за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Нужны ли отдельные карты для surf и bhop, или подойдут обычные?
Нужны отдельные — карты для surf и bhop проектируются специально под эту механику (наклонные поверхности, прыжковые блоки), обычные de_/cs_ карты для этого не годятся геометрически.
Можно ли совместить bhop и deathmatch на одном сервере?
Технически да, через ротацию карт и per-map конфиги, но аудитория у этих режимов разная — bhop игроки чаще хотят чистую механику без стрельбы, а смешение может размыть и то, и другое.
Почему mp_-конвары не применяются сразу после ввода команды?
Часть mp_-конваров применяется только на старте следующего раунда или карты, а не мгновенно — это нормальное поведение движка, не баг конфига.
Ломает ли custom game_type статистику и матчмейкинг?
Кастомный сервер с нестандартными конварами не участвует в официальном матчмейкинге Valve и не пишет статистику в профиль так, как соревновательные матчи, — это ожидаемо для любого community-сервера с изменённой логикой.
Обязательны ли плагины, или можно обойтись только конварами?
Для базовой физики surf/bhop/deathmatch — можно обойтись конварами из этой статьи. Плагины нужны, когда хочется таймеров, лидербордов, кастомных меню и логики, которую движок сам не считает.