Создаем CS:GO сервер с нуля.

Каждый начинающий серверостоитель хочет создать свой собственный сервер. И данная статья поможет вам разобраться во всем.
И так мы начнем:
1) Первое что необходимо сделать это скачать программу SteamCMD Update Tool
Внимание! У Вас нет прав для просмотра скрытого текста.
2) Извлеките содержимое в папку (Пример Windows: C:\SteamCmd\)
2.1) Откройте папку со SteamCmd и запустите:
- Windows: steamcmd.exe
- Linux: STEAMEXE=steamcmd ./steam.sh
Программа будет автоматически обновлена и будет выведена строка с надписью Steam>. Введите help для более подробной информации.
3) Необходимо залогиниться в аккаунт steam
steam>login username password
Пример: login admirativ amxmodmenu
- admirativ - login
- amxmodmenu - password
3.1) Если Вы получаете сообщение об ошибке Steam Guard, проверьте Ваш e-mail на на наличие письма с кодом доступа к аккаунту и выполните следующую команду (сделать это нужно только один раз):
set_steam_guard_code yourcodehere
Пример: set_steam_guard_code C7H7V3
4) Вы увидете сообщение о том, что Вы успешно вошли в свой аккаунт...
Загрузка CS:GO Dedicated Server
Описывает процесс установки и обновления выделенного сервера CS:GO. Эти шаги необходимо выполнять каждый раз, когда игра будет обновлена.
1) Если Вы выполнили предыдущие пункты правильно то при следущем заупуске, SteamCmd залогинится автоматически
2) В строке Steam> необходимо указать путь установки CS:GO Dedicated Server.
Примеры:
Абсолютный путь:
force_install_dir c:\csgo-ds\
На папку выше:
force_install_dir ..\csgo-ds\
В этой же папке:
force_install_dir .\csgo-ds\
3) Установка или обновление CS:GO.
Если Вы хотите установить или проверить целостность файлов сервера, необходимо выполнить команду:
app_update 740 validate
Если вы хотите просто обновить CS:GO Dedicated Server:
app_update 740
4) После завершения, введите quit для успешного завершения работы со стим серверами.
Автоматизация процесса обновления
Можно создавать сценарии для SteamCmd, чтобы автоматизировать процесс обновления.
1) Создайте файл в паке SteamCmd с названием update_csgo_ds.txt
2) Впишите команды для SteamCmd в файл, например:
// update_csgo_ds.txt
//
login user password
force_install_dir ../csgo_ds
app_update 740 validate
exit
//
login user password
force_install_dir ../csgo_ds
app_update 740 validate
exit
3) Запустите SteamCmd с параметром +runscript. Пример:
SteamCmd +runscript update_csgo_ds.txt
Запуск сервера
Windows
Classic Casual:
srcds -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_allclassic +map de_dust2
Classic Competitive:
srcds -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_allclassic +map de_dust2
Arms Race:
srcds -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map de_dust2
Demolition:
srcds -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_dust2
Linux
Classic Casual:
./srcds_linux -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_allclassic +map de_dust2
Classic Competitive:
./srcds_linux -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_allclassic +map de_dust2
Arms Race:
./srcds_linux -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map de_dust2
Demolition:
./srcds_linux -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_dust2
FAQ по настройке CS:GO
1) Настройка отображения никнеймов игроков (когда на них наведен прицел)
mp_playerid_hold "1" -- время в секундах, сколько будет отображать ник игрока, при наведении прицела
mp_playerid_delay "0"- задержка в секундах, перед тем как показать ник игрока
mp_playerid "0"- показывать или нет ник игрока. 0 - все ники, 1 - ники игроков из своей команды, 2 - не показывать ники
По умолчанию показывать не будет.
2) Необходимые порты для STEAM
Steam Client
- UDP 27000 to 27015 inclusive (Game client traffic)
- UDP 27015 to 27030 inclusive (Typically Matchmaking and HLTV)
- TCP 27014 to 27050 inclusive (Steam downloads)
- UDP 4380
Dedicated or Listen Servers
- TCP 27015 (SRCDS Rcon port)
Steamworks P2P Networking and Steam Voice Chat
- UDP 3478 (Outbound)
- UDP 4379 (Outbound)
- UDP 4380 (Outbound)
3) Настройка файрволла для LINUX
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 27000:27030 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p tcp -m tcp --dport 27014:27050 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4380 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 3478 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4379 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 1200 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4380 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p tcp -m tcp --dport 27014:27050 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4380 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 3478 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4379 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 1200 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4380 -j ACCEPT
4) Скрипт запуска для LINUX
4) Ошибка "server is enforcing consistency for this file..."
Это баг, используйте sv_consistency 0
5) Настройка отображения моделей
Настраиваются для каждой карты файлах типа de_dust2_se.kv (обычный текстовый файл без .txt)
Пример:
Можно скопировать из gamemodes.txt
"t_arms" "models/weapons/t_arms.mdl"
"ct_arms" "models/weapons/ct_arms_st6.mdl"
6) Настройка сервера gamemodes_server.txt
По умолчанию настройки хранятся в gamemodes.txt, однако Valve не рекомендует его редактировать, так как он периодически обновляется.
Для настроек сервера Valve предлагает переименовать имеющийся файл gamemodes_server.txt.example в gamemodes_server.txt и настроить соответственно.
Настройки в gamemodes_server.txt имеют преимущество перед настройками в gamemodes.txt
Если вы сделали изменения в gamemodes_server.txt, они вступят в силу только после полной перезагрузки сервера.
Простой пример gamemodes_server.txt
7) Как узнать, какие переменные доступны для настроек в server.cfg
Введите в консоль сервера команду
cvarlist log cvarlist.txt
Файл cvarlist.txt будет лежать в корне \csgo\
Т.е. сначала вы идете в эталонный gamemodes.txt, берете оттуда настройки для gamemodes_server.txt, а то, чего нет в gamemodes.txt, можно взять из cvarlist.txt и разместить в server.cfg.
8) Клиент не подключается к серверу
Клиент получает сообщение "Failed to get session data." Как правило, причина описана в консоли сервера.
Основная причина - неправильно настроен маплист, либо не обновлен сервер.
В строке запуска имеется некорректный пример mapgroup типа "mg_allclassics"
Поставьте mg_bomb либо другой существующий.
mg_bomb, mg_hostage, mg_dust, mg_bomb, mg_hostage, mg_armsrace, mg_demolition
9) Не работает параметр +maxplayers в командной строке
Это работало в ранней бете, а сейчас этот параметр располагается либо в gamemodes.txt либо в gamemodes_server.txt
Для текущей версии серверов есть параметр командной строки maxplayers_override, который перекрывает значения в любых конфигах.
10) Где настроить резервные слоты
В gamemodes_server.txt в разделе maps у каждой карты должен стоять параметр extraspectators
11) Запуск нескольких серверов из одной папки
Используйте параметр командной строки -Gamemodes_serverfile для указания других конфигов gamemodes_server.txt.
12) Куда делся мой MOTD (какие файлы нужно резервировать перед обновлением)
Он был перезаписан при обновлении сервера.
Перед обновлением нужно сохранить такие файлы:
- gamemodes.txt
- mapcycle.txt
- maplist.txt
- motd.txt
- gamemode_casual.cfg (или gamemode_armsrace.cfg, gamemode_casual.cfg, gamemode_demolition.cfg в зависимости от того какие перенастраивал).
13) Как отключить автоматическую покупку брони
mp_free_armor 0
14) Как отключить камеру смерти
sv_disablefreezecam 1
15) Как отключить NO BLOCK
mp_solid_teammate 1
16) Как отключить встроенное голосование, вызываемое по ESQ,F1,F2
sv_allow_votes "0"
17) Пример настройки своей собственной группы карт в gamemodes_server.txt
В строке запуска укажите название своей группы +mapgroup mg_all
gamemodes_server.txt
В разделе настройки режима "mapgroupsMP"
закомменировать текущие (если вы их скопировали из gamemodes.txt), вставить
{"mg_all" "" }
В разделе групп карт "mapgroups"
"mg_all" // mapgroup definition
{
"name" "mg_all"
"maps"
{
"cs_office" ""
"cs_italy" ""
"de_dust2" ""
"de_train" ""
"de_inferno" ""
"de_dust" ""
"de_aztec" ""
"de_nuke" ""
}
}

Комментариев 2