Counter-Strike 2

Counter-Strike 2

101 ratings
Создание игрового сервера CS:GO на Windows
By ЦАРЬ ВСЕЯ РУСИ
В этом руководстве попытаюсь объяснить как создать Игровой сервер CS:GO на операционной системе Windows
   
Award
Favorite
Favorited
Unfavorite
Важная информация
Обязательно к прочтению! Пока не прочитаете это, дальше не суйтесь даже!

К созданию сервера существуют требования:
1. Если вы всё же решились создать сервер на своём ПК, то сразу предупреждаю, что вам понадобится довольно мощное железо
2. Если собираетесь держать сервер для всеобщего доступа (мастер-сервер), то будьте готовы к тому, что вам нужно будет держать ПК включенным 24/7, а это сжигание электроэнергии и износ ПК, да и нужно своевременно обновлять сервер, когда это потребуется (обычно утром)
3. Нужен установленный "Notepad++", без него не обойтись, а скачать его можно в интернете
4. Нужен активированный аккаунт, то есть потрачено 5 американских рублей, а также чтобы он был подтверждён с помощью мобильного телефона
5. Ну и конечно же на нём не должно быть всяких там VAC блокировок (читеры фу-фу-фу!)

Ну что, точно готовы? Тогда читайте руководство дальше, но осторожно - там много букв!
Настройка интернета
Это наверное самая сложная часть и поэтому я решил начать именно с неё!

Вам понадобится статистический (постоянный) IP-адрес, если у вас динамический, то закажите статистический у вашего провайдера, это нужно для того, чтобы в случае если вдруг динамический адрес поменяется (обычно это происходит после перезагрузки роутера), то поменяется и адрес сервера, а ваши друзья и игроки потеряют ваш сервер в "Избранных"
P.S. На 18.11.2020г. это уже не актуально, так как IP в "Избранном" меняется автоматически

Важно сделать проброс портов, для этого лезем в настройки своего роутера (обычно это "192.168.0.1" - вводится в строку браузера) и открываем нужные нам порты, сейчас расскажу на примере роутера TP-Link как это сделать (ВНИМАНИЕ! Ваши настройки могут отличаться)

Ищем вкладки "Дополнительные настройки" -> "Переадресация NAT" -> "Виртуальные серверы", если перешли правильно, то далее нажимаем "Добавить", в данном случае нужно заполнить лишь 2 строки - в строке "Внешний порт" вводим "27000-27030", в строке "Внутренний IP-адрес" вводим IP вашей локальной сети (посмотреть его можно во вкладке "Сеть" -> "LAN"), выбираем протокол UDP и ставим галочку "Включить", сохраняем
По той же схеме открываем TCP порты, но туда вводим другие порты - "27014-27050"

Вариант открытия сразу ВСЕХ портов, это просто включить "DMZ" в настройках роутера!

Ищем вкладки "Дополнительные настройки" -> "Переадресация NAT" -> "DMZ", если перешли правильно, то далее прописываем ваш локальный IP ("LAN") и ставим галочку "Включить", сохраняем и чтобы всё работало чётко, нужно удалить все порты из "Виртуальные серверы"

ГОТОВО! Интернет настроен для запуска сервера и сервер будет виден абсолютно всем

Небольшой совет - только на ваше усмотрение, но лучше бы конечно отключить "Брандмауэр"

P.S. Насчёт проброса портов на других роутерах, ищите информацию в интернете или консультируйтесь в Службе поддержки вашего устройства (роутера), но советую TP-Link
Подготовка файлов
Ну теперь самое скучное, создание папок, в них ещё папок... файлы всякие... Читайте!

Перед началом создания файлов нужно сделать видимым расширения (если это не сделано)
Для того, чтобы это сделать нужно войти в "Параметры проводника" и там нажать на вкладку "Вид", далее ищем строку "Скрывать расширения для зарегистрированных типов файлов" и напротив этой надписи убираем галочку, жмём "Применить" -> "ОК"

