Установка и настройка выделенного сервера 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. Папку со скачанным сервером другой игры, из которой мы взяли контент, можно удалить.

Подробнее →

Создание и установка спрея в Source-игры

Вступление

Как показывает практика, создание и установка спрея в Source-игры (Team Fortress 2, Counter-Strike: Source, Left 4 Dead и т.д.) вызывает у пользователей множество вопросов и проблем. Поэтому я решил написать данное HOWTO, в котором пошагово расскажу как создать и установить спрей в TF2/CSS/L4D(2).

Создание спрея

Приложения на движке Source используют VTF-формат спреев (сокр. от Valve Texture File), поэтому Вам придётся конвертировать свои изображения GIF/JPEG/PNG/BMP именно в этот формат. На мой взгляд, лучшей программой конвертирования в VTF является бесплатная программа VTFEdit, которую можно скачать с нашего сайта по прямой ссылке: https://www.easycoding.org/files/vtfedit125-20.exe.

  1. Запускайте скачанную программу VTFEdit. Вы увидите её окно.

    Главное окно VTFEdit
    Главное окно VTFEdit
  2. Выберите FileImport и найдите на диске файл, который Вы хотите сделать спреем. Внимание! Размер спрея должен быть 256*256 пикселей (файлы большего размера не принимаются большинством серверов). VTFEdit поддерживает импорт файлов изображений формата GIF, JPEG, PNG, BMP, TGA и DDS.

    Диалог импорта файла VTFEdit
    Диалог импорта файла VTFEdit
  3. Выбрав нужный файл, нажмите кнопку «Открыть» (или «Open» в английской версии Windows). Появится окно дополнительных опции импорта. Здесь сразу нажмите «OK«, ничего не изменяя.

    Дополнительные опции импорта
    Дополнительные опции импорта
  4. Вы будете перемещены в главное окно VTFEdit, в котором увидите только что созданный и загруженный спрей. В меню Options выберите Auto Create VMT File чтобы программа наряду с VTF-файлом сгенерировала и VMT-файл (файл описания спрея). Это действие избавит Вас от необходимости вручную импортировать спрей в игре.

    Меню Options VTFEdit
    Меню Options VTFEdit
  5. Сохраните Ваш спрей на диск командой FileSave под любым именем (в имени файла не должно быть русских букв и пробелов, т.е. допустимы только латинские буквы и цифры).
  6. Ваш спрей создан и сохранён. Пришло время переходить к его установке.

Ручная установка спрея

Рассмотрим установку спрея на примере Team Fortress 2 (для CSS во всех путях замените tf на cstrike).

  1. Откройте в Проводнике Windows папку \Steam\steamapps\common\Team Fortress 2\tf.
  2. Найдите в ней подкаталог materials, а в нём vgui -> logos. Если их нет, то Вы должны их создать вручную. Структура каталогов должна выглядеть так: \Steam\steamapps\common\Team Fortress 2\tf\materials\vgui\logos\. Перейдите в logos.
  3. Скопируйте созданные Вами спреи в эту папку (и vtf, и vmt-файлы).
  4. Запустите TF2, зайдите в Настройки (Options) на страницу Сетевая игра (Multiplayer) и выберите установленный спрей из списка в разделе Spraypaint image. Если спрей удалось выбрать и в поле Preview Вы увидели его, сразу нажимайте OK и не выполняйте дальнейшие шаги.

    Выбор загруженного спрея
    Выбор загруженного спрея
  5. Если у спрея не было VMT-файла, либо Вы его не создали в VTFEdit и соответственно его нет в списке доступных спреев TF2, то под списком доступных спреев нажмите кнопку Импорт (Import Spray…).

    Параметры сетевой игры
    Параметры сетевой игры
  6. В открывшемся окне Import Spray Image переходите по каталогам по порядку — tf -> materials -> vgui -> logos и выберите скопированный Вами спрей. Нажмите кнопку Open.
  7. Теперь спрей должен отображаться в списке (см. шаг 4). Нажмите OK. Спрей успешно установлен.

Подробнее →