Установка и настройка выделенного сервера Garry’s Mod

Вступление

Несколько месяцев назад я писал об установке и настройке слушающего сервера Garry’s Mod. В данном HOWTO я подробно напишу как скачать, установить и настроить выделенный (Dedicated) сервер Garry’s Mod. Мы подробно рассмотрим установку админки, расширений и плагинов.

Внимание! Статья обновлена 20.07.2013. В связи с переходом игры Garry’s Mod на новую систему контента, сервер теперь необходимо загружать и обновлять через SteamCMD. Обновление ранее скачанного через hldsupdatetool сервера до нового невозможно — сделайте резервную копию каталогов аддонов, конфигов и т.д. и загрузите сервер заново.

Техническая часть

  1. Чтобы к Вам могли подключаться клиенты, Вы должны иметь «белый» IP-адрес, т.е. видимый из Интернета. Создание сервера с «серым» IP, либо с жёстким NAT’ом провайдера не имеет смысла, т.к. подключиться к такому серверу никто не сможет (кроме находящихся с Вами в одной подсети).
  2. Если у Вас ADSL, вы должны пробросить порт, на котором будет установлен сервер, по протоколу UDP (для подключения клиентов) и TCP (для удалённого администрирования (rcon)) в настройках своего роутера (модема). Обычно проброс портов настраивается в веб-интерфейсе роутера в разделе NATPort Forwarding или NATVirtual Servers.
  3. На сервере главное – скорость отдачи от Вас клиентам, а также мощность процессора Вашего компьютера. На ADSL максимальная отдача может составлять около 780 Кбит/с – 1 МБит/с (на ADSL с модуляцией AnnexM (такая разновидность встречается крайне редко) – 3 Мбит/с). Если у Вас тариф на 256 КБит/с, то к Вам могут подключиться 6 клиентов. Если 512 – 10-12 клиентов, если 1 Мбит и более (ADSL) – 18 клиентов, кабель без NAT – 23 клиента (максимум для слушающего сервера). В соотвествие с этими параметрами Вы должны настроить значение переменной «Максимальное число игроков» во время создания сервера. Если Ваш канал или процессор не будут выдерживать такое количество подключившихся игроков, у всех появятся лаги.

Внимание! Не создавайте сервер на большое количество пользователей, т.к. это может вызывать серьёзные лаги.