1. Создайте папку, например с названием "Server" в любом удобном для вас месте
Совет: Если есть SSD, то советую создавать там, а также перенести саму игру на SSD, можно сразу в папку "Server" и назвать её к примеру там "GameCSGO", чтобы в дальнейшем было удобнее работать с файлами, ну и конечно же для увеличения скорости загрузки
2. В папке "Server" создайте 2 папки с названиями "ServerCSGO" и "SteamCMD"
3. В папке "ServerCSGO" создаём батник с названием "StartServer" (запуск сервера)
4. В папке "SteamCMD" создаём батник с названием "UpdateCSGO" (обновление сервера)
Конечно же в дальнейшем будем использовать "Админ-панель", но об этом чуть позже

P.S. Батник это расширение файла в Windows, оканчивается оно на ".bat"
Его можно редактировать любым текстовым редактором, даже "Блокнотом"
Чтобы изменить батник, нужно щёлкнуть по нему правой кнопкой мыши и нажать "Изменить"
Работа с батниками
Под спойлер смотрите только тогда, когда разберётесь со всем этим, в самом конце!

Сначала качаем основу для установки и обновления сервера - SteamCMD [drive.google.com]
Скачиваем архив и распаковываем его в папку "SteamCMD", которую мы создали ранее

Заполняем батник "UpdateCSGO" таким образом:

steamcmd.exe +login anonymous +force_install_dir ../servercsgo/ +app_update 740 validate +quit

Сохраните батник и запустите, начнётся скачивание компонентов сервера, ничего не трогайте
Батник закроется автоматически, когда закончится загрузка всех необходимых файлов
P.S. С помощью данного батника в дальнейшем нужно можно будет обновлять сервер

Заполняем батник "StartServer" таким образом:

srcds.exe -game csgo -console -usercon -maxplayers_override 21 -tickrate 64 +map de_dust2 -port 27015 +game_type 0 +game_mode 0 -secure +sv_lan 0 +tv_port -nobots

Сохраните батник, но не запускайте его (об этом позже)
P.S. С помощью данного батника в дальнейшем нужно можно будет запускать сервер

Немного про переменные данного батника:
1." -maxplayers_override 21" - максимальное количество игроков, всегда делаем на 1 слот больше, так как его займёт бот GOTV для записи демок на сервере, в итоге останется 20 слотов
2. "-tickrate 64" - думаю тут и объяснять ничего не нужно
3. "+map de_dust2" - карта, которая будет по дефолту после запуска сервера
4. "-port 27015" - порт сервера, один из которых мы открывали раннее
5. "+game_type 0 +game_mode 0" - режим игры, о них читайте ниже
6. "-secure" - включение VAC (Анти-чит Valve) защиты на сервере, если не включить, то не будут падать кейсы в конце матча
7. "+sv_lan" - сервер будет виден всем в интернете
8. "+tv_port" - эта переменная запускает бота GOTV
9. "-nobots" - отключение ботов на сервере, советую в первое время не ставить этот параметр, чтобы сервер уж совсем не пустовал, конечно же на ваше усмотрение
P.S. Об остальных переменных особо знать ничего и не нужно, они просто нужны и всё

Режимы игры для запуска в батнике:
1. "+game_type 0 +game_mode 0" // обычный паблик
2. "+game_type 0 +game_mode 1" // соревновательный
3. "+game_type 1 +game_mode 0" // гонка вооружений
4. "+game_type 1 +game_mode 1" // уничтожение объекта
5. "+game_type 1 +game_mode 2" // бой насмерть
P.S. Сейчас советую с ними не заморачиваться, просто читаем руководство дальше

Ну теперь можете заглянуть под спойлер:
На самом деле для моего руководства батник "StartServer" вообще нафиг не нужен!!! :D
А если серьёзно, написал я это для того, чтобы бы вы хоть немного поняли переменные
Ну или батник пригодится на всякий случай, как экстренный вариант запуска сервера
Установка MetaMod и SourceMod
Это самое главное и важное, тут внимательно! Ничего трудного дальше не будет!

Нужно устанавливать их в обязательном порядке:
1. Сначала качаем - MetaMod [drive.google.com]
Кидаем файлы по пути C:\Server\ServerCSGO\csgo - (У вас путь может отличаться)
2. Потом качаем - SourceMod [drive.google.com]
Кидаем файлы по пути C:\Server\ServerCSGO\csgo - (У вас путь может отличаться)

