Pterohost docs

Surf-сервер CS2: настройка карт и плагинов

Как поднять surf-сервер в CS2: установка карт, sv_airaccelerate, SurfTimer на CounterStrikeSharp, рекорды и VIP. Полный гайд 2026.

Кратко: Surf-сервер CS2 требует MetaMod + CounterStrikeSharp, плагин CS2SurfTimer и правильных конваров движения (sv_airaccelerate 150). Физика CS2 отличается от CSGO, но при корректных настройках серверы работают стабильно.

Surf-сервер CS2: настройка карт и плагинов

Surf - один из старейших и самых популярных режимов в Counter-Strike, и с переходом на CS2 сообщество активно адаптирует его под движок Source 2. По состоянию на 2026 год инфраструктура для surf в CS2 уже достаточно зрелая: доступны стабильные версии CounterStrikeSharp, несколько форков SurfTimer и сотни портированных карт. Тем не менее настройка surf-сервера CS2 имеет нюансы, которые принципиально отличают его от привычного CSGO - особенно в части физики движения и совместимости плагинов. В этом гайде разберём весь процесс от установки базового сервера до настройки таймера, рекордов и VIP.

Pterohost - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, оптимизированный под CS2-серверы. Промокод 4START даёт -20% на первый заказ. Заказать CS2 сервер

Требования и предварительная подготовка

Перед началом убедитесь, что у вас есть:

  • Выделенный сервер или VPS с Ubuntu 22.04/24.04 или Debian 12 (рекомендуется 4 ГБ ОЗУ, 2+ ядра CPU, 50+ ГБ SSD)
  • Базовый CS2 dedicated server установленный через SteamCMD
  • Открытые порты: UDP 27015 (игровой), UDP/TCP 27020 (RCON), TCP 27005 (Steam)

Если базовый сервер ещё не настроен, ознакомьтесь со статьёй Установка CS2 сервера - там описана базовая установка через SteamCMD и первичная конфигурация.

Минимальная версия компонентов (актуально на 2026)

КомпонентМинимальная версияГде взять
CS2 Dedicated Serverактуальный билд через SteamCMDsteamcmd
MetaMod: Source2.0.0-dev (build 1282+)sourcemm.net
CounterStrikeSharp1.0.0+github.com/roflmuffin/CounterStrikeSharp
CS2SurfTimerактуальный main-branchgithub.com/CS2SurfTimer

Установка MetaMod и CounterStrikeSharp

Surf-таймеры для CS2 работают через CounterStrikeSharp (CSS) - .NET-фреймворк для плагинов. CSS требует MetaMod как слой между игрой и плагинами.

Установка MetaMod

# Скачайте актуальную версию с sourcemm.net
cd /home/steam/cs2-server/game/csgo
wget https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1282-linux.tar.gz
tar -xzf mmsource-2.0.0-git1282-linux.tar.gz

После распаковки в папке csgo/addons/metamod/ появится файл metaplugins.ini. Проверьте, что в gameinfo.gi добавлена строка для MetaMod:

Game    csgo/addons/metamod

Откройте game/csgo/gameinfo.gi и в секции SearchPaths добавьте строку перед первым Game csgo:

Game    csgo/addons/metamod

Установка CounterStrikeSharp

# Скачайте актуальный релиз
cd /tmp
wget https://github.com/roflmuffin/CounterStrikeSharp/releases/latest/download/counterstrikesharp-with-runtime-linux.zip
unzip counterstrikesharp-with-runtime-linux.zip -d /home/steam/cs2-server/game/csgo/

После установки структура должна выглядеть так:

csgo/addons/
  metamod/
  counterstrikesharp/
    api/
    configs/
    plugins/
    shared/

Запустите сервер и проверьте в логах наличие строки:

[CounterStrikeSharp] Loaded successfully

Подробнее про SourceMod и плагины - в статье Установка SourceMod и плагинов CS2.

Установка карт surf_

Где брать карты

