Вступление
Несколько месяцев назад я писал об установке и настройке слушающего сервера Garry’s Mod. В данном HOWTO я подробно напишу как скачать, установить и настроить выделенный (Dedicated) сервер Garry’s Mod. Мы подробно рассмотрим установку админки, расширений и плагинов.
Техническая часть
- Чтобы к Вам могли подключаться клиенты, Вы должны иметь «белый» IP-адрес, т.е. видимый из Интернета. Создание сервера с «серым» IP, либо с жёстким NAT’ом провайдера не имеет смысла, т.к. подключиться к такому серверу никто не сможет (кроме находящихся с Вами в одной подсети).
- Если у Вас ADSL, вы должны пробросить порт, на котором будет установлен сервер, по протоколу UDP (для подключения клиентов) и TCP (для удалённого администрирования (rcon)) в настройках своего роутера (модема). Обычно проброс портов настраивается в веб-интерфейсе роутера в разделе NAT – Port Forwarding или NAT – Virtual Servers.
- На сервере главное – скорость отдачи от Вас клиентам, а также мощность процессора Вашего компьютера. На ADSL максимальная отдача может составлять около 780 Кбит/с – 1 МБит/с (на ADSL с модуляцией AnnexM (такая разновидность встречается крайне редко) – 3 Мбит/с). Если у Вас тариф на 256 КБит/с, то к Вам могут подключиться 6 клиентов. Если 512 – 10-12 клиентов, если 1 Мбит и более (ADSL) – 18 клиентов, кабель без NAT – 23 клиента (максимум для слушающего сервера). В соотвествие с этими параметрами Вы должны настроить значение переменной «Максимальное число игроков» во время создания сервера. Если Ваш канал или процессор не будут выдерживать такое количество подключившихся игроков, у всех появятся лаги.
Внимание! Не создавайте сервер на большое количество пользователей, т.к. это может вызывать серьёзные лаги.
Установка выделенного сервера
- Скачайте hldsupdatetool с официального сайта по ссылке: http://www.steampowered.com/download/hldsupdatetool.exe.
- Установите скачанный hldsupdatetool в папку по умолчанию %PROGRAMFILES%\Valve\HLServer\.
- Создайте папку, в которую Вы будете устанавливать выделенный сервер Garry’s Mod. Рекомендуем устанавливать в корень диска чтобы не было проблем с пробелами в путях. Также в пути не должно быть русских букв (допустимы только латинские буквы, цифры и символ подчёркивания). Рекомендуем: C:\srcds\, где вместо C:\ подставьте букву любого диска с достаточным количеством свободного места (установленный сервер Garry’s Mod с плагинами требует минимум 4 ГБ).
- Перейдите в созданную на предыдущем шаге папку папку и создайте в ней файл update.cmd (можно update.bat). В этот файл впишите следующее:
@echo off
"%PROGRAMFILES%\Valve\HLServer\HldsUpdateTool.exe" -command update -game "garrysmod" -dir "c:\srcds"
pause
Здесь %PROGRAMFILES%\Valve\HLServer\ — путь к установленному hldsupdatetool, а c:\srcds — каталог, в который будем устанавливать сервер.
- Запускайте созданный файл update.cmd на выполнение. При первом запуска будет произведено автоматическое обновление утилиты hldsupdatetool, затем начнётся скачивание и установка выделенного сервера.

Автоматическое обновление hldsupdatetool