На этом установка "MetaMod" и "SourceMod" окончены. Я же говорил, что ничего сложного, но нужно делать это обязательно в таком порядке - Сначала MetaMod, потом SourceMod! ВСЁ!!!

P.S. Я бы советовал удалить файлы "sm_warmode_off.cfg" и "sm_warmode_on.cfg" - они бесполезные и будут мешаться в Админ-меню своим присутствием, на ваше усмотрение...

Чуть не забыл, я кинул вам последние Стабильные версии на момент написания руководства
Советую качать и ставить только Стабильные версии, дабы избежать проблем с серверами

Вот официальные сайты, где можно их скачать:
MetaMod - https://www.sourcemm.net/downloads.php/?branch=stable
SourceMod - https://www.sourcemod.net/downloads.php?branch=stable
Создание конфигов
Теперь самое лёгкое, нужно прописать переменные в конфиге!

Для этого потребуется следующее:
1. Создайте текстовой документ с названием "Server" и с расширением ".cfg"
2. Этот конфиг нужно закинуть по пути ".../server/servercsgo/csgo/cfg" (в папку "cfg")
3. Открываем конфиг с помощью "Notepad++" и прописываем в него нужные нам переменные

hostname "NOVOSIBIRSK SERVER 18+" // название игрового сервера (можно на русском языке)
rcon_password "yadaun" // RCON пароль (для управления консолью, обязательно заполните сложным паролем)
sv_password "2281337" // пароль от сервера (для входа на сервер, если он не нужен, то оставить пустым)
mapgroup "mg_custom" // набор карт для голосования (пусть остаётся как есть)
sv_region "255" // регион сервера (если вписать 255 - то сервер будет виден по всему миру)
sv_setsteamaccount "" // токен для игрового сервера (о нём напишу ниже)
sv_steamgroup "" // Steam группа сервера (можно оставить пустым)
sv_pure 0 // проверка соответствия файлов сервера и клиента (советую оставить 0)
log "on" // включить логи (пусть будет включён, не выключать)
sv_lan 0 // игроки могут заходить только с интернета (думаю тут всё понятно)
host_name_store 1
host_info_show 2
host_players_show 2


Теперь вопрос, где же достать токен? Да всё просто!

Переходим по ссылке - http://gtm.steamproxy.vip/dev/managegameservers
В первую строку вводим "730", во вторую строку пишите всё, что угодно
Жмём кнопку "Создать" и копируем наш идентификатор, далее вставляем его в Server.cfg
Жмём кнопку "Кодировки" и там выбираем "Преобразовать в UTF-8", далее "Сохранить"

Следующим шагом будет выбор игрового режима, о них я уже писал ранее:
1. gamemode_casual.cfg // обычный паблик
2. gamemode_competitive.cfg // соревновательный
3. gamemode_armsrace.cfg // гонка вооружений
4. gamemode_demolition.cfg // уничтожение объекта
5. gamemode_deathmatch.cfg // бой насмерть

Выбрали режим для вашего сервера? Читаем дальше небольшой лайфхак!

Допустим вы захотели обычный паблик ("gamemode_casual.cfg") и чтобы в дальнейшем не путаться в конфигах, открываем его с помощью "Notepad++" и вырезаем всё, что видим в нём, а потом вставляем это всё в "Server.cfg" (красоту там наводите сами, настройки также за вами)
В самом же "gamemode_casual.cfg" прописываем следующее - "exec Server.cfg"
Далее сохраняем оба cfg в нужной кодировке (как это сделать писал выше) ГОТОВО!
P.S. Данным способом вы упростите себе жизнь, все настройки переменных в одном месте
ВАЖНО! Случайно не удалите то, что прописали выше (название сервера, rcon пароль и т.д.)
Запуск сервера
Урааа!!! Теперь самая интересная часть моего руководства - это запуск сервера!

Мы всё настроили правильно, а точнее вы всё настроили (если не рукожопы), я ведь это сделал уже давненько для себя и мой сервер процветает! А теперь читайте дальше и вникайте...
Вам нужно скачать Админ-панель, с помощью неё можно будет запускать сервер, перезагружать, обновлять и многое другое, в общем полный контроль над сервером