CS2 использует собственный формат карт .vpk, несовместимый с .bsp из CSGO. Для CS2 подходят:

  1. Steam Workshop - самый простой способ, карты обновляются автоматически. Команда для добавления воркшоп-карты в ротацию через host_workshop_map <workshop_id>.
  2. GameBanana (gamebanana.com) - ищите по тегу “CS2 Surf”. Проверяйте, что карта именно для CS2.
  3. CS2Surf.com - специализированный сайт с каталогом surf-карт для CS2.

Установка карты вручную

# Распакуйте скачанную карту в папку maps
cd /home/steam/cs2-server/game/csgo/maps
# Карта должна иметь расширение .vpk
ls -la surf_*.vpk

Файл маплиста

Создайте файл csgo/cfg/surf_maplist.txt с перечнем карт:

surf_beginner
surf_rookie
surf_kitsune
surf_utopia_njv
surf_mesa
surf_network
surf_aircontrol_ksf

Для автоматической смены карт используйте плагин MultiMapChooser или встроенный MapChooser из CS2SurfTimer.

Настройка физики движения: sv_airaccelerate и другие конвары

Это ключевая часть - именно конвары определяют, будет ли surf “работать” так, как ожидают игроки.

Основные конвары для surf

Создайте файл csgo/cfg/surf.cfg:

// ====================================
// Surf Server Config
// CS2 SurfTimer configuration
// ====================================

// Базовые параметры движения
sv_airaccelerate 150
sv_accelerate 10
sv_friction 4
sv_maxvelocity 3500
sv_maxspeed 320

// Гравитация (стандартная, некоторые карты требуют изменений)
sv_gravity 800

// Отключить стэмину (важно для surf)
sv_staminamax 0
sv_staminajumpcost 0
sv_staminalandcost 0
sv_staminarecoveryrate 0

// Autobhop (обычно включают на surf)
sv_autobunnyhopping 1
sv_enablebunnyhopping 1

// Настройки сервера
sv_cheats 0
sv_competitive_official_5v5 0
sv_lan 0

// Таймаут и AFK
sv_timeout 300
mp_autokick 0

// Отключить коллизии между игроками
mp_solid_teammates 0

// Урон от падения - отключить
sv_falldamage_scale 0

Загрузка конфига при старте карты - добавьте в autoexec.cfg:

exec surf.cfg

Разница физики CS2 vs CSGO

Это важный момент, который часто вызывает вопросы у игроков, переходящих с CSGO:

ПараметрCSGOCS2Влияние
Тиккрейт сервера64/12864 (subtick)Движение обрабатывается иначе
Модель коллизийBSP-трейсSource 2 коллизииПоведение на рампах отличается
sv_airaccelerate 150Стандарт surfРаботает, но ощущается иначеТребует привыкания
Обработка strafeКлассическаяSubtick-интерполяцияStrafing чуть отзывчивее

Главное отличие - в CS2 subticksystem означает, что сервер обрабатывает движение между тиками через интерполяцию. Для surf это приводит к тому, что некоторые техники из CSGO работают иначе или требуют небольшой адаптации углов. Значение sv_airaccelerate 150 остаётся стандартом, но часть опытных surf-серверов экспериментирует со значениями 100-200.

Если игроки жалуются на “странное” поведение - попробуйте sv_airaccelerate 100 для более мягкого ощущения или sv_airaccelerate 200 для более отзывчивого.

Установка CS2SurfTimer

Скачивание плагина

cd /tmp
# Клонируйте репозиторий CS2SurfTimer
git clone https://github.com/CS2SurfTimer/CS2SurfTimer.git
cd CS2SurfTimer

Скомпилированные релизы доступны в разделе Releases репозитория. Скачайте актуальный .zip и распакуйте в папку плагинов:

unzip CS2SurfTimer_*.zip -d /home/steam/cs2-server/game/csgo/addons/counterstrikesharp/plugins/CS2SurfTimer/

Структура папки плагина

После установки:

addons/counterstrikesharp/plugins/CS2SurfTimer/
  CS2SurfTimer.dll
  CS2SurfTimer.pdb
  cfg/
    CS2SurfTimer.cfg
  lang/
    en.json
    ru.json