Скачивание выделенного сервера
- По окончании скачивания (зависит от скорости Вашего Интернет-соединения; сервер весит около 900 МБ), перейдите в каталог с:\srcds\orangebox\, где с:\srcds\ — это каталог установки выделенного сервера и создайте там файл launch.cmd (или launch.bat) с текстом:
start /high srcds.exe -console -game garrysmod -port 27015 -maxplayers 12 +map gm_flatgrass
Здесь -port 27015 — порт, на котором будет «висеть» сервер (UDP/TCP), -maxplayers 12 — максимальное количество игроков на данном сервере, +map gm_flatgrass — карта, с которой запустится сервер. Если требуется автоматически перезапускать сервер при ошибках/падениях, то вместо предыдущего текста, впишите следующий:
@echo off
cls
echo Protecting srcds from crashes…
echo If you want to close srcds and this script, close the srcds window and type Y depending on your language followed by Enter.
title srcds.com Watchdog
: srcds
echo (%time%) srcds started.
start /wait srcds.exe -console -game garrysmod -port 27015 -maxplayers 12 +map gm_flatgrass
echo (%time%) WARNING: srcds closed or crashed, restarting.
goto srcds
- Запустите сервер созданным файлом launch.cmd или launch.bat.
- Сервер успешно установлен.
Настройка выделенного сервера Garry’s Mod
Сервер был установлен, но, к сожалению, пока он не пригоден для использования. Нужно его настроить.
- Установите джентльменский набор плагинов из svn для Garry’s Mod, так, как описано в этой статье вручную или автоматически (устанавливать плагины Вы должны в каталог c:\srcds\orangebox\garrysmod\addons\, где c:\srcds\ — каталог установки выделенного сервера. Всю информацию по установке и сами скрипты установки/обновления плагинов Вы найдёте по этой ссылке. Обязательно установите ULX, U-Lib и U-Restrict.
- Скачайте и распакуйте архив с файлами конфигурации сервера в папку c:\srcds\orangebox\garrysmod\cfg\, где c:\srcds\ — путь установки сервера.
- Откройте файл c:\srcds\orangebox\garrysmod\cfg\server.cfg в любом текстовом редакторе и внесите в него правки: измените имя сервера (переменная hostname), смените rcon-пароль (rcon_password) и т.д. В файле я всё подробно описал какая переменная чем управляет, что включает/выключает, поэтому на этом я останавливаться не буду здесь. Внимание! Первым делом задайте пароль вместо !!!CHANGEME!!!, иначе Ваш сервер могут взломать.
- Сделайте себя и, если нужно, своих друзей администраторами свежесозданного сервера (обязательно, иначе ULX-админка не даст Вам доступа). Чтобы сделать себя админом, нужно узнать Ваш личный SteamID и выбрать автоматический или ручной способ:
- Автоматический способ. Запустите сервер (ULX и U-Lib должны быть установлены), запустите клиент Garry’s Mod и зайдите на свой сервер с помощью команды connect ВАШ_ВНЕШНИЙ_IP:ПОРТ. Сверните Garry’s Mod и перейдите в консоль сервера, введите в консоли сервера
ulx adduser ВАШ_НИК superadmin
где ВАШ_НИК — это Ваш ник в Steam (при наличии пробелов в нике кавычки обязательны; допускаются только латинские буквы, цифры и знак подчёркивания). ULX автоматически пропишет этого пользователя в админы сервера.
- Ручной способ. В любом текстовом редакторе откройте файл с:\srcds\orangebox\garrysmod\settings\users.txt. В этот файл прописываются администраторы сервера по SteamID. Найдите в этом файле раздел “superadmin” и после строки
//”garry” “STEAM_0:1:7099
впишите свою в виде
“ВАШ_НИК” “STEAM_0:1:XXXXXXXXX”
где ВАШ_НИК – это ник админа, который будет в списке вывода админов сервера (здесь разрешено вводить только латинские буквы и цифры без пробелов; кавычки обязательны), а STEAM_0:1:XXXXXXXXX – это Ваш SteamID (замените на настоящий, естественно
), полученный на 3 шаге.
- Обязательно установите плагин Simple Prop Protection из SVN отсюда:
- Пробуйте запустить сервер и зайти на него с помощью клиента Garry’s Mod. Вызовите админку командой ulx admin. Если всё пройдёт успешно, сервер был успешно настроен и готов к приёму игроков.
Мини-FAQ по серверу Garry’s Mod
Q: Как запретить выдавать игрокам оружие (давать только Physgun, грави-ган, тулган и скриншотган)?
A: Установите плагин U-Restrict (если Вы устанавливали с помощью наших скриптов, то он уже установлен и автоматически активирован).
Q: Как изменить сообщение, которое появляется при заходе на созданный сервер Garry’s Mod?
A: Отредактируйте файл с:\srcds\orangebox\garrysmod\data\ulx\motd.txt. Это обычный HTML-файл.
Q: Куда пишутся сокращённые логи админки?
A: Логи админки ULX пишутся в с:\srcds\orangebox\garrysmod\data\ulx_logs\ДАТА.txt, где ДАТА – сегодняшняя дата в формате ММ-ДД-ГГ.
Q: Мне нужно выдавать игрокам при подключении к серверу определённое оружие. Как это сделать?
A: Как уже писалось выше, нужен плагин U-Restrict для админки (если Вы устанавливали набор плагинов с помощью наших скриптов, он уже установлен). Итак, чтобы выдать нужное оружие, откройте файл с:\srcds\orangebox\garrysmod\data\URestrict\loadouts.txt в любом текстовом редакторе и в разделе loadout после gmod_tool введите полное имя нужного оружия, например weapon_smg. Это оружие будет автоматически выдано игроку после подключения к серверу, а также после его респауна.
Q: Как мне добавить контент других Source-игр для использования на моём сервере?
A: Чтобы контент других игр стал доступен в Garry’s Mod всем играющим, его необходимо установить через hldsupdatetool. Приведу пример для контента CSS и TF2:
- Скачиваем в отдельную папку сервер Counter-Strike: Source или любой другой игры, поддерживаемой Garry’s Mod, следующей командой (папку, в которую будем скачивать, должна быть создана заранее, иначе установка и скачивание не начнётся). Команда для скачивания сервера Counter-Strike: Source:
"%PROGRAMFILES%\Valve\HLServer\HldsUpdateTool.exe" -command update -game "Counter-Strike Source" -dir "c:\cssserver"
Команда для скачивания сервера Team Fortress 2:
"%PROGRAMFILES%\Valve\HLServer\HldsUpdateTool.exe" -command update -game "tf" -dir "c:\tf2server"
- После полного завершения, заходим в папку скачанного сервера и перемещаем папку «cstrike» (для Counter-Strike: Source) или «tf«, «dods«, «hl2mp» (для других игр) в папку c:\srcds\orangebox\ (не «garrysmod»), где c:\srcds\ — папка установки сервера Garry’s Mod.
- Перезапускаем сервер Garry’s Mod. Контент установлен и доступен всем играющим.
- Папку со скачанным сервером другой игры, из которой мы взяли контент, можно удалить.