1. Качаем Админ-панель для управления сервером - Tornado Source Panel [drive.google.com]
2. Создаём в папке "Server" ещё одну папку и называем её к примеру "AdminPanel"
3. Перекидываем содержимое архива в эту папку и запускаем "Launcher.exe"
4. Выбираем там "Counter-Strike GO", ставим режим "Домашний", выбираем цвет темы по вкусу, ну и жмём галочку на одном из вариантов (без разницы), жмите "Запустить"
5. Далее просто следуем инструкции "Мастера настроек", думаю разберётесь

Параметры запуска 1:
Античит (VAC) - вкл.
Порт сервера - 27015
Порт SourceTV - 27020
Мод - режим игры, который вы выбрали ранее (обсуждалось выше)
Группа - своя... и пишите там "mg_custom"
Слоты под игроков - от 1 до 64 (лишь бы ваш компудахтер выдержал и не взорвался)
TickRate - 64 или 128 (опять же, лишь бы это не прикончило ваш компудахтер)
Приоритет - Высокий
Доступ - Интернет
Карта - de_dust2 (в общем, какую хотите, ту и выбирайте, эта карта будет по дефолту)


Параметры запуска 2:
Конфликт IP-адресов - выкл.
No-Steam - выкл.
Далее жмите "Получить внешний IP-адрес", потом выбираем его в списке IP-адресов
Идентификатор вводить необязательно, уже писали в "Server.cfg"
Вводим RCON пароль, который вы написали в "Server.cfg" (ОБЯЗАТЕЛЬНО!)
Дополнительные команды пишите какие вам нужны (поле можно оставить пустым)


Потом жмите на вкладку "Настройка" -> "Сервер" -> "Параметры запуска" и там выбираем нужный вам порт (не выбирайте 27015, советую от 27016 по 27034), жмите "Сохранить"

ГОТОВО! Я молодец, вы наверное тоже молодцы, если чётко следовали руководству
Жмите кнопку "Запустить"
Ярлык игры (БОНУС)
Логично будет предполагать, что в момент работы сервера Steam будет ругаться при входе в CS:GO, якобы игра уже запущена, чтобы этого избежать нужно проделать следующие шаги:
1. Заходим в папку с игрой и создаём ярлык "csgo.exe", переносим его куда хотите
2. Нажимаем правой кнопкой мыши на ярлык и выбираем "Свойства"
3. В самом конце строки "Объект" пишем следующее - "appid 730 -steam", жмём "ОК"

Выглядеть это будет примерно вот так (можно добавлять и другие команды запуска):
"C:\Server\GameCSGO\steamapps\common\Counter-Strike Global Offensive\csgo.exe" appid 730 -steam -novid

ГОТОВО! С помощью этого ярлыка можно заходить в игру, когда запущен сервер
Дополнительная информация
Как только это руководство наберёт достаточно оценок и просмотров, то в дополнение к этому руководство я выложусь по полной и напишу руководство по всем переменным! ;)

Также предлагаю свои услуги на коммерческой основе, соберу сборку, помогу с плагинами и модулями, с лёгкостью сделаю для вас такие сайты как "SourceBans" и "Личный кабинет"
Быстрые сроки, бесплатная консультация в течении 3-х дней, да даже их вам будет много

По поводу этого стучитесь в друзья в Steam, добавлю абсолютно всех, цены недорогие! :)

Хочу воспользоваться моментом и прорекламировать свои сервера, локация - Новосибирск
IP-адрес сервера - 94.180.116.179:27016 [PUBLIC]
IP-адрес сервера - 94.180.116.179:27017 [AWP]
Сайт проекта - https://czar-serv.fun
Баны и муты - https://czar-serv.fun/sb
Пополнение счёта - https://czar-serv.fun/lk
Группа ВК - https://vk.com/czar_serv
Беседа ВК - https://vk.me/join/KbjIsT4HLq9r5yyguUM/31WqgfuCsDEQtVE=
Группа в Steam - https://gtm.steamproxy.vip/groups/czar-serv
Дискорд канал - https://discord.gg/N7Mg76hmA7