Настройка конфига таймера

Отредактируйте CS2SurfTimer.cfg:

{
  "DatabaseType": "sqlite",
  "DatabaseHost": "",
  "DatabasePort": 3306,
  "DatabaseName": "surftimer",
  "DatabaseUser": "surf",
  "DatabasePassword": "",
  "DatabasePath": "surftimer.db",
  "ChatPrefix": "[Surf]",
  "TimerHudType": 1,
  "EnableCheckpoints": true,
  "MaxCheckpoints": 500,
  "EnableVIP": true,
  "VIPFlag": "@css/vip",
  "EnableBots": true,
  "BotCount": 2,
  "EnableTop": true,
  "TopCount": 50,
  "EnableAnnouncements": true,
  "SoundOnFinish": true,
  "SoundOnCheckpoint": true,
  "Language": "ru"
}

Настройка базы данных MySQL (для крупных серверов)

Если планируете несколько серверов с общими рекордами:

{
  "DatabaseType": "mysql",
  "DatabaseHost": "127.0.0.1",
  "DatabasePort": 3306,
  "DatabaseName": "surftimer",
  "DatabaseUser": "surf_user",
  "DatabasePassword": "ваш_пароль"
}

Создайте базу данных:

CREATE DATABASE surftimer CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'surf_user'@'localhost' IDENTIFIED BY 'ваш_пароль';
GRANT ALL PRIVILEGES ON surftimer.* TO 'surf_user'@'localhost';
FLUSH PRIVILEGES;

Таблицы создаются плагином автоматически при первом запуске.

Зоны старта и финиша (Zone Setup)

После установки плагина необходимо расставить зоны на каждой карте. Это делается в игре с правами администратора.

Команды для работы с зонами

!zone            - открыть меню управления зонами
!zonemenu        - альтернативная команда меню
!addzone start   - начать рисовать зону старта
!addzone end     - зона финиша
!addzone stage X - зона этапа X (для многоэтапных карт)
!addzone bonus X - бонусная зона
!savezones       - сохранить все зоны карты
!deletezone      - удалить ближайшую зону

Зоны рисуются по двум точкам (угла bbox) - вы встаёте в один угол, ставите первую точку, переходите в противоположный угол, ставите вторую. Данные сохраняются в базе данных по имени карты автоматически.

Зоны для многоэтапных карт

Для карт с этапами (surf_kitsune, surf_utopia_njv и другие):

!addzone stage 1   - финиш первого этапа (он же старт второго)
!addzone stage 2   - финиш второго этапа
...
!addzone end       - финиш всей карты

Настройка VIP-системы

CS2SurfTimer интегрируется с CounterStrikeSharp Admin Framework для управления VIP.

Добавление игрока в VIP

Отредактируйте addons/counterstrikesharp/configs/admins.json:

{
  "STEAM_1:0:123456789": {
    "identity": "STEAM_1:0:123456789",
    "flags": ["@css/vip"],
    "immunity": 0
  }
}

Привилегии VIP в SurfTimer

В конфиге плагина можно настроить отдельные привилегии для VIP:

{
  "VIPSettings": {
    "TrailEnabled": true,
    "CustomColors": true,
    "TeleportToCheckpoint": true,
    "ExtraCheckpoints": 1000,
    "SpeedBoostEnabled": false,
    "HideTimer": true
  }
}

Трейлы (цветные следы за игроком) - популярная VIP-привилегия. Для них потребуется дополнительный плагин CS2Trails или аналогичный, совместимый с CounterStrikeSharp.

Дополнительные плагины для surf-сервера

Практичный набор плагинов

ПлагинНазначениеРепозиторий
CS2SurfTimerОсновной таймерgithub.com/CS2SurfTimer
CS2-AdvertisementsРеклама/объявления в чатеgithub.com/K4ryuu
CS2-Discord-UtilitiesИнтеграция с Discordgithub.com/NockyCZ
CS2-TagsТеги перед именемgithub.com/daffyyyy
CS2-HUD-SurfКастомный HUDgithub.com/CS2SurfTimer