Установка выделенного сервера

  1. Скачайте SteamCMD с официального сайта по ссылке: http://media.steampowered.com/installer/steamcmd.zip.
  2. Распакуйте скачанный SteamCMD в папку по умолчанию C:\SteamCMD\ (в пути не должно быть пробелов и русских букв).
  3. Создайте папку, в которую Вы будете устанавливать выделенный сервер Garry’s Mod. Рекомендуем устанавливать в корень диска чтобы не было проблем с пробелами в путях. Также в пути не должно быть русских букв (допустимы только латинские буквы, цифры и символ подчёркивания). Рекомендуем: C:\srcds\, где вместо C:\ подставьте букву любого диска с достаточным количеством свободного места (установленный сервер Garry’s Mod с плагинами требует минимум 4 ГБ).
  4. Перейдите в созданную на предыдущем шаге папку папку и создайте в ней файл update.cmd (можно update.bat). В этот файл впишите следующее:
    @echo off
    C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir C:/srcds +app_update 4020 validate +quit
    pause

    Здесь C:\SteamCMD\ — путь к установленному SteamCMD, а c:\srcds — каталог, в который будем устанавливать сервер.

  5. Запускайте созданный файл update.cmd на выполнение. При первом запуска будет произведено автоматическое обновление утилиты обновления, затем начнётся скачивание и установка выделенного сервера.
    Автоматическое обновление hldsupdatetool
    Автоматическое обновление hldsupdatetool

    Скачивание выделенного сервера
    Скачивание выделенного сервера
  6. По окончании скачивания (зависит от скорости Вашего Интернет-соединения; сервер весит около 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
  7. Запустите сервер созданным файлом launch.cmd или launch.bat.
  8. Сервер успешно установлен.

Настройка выделенного сервера Garry’s Mod

Сервер был установлен, но, к сожалению, пока он не пригоден для использования. Нужно его настроить.

  1. Установите джентльменский набор плагинов из svn для Garry’s Mod, так, как описано в этой статье вручную или автоматически (устанавливать плагины Вы должны в каталог c:\srcds\orangebox\garrysmod\addons\, где c:\srcds\ — каталог установки выделенного сервера. Всю информацию по установке и сами скрипты установки/обновления плагинов Вы найдёте по этой ссылке. Обязательно установите ULX, U-Lib и U-Restrict.
  2. Скачайте и распакуйте архив с файлами конфигурации сервера в папку c:\srcds\orangebox\garrysmod\cfg\, где c:\srcds\ — путь установки сервера.
  3. Откройте файл c:\srcds\orangebox\garrysmod\cfg\server.cfg в любом текстовом редакторе и внесите в него правки: измените имя сервера (переменная hostname), смените rcon-пароль (rcon_password) и т.д. В файле я всё подробно описал какая переменная чем управляет, что включает/выключает, поэтому на этом я останавливаться не буду здесь. Внимание! Первым делом задайте пароль вместо !!!CHANGEME!!!, иначе Ваш сервер могут взломать.
  4. Сделайте себя и, если нужно, своих друзей администраторами свежесозданного сервера (обязательно, иначе ULX-админка не даст Вам доступа). Чтобы сделать себя админом, нужно узнать Ваш личный SteamID и выбрать автоматический или ручной способ:
    1. Автоматический способ. Запустите сервер (ULX и U-Lib должны быть установлены), запустите клиент Garry’s Mod и зайдите на свой сервер с помощью команды connect ВАШ_ВНЕШНИЙ_IP:ПОРТ. Сверните Garry’s Mod и перейдите в консоль сервера, введите в консоли сервера
      ulx adduser ВАШ_НИК superadmin

      где ВАШ_НИК — это Ваш ник в Steam (при наличии пробелов в нике кавычки обязательны; допускаются только латинские буквы, цифры и знак подчёркивания). ULX автоматически пропишет этого пользователя в админы сервера.

    2. Ручной способ. В любом текстовом редакторе откройте файл с:\srcds\orangebox\garrysmod\settings\users.txt. В этот файл прописываются администраторы сервера по SteamID. Найдите в этом файле раздел “superadmin” и после строки
      //”garry” “STEAM_0:1:7099

      впишите свою в виде

      “ВАШ_НИК” “STEAM_0:1:XXXXXXXXX”

      где ВАШ_НИК – это ник админа, который будет в списке вывода админов сервера (здесь разрешено вводить только латинские буквы и цифры без пробелов; кавычки обязательны), а STEAM_0:1:XXXXXXXXX – это Ваш SteamID (замените на настоящий, естественно 😉  ), полученный на 3 шаге.

  5. Обязательно установите плагин Simple Prop Protection из SVN отсюда:
    http://simplepropprotection.googlecode.com/svn/trunk/ (официальный репозиторий). Этот плагин не позволит пользователям мешать другим/повреждать/удалять их постройки и т.д.
  6. Пробуйте запустить сервер и зайти на него с помощью клиента 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 всем играющим, его необходимо установить через SteamCMD. Приведу пример для контента CSS и TF2:

  1. Скачиваем в отдельную папку сервер Counter-Strike: Source или любой другой игры, поддерживаемой Garry’s Mod, следующей командой (папку, в которую будем скачивать, должна быть создана заранее, иначе установка и скачивание не начнётся). Команда для скачивания сервера Counter-Strike: Source:
    C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir C:/cssserver +app_update 232330 validate +quit

    Команда для скачивания сервера Team Fortress 2:

    C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir C:/tf2server +app_update 232250 validate +quit
  2. После полного завершения, заходим в папку скачанного сервера и перемещаем папку «cstrike» (для Counter-Strike: Source) или «tf«, «dods«, «hl2mp» (для других игр) в папку C:\srcds\orangebox\ (не «garrysmod»), где C:\srcds\ — папка установки сервера Garry’s Mod.
  3. Открываем файл \garrysmod\cfg\mount.cfg в текстовом редакторе и вносим в него правки. Пример для TF2 и CSS:
    "mountcfg"
    {
      "cstrike" "C:\srcds\orangebox\cstrike"
      "tf"      "C:\srcds\orangebox\tf"
    }
  4. Перезапускаем сервер Garry’s Mod. Контент установлен и доступен всем играющим.
  5. Папку со скачанным сервером другой игры, из которой мы взяли контент, можно удалить.

453 комментария к записи

  1. Здравствуйте, у меня такая проблема, я запускаю свой сервер в режиме DarkRP, хочу поменять место спавна на карте. Встаю на желаемую позицию, и допустим хочу чтобы здесь спаунился Гражданин. Пишу /setspawn citizen, все хорошо, но после перезапуска сервера позиция слетает на стандартную…
    Даже не знаю что с этим делать, а позицию спавна надо обязательно менять. Очень надеюсь на вашу помощь…
    P.S. Возможно какой то мод влияет на это, если нужно могу скинуть список модов.

  2. @EtoZheGhost
    Все настройки сохраняются в соответствующих файлах (часто — sqlite базах) при отключении сервера. Убедитесь, что на них установлены правильные права доступа, позволяющие пользователю, от имени которого запущен сервер, читать и записывать в них.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *