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

488 комментариев к записи

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

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

  3. Я все нужные мне аддоны скинул в папку addons но на сервере их нету, в чём проблема?

  4. Вобщем я не смог поставить аддоны через svn я не мог найти файл svn_fetch, и я перенёс аддоны из папки лицензионного гаррис мода, но они не работают, а ещё я скинул карту в maps но тоже не как, помогите

    1. Вобщем я не смог поставить аддоны через svn я не мог найти файл svn_fetch

      Это нормально. Все старые скрипты мы удалили в связи с тем, что они больше не нужны. Подключите нужные аддоны из Workshop так, как описано здесь.

  5. Вообщем такая проблема, помогите кто может. Значит играл я с народом на сервере, играл играл, а потом я решил перезапустить сервер и ПК. Вышел из игры, закрыл сервер на крестик, и тут у меня вылезло какое-то маленькое окошечко с выбором того, что нужно сделать и еще чем-то, причем окошко SteamCMD шное, то есть этой проги, и тут я случайно нажал на энтр и оно закрылось. Потом значит я включаю серв, а его нет в списке sunbox серверов, есть только в локальном и никто не подключается, что мне делать помогите, сервер настроенный и создавать новый очень долго, много чего переделывать и много чего потеряю, помогите очень прошу, везде искал и не нашел ответов.

    1. Потом значит я включаю серв, а его нет в списке sunbox серверов, есть только в локальном и никто не подключается, что мне делать помогите, сервер настроенный и создавать новый очень долго, много чего переделывать и много чего потеряю, помогите очень прошу, везде искал и не нашел ответов.

      Ответить на этот вопрос не видя файлов конфигурации данного сервера невозможно. Проверьте их корректность, затем запустите сервер заново.

        1. Целостность сервера можно проверить, запустив процесс его обновления посредством SteamCMD. Отсутствующие или повреждённые файлы будут автоматически загружены.

          Также следует проверить конфиг сервера. Пример правильного конфига есть в данной статье.

  6. Здравствуйте, при выполнении 7 шага в разделе «Установка» пишет, что не найден файл srcds .exe . Что мне делать?

      1. Все, оказывается ошибка была из-за того, что я выбрал диск Д для update .cmd! Спасибо.

  7. Можно уточнить, какие папки входят в каталог D:\srcds\orangebox? У меня просто все распаковалось без данной папки.

    1. Автор многократно менял структуру сервера. Скрипт запуска нужно создавать там, где лежит файл srcds.exe.

  8. Здравствуйте! Я добавил на сервер контент из Hl2: Ep1 и Hl2: Ep2, но при спавне NPC пишет «Sorry, you can’t spawn this NPC», хотя другие я могу, к примеру, Солдата обычного. В чем дело?

  9. Здравствуйте, возникла проблема с установкой на сервер кастомных entity. В addons они были добавлены, в файле darkrpmodification я их прописывал и так и сяк, но во вкладке энтити у меня единственное энтити которое появилось это решетка которая может закрывать двери, называющаяся door protector, хотя я такую вообще в энтити не добавлял и не знаю откуда она.

  10. Здравствуйте!
    Что делать если у меня не выдаётся админка?
    Я перепробовал все варианты!
    Но он пишет что- у вас нет прав!
    помогите!

    1. Запустить выдачу прав непосредственно из консоли сервера, либо прописать вручную в конфиге.

    1. Для того, чтобы другие пользователи могли подключиться к серверу, нужен белый внешний IP-адрес, а также открытый и проброшенный порт, на котором запущен сервер (по умолчанию это 27015).

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

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