Команды администратора через RCON

Основные команды управления surf-сервером через RCON описаны в статье Команды CS2 сервера. Наиболее полезные для surf:

rcon changelevel surf_beginner
rcon exec surf.cfg
rcon sv_airaccelerate 150
rcon css_reload_admins

Частые проблемы и их решение

Игроки “проваливаются” сквозь рампы

Причина: Несовместимость карты - карта сделана для CSGO, не портирована под CS2. Решение: Используйте только карты с пометкой CS2 или конвертированные через Hammer Editor Source 2.

Таймер не фиксирует финиш

Причина: Зоны не настроены или сохранены неправильно. Решение:

!zone           - проверить наличие зон
!savezones      - пересохранить зоны

Убедитесь, что плагин видит зоны: !zonemenu должен показывать список настроенных зон для текущей карты.

Рекорды не сохраняются после рестарта

Причина: Проблема с путём к SQLite-файлу или правами доступа. Решение:

ls -la /home/steam/cs2-server/game/csgo/addons/counterstrikesharp/plugins/CS2SurfTimer/
# Файл surftimer.db должен существовать и иметь права на запись
chmod 664 surftimer.db

Сервер не запускается с MetaMod

Причина: Неверная версия MetaMod или отсутствует строка в gameinfo.gi. Решение: Проверьте лог csgo/addons/metamod/logs/ - там будет конкретная ошибка. Часто помогает обновление MetaMod до актуального dev-билда.

sv_airaccelerate сбрасывается после смены карты

Причина: Конфиг не загружается автоматически при смене карты. Решение: Добавьте в csgo/cfg/autoexec.cfg:

exec surf.cfg

Или создайте csgo/cfg/mapname_surf_beginner.cfg - такой конфиг загружается автоматически при входе на карту surf_beginner.

server.cfg для surf-сервера

Полный пример csgo/cfg/server.cfg для surf:

hostname "My Surf Server [CS2] | RU"
sv_password ""
rcon_password "ваш_rcon_пароль"

// Режим игры
game_type 0
game_mode 0

// Физика surf
sv_airaccelerate 150
sv_accelerate 10
sv_friction 4
sv_maxvelocity 3500
sv_gravity 800

// Стамина - отключить
sv_staminamax 0
sv_staminajumpcost 0
sv_staminalandcost 0
sv_staminarecoveryrate 0

// Bunnyhop
sv_autobunnyhopping 1
sv_enablebunnyhopping 1

// Урон от падения
sv_falldamage_scale 0

// Игровые настройки
mp_friendlyfire 0
mp_autokick 0
mp_solid_teammates 0
mp_death_drop_gun 0
mp_death_drop_grenade 0

// Тайм-ауты
sv_timeout 300
mp_timelimit 60
mp_roundtime 60
mp_roundtime_defuse 60

// Логи
log on
sv_logfile 1

Связанные материалы

Если вы только разворачиваете сервер - начните с установки CS2 dedicated server: там описана базовая установка через SteamCMD, настройка systemd и первый запуск. После этого изучите установку плагинов через SourceMod и CounterStrikeSharp - это основа для любых серверных модификаций. Список RCON-команд и управление сервером через консоль собраны в справочнике команд CS2.

Заключение

Surf-сервер на CS2 в 2026 году - вполне реализуемый проект. Основной стек: MetaMod + CounterStrikeSharp + CS2SurfTimer с SQLite или MySQL. Физика CS2 отличается от CSGO из-за subticksystem, но sv_airaccelerate 150 остаётся стандартным стартовым значением. Самое трудоёмкое - расстановка зон на каждой карте и подбор актуальных CS2-совместимых карт с Workshop или GameBanana. При правильной настройке сервер работает стабильно и поддерживает все классические surf-функции: многоэтапные карты, таблицы рекордов и VIP-привилегии.

Pterohost - CS2 серверы на NVMe с постоянной DDoS-защитой и поддержкой в любое время суток. Промокод 4START даёт -20% на первый заказ. Заказать CS2 сервер