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

Вступление

По многочисленным просьбам я решил написать подробное HOWTO по установке и настройке слушающего сервера Garry’s Mod прямо из приложения.

Статья об установке и настройке выделенного (dedicated) сервера доступна здесь.

Что нам потребуется для работы:

  1. Сам Garry’s Mod (лицензионная Steam-версия).
  2. Набор для установки плагинов нашего производства (можете пропустить, если хотите устанавливать плагины вручную).
  3. Любой текстовый редактор для редактирования конфигов.

В отличие от слушающих серверов других Source-приложений, слушающий сервер Garry’s Mod по функциональности практически ничем не отличается от Dedicated Server’а. Общие черты слушающего и выделенного сервера Garry’s Mod:

  • позволяет устанавливать любые lua-модификации и плагины в каталог /addons/;
  • позволяет установить плагины для администрирования сервера и права администраторов (Garry’s Mod — единственный слушающий сервер, в котором создатель может быть не администратором).

Различия между слушающим и выделенным сервером Garry’s Mod:

  • при выходе из игры создателя, сервер автоматически отключается, а все играющие будут кикнуты с сообщением «Server is shutting down«;
  • позволяет одновременно хостить сервер и находиться на нём;
  • все настройки слушающего сервера хранятся в файле listenserver.cfg, а выделенного — server.cfg.

Преимущества слушающего сервера Garry’s Mod:

  • слушающий сервер не требует особых усилий для его развёртывания и настройки: достаточно установить нужные плагины, админку, файл конфигурации и можно приглашать на него своих друзей;
  • слушающий сервер идеален для работы/игры на нём нескольких человек (Вы и Ваши друзья например);
  • позволяет быстро переконфигурировать, перезапустить, остановить и т.д. сервер;
  • не нужно качать несколько гигабайт абсолютно ненужных данных выделенного сервера;
  • обновляется полностью автоматически.

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

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

Внимание! Не создавайте сервер на большое количество пользователей, т.к. современный компьютер вряд-ли потянет более 12-15 одновременно работающих пользователей, активно работающих с Wire, Stargate и т.п. из-за того, что Garry’s Mod до сих пор не поддерживает мультипоточность. Также в настройках сервера или файле конфигурации listenserver.cfg не забудьте указать максимальное количество объектов, элементов, NPC и т.д., которые может создать один пользователь. Если здесь будут стоять огромные числа (как по умолчанию в 200), то это может подвергнуть Ваш сервер серьёзным лагам.

В нашем конфиге уже установлены оптимальные значения всех настроек, а NPC выключены вообще.