Большое спасибо за внимание, я уверен, что кому-нибудь это будет полезным, я старался
Если что-то непонятно, то задавайте вопросы в комментариях, я постараюсь ответить всем
27 Comments
ЦАРЬ ВСЕЯ РУСИ  [author] 5 Aug, 2022 @ 10:05am 
Очень давно не обновлял руководство и вот дополнения (на 05.08.2022г.):

1. Обновил Tornado Source Panel и добавил фикс решающий проблему с запуском
2. Добавил в руководство ещё один способ проброса портов с помощью DMZ
3. Добавил в руководство установку MetaMod и SourceMod и считаю это важным
4. На всякий случай по новой залил SteamCMD с официальной версией
5. По мелочи исправил кое-что в тексте и удалил лишнее, ну и добавил всякие советы :)
ЦАРЬ ВСЕЯ РУСИ  [author] 6 Jan, 2021 @ 12:38pm 
Комментарий к посту ниже (07 июл. 2020 в 0:28):

Спасибо за информацию, думаю она возможно будет очень полезна для многих читателей данного руководства
Но мне в службах поддержки моего провайдера и роутера сообщили, что такая проблема имеет место быть и поэтому я её тут описал
Так что правда это или нет, мы уже точно не узнаем
Но мне важно донести точную информацию пользователям и возможно будущим держателям серверов, чтобы они не запутались, а уточняли информацию не только через сторонние сайты
CrazyHackGUT 6 Jul, 2020 @ 10:28am 
P.S. Даже не пытайтесь проверять открытие портов на сайтах типа 2ip и подобных, в большинстве случаем они всё равно будут показывать, что порт закрыт, так как там проверяются порты только Локальной сети
Если не разобрался в вопросе досконально - не пиши, пожалуйста. Либо напиши, что не знаешь, почему так.

(объяснение в след. комментах; Steam ограничивает длину до 1000 символов)
CrazyHackGUT 6 Jul, 2020 @ 10:28am 
"2ip и прочие сайты" проверяют, открыт ли конкретно TCP-порт, потому что возможно проверить состояние открытости только у TCP-порта. У UDP понятия "соединение" нет, отсюда и лезут проблемы с невозможностью задетектить, открыт порт или нет, не послав чего-нибудь на него (и то, чтобы SRCDS конкретно ответил, нужно знать, что слать; откуда сайту по номеру порта знать, что Вы там на него повесили?).
CrazyHackGUT 6 Jul, 2020 @ 10:28am 
А поскольку по статье открывается только UDP (который используется для обмена игровым трафиком; TCP в Source используется для RCON-управления), то неудивительно, что они все будут показывать, что "порт закрыт". :naturalupohlebalu:
linezzz 1 Nov, 2019 @ 4:04am 
тупа листаю новые и вижу рук-во царя. я ФФ ШОКЕ
Arcane 29 Oct, 2019 @ 7:25am 
i understand
Doffian 28 Oct, 2019 @ 6:24am 
у меня в проге не удаётся запустить сервер пишет получение информации с сервера и всё когда 7 попыток проходят просто выключается. что делать?
лоликозз 27 Oct, 2019 @ 11:13pm 
И по поводу статического ip - есть такие сервисы как DynDNS (которые позволяют создать у них на сервере поддомен, который будет всегда статичным, а тебе всего лишь надо будет написать скриптик и закинуть, как я понимаю, к себе на сервер, либо же как-то зашить в роутер, чтобы при каждом обновлении айпи-адреса от твоего провайдера, этот скрипт вытягивал этот новый IP и стучался на сайт DynDNS и перевязывал старый твой IP на новый IP, тем самым, можно сделать себе фейковый статический домен/IP :steamhappy:
лоликозз 27 Oct, 2019 @ 11:09pm 
Как всегда я приебусь к тому, что статья слишком для детей что-ли, как науч-поп, только еще хуже. Не, я за то, чтобы простым и понятным языком объяснять такие банальности, но, мне бы, хотелось видеть конкретику зачем мы врубаем, например, логи (для того, чтобы в случае ошибки на сервере, по логам отследить в чем именно проблема и устранить её).
Короч, я дед =)