Настройка и запуск сервера

  1. Устанавливаем Steam и Garry’s Mod (если ещё не установлены).
  2. Запускам Garry’s Mod, ждём полной загрузки и выходим из неё (это нужно только если выполнялся шаг 1 для создания файлов базовой конфигурации).
  3. Запускаем Garry’s Mod, нажимаем «Создать сервер» («Create Server«), набираем команду status в консоли, записываем её вывод например в буфер обмена (выделяем выданный сервером текст, нажимаем правой кнопкой — «Копировать«), либо на бумагу и выходим из Garry’s Mod.
  4. Устанавливаем джентльменский набор плагинов из svn для Garry’s Mod, так, как описано в этой статье. Всю информацию по установке и сами скрипты установки/обновления плагинов Вы найдёте по этой ссылке.
  5. Делаем себя и, если нужно, своих друзей администраторами свежесозданного сервера (обязательно, иначе ULX-админка не даст Вам доступа). Чтобы сделать себя админом, нужно:
    • узнать Ваш личный SteamID и, если хотите сделать и друзей админами (не рекомендуется ;-)), то и их SteamID. Как это сделать описано на 3 шаге;
    • в любом текстовом редакторе открываем файл %Steam%\steamapps\common\garrysmod\garrysmod\settings\users.txt, где %Steam% — путь к установленному клиенту Steam. В этот файл и прописываются администраторы сервера по SteamID. Ищем в этом файле раздел «superadmin» и после строки //»garry» «STEAM_0:1:7099» жмём Enter (начинаем новую строку) и пишем свою в виде «ВАШ_НИК» «STEAM_0:1:XXXXXXXXX», где ВАШ_НИК — это ник админа, который будет в списке вывода админов сервера (здесь разрешено вводить только латинские буквы и цифры без пробелов; кавычки обязательны), а STEAM_0:1:XXXXXXXXX — это Ваш SteamID (замените на настоящий, естественно ;-)), полученный на 3 шаге. Здесь же после этой строчки может добавить и своих друзей (но я бы не рекомендовал этого делать; одного админа вполне достаточно).
  6. Качаем и распаковываем архив с файлами конфигурации в папку %Steam%\steamapps\common\garrysmod\garrysmod\cfg\, где %Steam% — путь к установленному клиенту Steam. Заменяем имеющиеся файлы. Архив обновляется после выхода серьёзных изменений в Garry’s Mod, а также при обнаружении ошибок и для добавления новых функций.
  7. Открываем распакованный файл listenserver.cfg в любом текстовом редакторе (например, в Блокноте Windows) и делаем нужные настройки (меняем имя сервера (переменная hostname), настройки и т.п.). В файле я всё подробно описал какая переменная чем управляет, что включает/выключает, поэтому на этом я останавливаться не буду здесь. Внимание! Первым делом задайте пароль вместо !!!CHANGEME!!!, иначе Ваш сервер могут взломать.
  8. Запускаем Garry’s Mod, выбираем в главном меню пункт «Создать сервер» («Create multiplayer«). В открывшемся окне на первой вкладке выбираем карту (рекомендуется gm_flatgrass или gm_construct), затем переходим на страницу «Options«. Здесь установите максимально число игроков, которые могут подключиться к Вашему серверу («Max Players«) и обязательно уберите галочку из строки «Local network game» (иначе никто не сможет подключиться к Вам). Все остальные пункты изменять не нужно, т.к. они изменяются только в конфигурационном файле listenserver.cfg (этот файл имеет более высокий приоритет, чем графическое меню).
  9. Жмём кнопку «Start game» внизу окна и ждём окончания запуска сервера.
  10. Даём свой внешний IP-адрес всем, кто должен к Вам подключиться и они смогут это сделать, набрав у себя в консоли Garry’s Mod команду connect IP_вашего_сервера:27015 (например, connect 126.65.110.99:27015). Свой внешний адрес можно узнать тут: http://www.2ip.ru (он определится в строке “Ваш IP-адрес“).
  11. Если к Вашему серверу кто-нибудь подключился, значит он успешно установлен и настроен. Чтобы отключить сервер, достаточно войти в меню Garry’s Mod клавишей Esc и выбрать пункт «Отключиться» («Disconnect«). После этого сервер кикнет всех, кто на нём играл и закончит свою работу.

Мини-FAQ

Q: Как запретить выдавать игрокам оружие (давать только Physgun, грави-ган, тулган и скриншотган)?

A: Установите плагин U-Restrict (если Вы устанавливали с помощью наших скриптов, то он уже установлен и автоматически активирован).

Q: Как изменить сообщение, которое появляется при заходе на созданный сервер Garry’s Mod?

A: Отредактируйте файл %Steam%\steamapps\common\garrysmod\garrysmod\data\ulx\motd.txt, где %Steam% — путь к установленному клиенту Steam. Это обычный HTML-файл.

Q: Куда пишутся сокращённые логи админки?

A: Логи админки ULX пишутся в %Steam%\steamapps\common\garrysmod\garrysmod\data\ulx_logs\ДАТА.txt, где %Steam% — путь к установленному клиенту Steam, а ДАТА — сегодняшняя дата в формате ММ-ДД-ГГ.

Q: Мне нужно выдавать игрокам при подключении к серверу определённое оружие. Как это сделать?

A: Как уже писалось выше, нужен плагин U-Restrict для админки (если Вы устанавливали набор плагинов с помощью наших скриптов, он уже установлен). Итак, чтобы выдать нужное оружие, откройте файл %Steam%\steamapps\common\garrysmod\garrysmod\data\URestrict\loadouts.txt в любом текстовом редакторе и в разделе loadout после gmod_tool введите полное имя нужного оружия, например weapon_smg. Это оружие будет автоматически выдано игроку после подключения к серверу, а также после его респауна.

Q: При подключении к серверу моего друга, его Garry’s Mod пытается скачать огромное количество файлов. Что делать?

A: Это значит, что у Вашего друга установлены не все плагины, которые установлены у Вас в каталоге /addons/ Garry’s Mod’а. Нужно, чтобы Ваш друг установил их и чтобы версии плагинов совпадали. Только тогда ему не придётся ничего качать. Рекомендуем пользоваться нашим набором скриптов по установке и обновлению плагинов.

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

  1. Скачал папки ulx и ulib в addons. На сервере когда пишу ulx menu пишет неизвестная команда ulx.

  2. Даниил :

    И ещё какой пароль и лог для скачки?

    Логин и пароль не должен запрашиваться при скачивании по протоколу http. Для анонимного доступа в SVN всегда используется логин и пароль anonsvn.

  3. Даниил :

    Скачал папки ulx и ulib в addons. На сервере когда пишу ulx menu пишет неизвестная команда ulx.

    Они должны быть помещены непосредственно в /addons/ на сервере. Убедитесь, что SVN-клиент не создал там trunk, а уже в неё поместил ulx и ulib.

    Можете воспользоваться готовыми скриптами. Исправьте только путь к каталогу /addons/ на сервере и запустите скрипт.

  4. Никита :

    WiFi

    Не рекомендуется держать сервер на беспроводном соединении, т.к. у всех пользователей могут наблюдаться фризы из-за различных помех в канале.

    Никита :

    битый айпи

    Какой-какой IP? 🙂

  5. Блин, после обновления грандиозного ничего не могу с сервером сделать, заного скачал файлы сервера (вообще до этого удалил полностью). Решил поставить ULX. Вставляю в свн ссылку, все как обычно, ввожу логин\пароль (anonsvn)-не подходит. Пошел скачивать Evolve (тоже админка такая, раньше стояла и все норм). Вроде-бы поставил, решил зайти, ну и когда захожу кикает с сообщением «Too many lua errors! Sorry!». И как теперь понимать это? И еще, как ставить аддоны на сервер теперь? Формат аддонов же изменили.

  6. Александр :

    Решил поставить ULX. Вставляю в свн ссылку, все как обычно, ввожу логин\пароль (anonsvn)-не подходит..

    Они переехали на GitHub: https://github.com/Nayruden/Ulysses. Теперь вместо SVN используется Git. Также они стали публиковать Zip-архивы со своей админкой: http://ulyssesmod.net/downloads.php.

  7. Кто может помочь Garrys mod Dark Rp (экономика уже файл который в dark rp или его качать надо . если в папке то где лежит)

  8. @Иван
    хотя очень помогла, сделал все по плану, когда пытаюсь поделючиться к серверу, выкидывет и пишет ,,Disconnect: «Too many Lua Errors! Sorry,,

    Помогите пожалуйста

  9. @Иван
    Неправильно установлены какие-то аддоны, поэтому и выбивает с ошибкой. Обновите их до новейших версий, либо удалите.

  10. Здрасте а подскажите как сделать чтобы сервер гарика использовал несколько ядер процессора… он одно только берет и тормозит… помогите

  11. TuzelKO :

    Здрасте а подскажите как сделать чтобы сервер гарика использовал несколько ядер процессора…

    Это невозможно в настоящее время. Чтобы задействовать многопоточность, само приложение должно её поддерживать.

  12. а когда это сделают не слышно? или например как работают сервера где по 50-100 слотов… как такое помещается на одном ядре? может есть проги которые делают виртуальное ядро объединяя 2 в 1 ?

  13. TuzelKO :

    а когда это сделают не слышно?

    Это нужно спрашивать у Гарри Ньюмана.

    TuzelKO :

    или например как работают сервера где по 50-100 слотов…

    Запущены на сервере с производительным серверным CPU. ЕМНИП, серверы TF2 с прошлого года поддерживают многопоточность.

    TuzelKO :

    может есть проги которые делают виртуальное ядро объединяя 2 в 1 ?

    Советую для начала прочитать что такое многопоточность. 🙂

    1. Если нужные порты открыты, но другие пользователи по внешнему IP подключиться к серверу не могут, значит нужно обратиться к Интернет-провайдеру и подключить услугу белого IP-адреса.

  14. Что делать, у меня в папке garrysmod нет папки lua. Где её скачать?

    1. Аддоны сейчас устанавливаются при помощи Steam Workshop. Все действия по установке производятся автоматически.

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

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