Главная > HOWTO > Установка и настройка сервера Garry’s Mod

Установка и настройка сервера 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\ВАШ_ЛОГИН\garrysmod\garrysmod\settings\users.txt, где %Steam% — путь к установленному клиенту Steam, а ВАШ_ЛОГИН — Ваш логин для входа в Steam. В этот файл и прописываются администраторы сервера по SteamID. Ищем в этом файле раздел «superadmin» и после строки //»garry» «STEAM_0:1:7099″ жмём Enter (начинаем новую строку) и пишем свою в виде «ВАШ_НИК» «STEAM_0:1:XXXXXXXXX», где ВАШ_НИК — это ник админа, который будет в списке вывода админов сервера (здесь разрешено вводить только латинские буквы и цифры без пробелов; кавычки обязательны), а STEAM_0:1:XXXXXXXXX — это Ваш SteamID (замените на настоящий, естественно ;-) ), полученный на 3 шаге. Здесь же после этой строчки может добавить и своих друзей (но я бы не рекомендовал этого делать; одного админа вполне достаточно).
  6. Качаем и распаковываем архив с файлами конфигурации в папку %Steam%\steamapps\ВАШ_ЛОГИН\garrysmod\garrysmod\cfg\, где %Steam% — путь к установленному клиенту 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\ВАШ_ЛОГИН\garrysmod\garrysmod\data\ulx\motd.txt, где %Steam% — путь к установленному клиенту Steam, а ВАШ_ЛОГИН — Ваш логин для входа в Steam. Это обычный HTML-файл.

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

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

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

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

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

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

Категории:HOWTO Метки:,
  1. Дмитрй
    11 Февраль 2011 в 17:05 | #1

    А как уменьшить пинг?

  2. 11 Февраль 2011 в 19:37 | #2

    @Дмитрй
    Штатными средствами никак, а различные программы в Интернете, способные «уменьшать пинг» в 99% случаев являются вредоносными. Обратитесь в службу технической поддержки Вашего Интернет-провайдера. Если у Вас ADSL и хорошая линия, то провайдер может включить на порту режим FAST, что уменьшит пинг.

  3. VVanger
    21 Февраль 2011 в 10:37 | #3

    Здравствуйте, меня интересует название мода, который запрещяет другим пользователям трогать мои (и не только) постройки.
    Заранее спасибо!

  4. 21 Февраль 2011 в 12:45 | #4

    @VVanger
    Это не мод, а плагин. Он называется Simple Prop Protection. Скачать можно из официального SVN отсюда: http://simplepropprotection.googlecode.com/svn/trunk/ (устанавливать в папку /addons/).

  5. VVanger
    21 Февраль 2011 в 14:05 | #5

    Большое спасибо!

  6. VVanger
    22 Февраль 2011 в 18:55 | #6

    Я пользуюся ass mod`ом и у меня такой вопрос, как убрать из админов?

  7. 22 Февраль 2011 в 19:44 | #7

    @VVanger
    Админы прописываются в файле \garrysmod\settings\users.txt. Чтобы убрать пользователя из админов — достаточно удалить оттуда строку с его SteamID.

  8. VVanger
    22 Февраль 2011 в 21:13 | #8

    Все, спасибо, нишел как убирать админов. Это чуть чуть иначе вся инфа о админах в ASS хранится в \garrysmod\data\ass_rankings.txt там все админы!
    Спасибо!

  9. 22 Февраль 2011 в 21:14 | #9

    @VVanger
    Честно говоря, я первый раз слышу про такой мод, но по стандарту все моды должны уметь использовать конфигурацию разрешений доступа из файла users.txt.

  10. VVanger
    23 Февраль 2011 в 09:36 | #10

    Как защитить сервер от «падения»?

  11. 23 Февраль 2011 в 10:04 | #11

    VVanger :

    Как защитить сервер от «падения»?

    Это тянет на целое HOWTO :) . Самое простое:
    1. Запретить на сервере доступ к чужим постройкам.
    2. Запретить на сервере рэгдоллы и NPC.
    3. Устанавливать только нужные плагины и всегда обновлять их до последних версий.
    4. Установить сложный RCON-пароль + бан за попытку его подбора.
    5. Иметь адекватных администраторов, дежурящих на сервере.
    6. Установить верные лимиты на спаун.

  12. BoB4uK
    6 Март 2011 в 07:56 | #12

    А как cделать «Белый» IP???

  13. 6 Март 2011 в 11:28 | #13

    @BoB4uK
    Необходимо обратиться к своему Интернет-провайдеру и заказать эту услугу. У некоторых провайдеров она платная (зависит от жадности провайдера).

  14. ___KOTE___
    30 Апрель 2011 в 17:53 | #14

    Хочу сделать из конструкта zombi survival. Я хочу сделать чтобы у игроков было только обычное оружие (без физгана, скриншотера и тулгана) но и добавить в арсенал нестандартное, аддонное оружие в частности grapplehook. Также добавить команды через чат ну типо !kill или !menu ну и так далее. И отсчет фрагов за убитых npc и чтобы колличество очков сохранялось для каждого стим id побывавшего на сервере. Ну и можно добавить в начале раунда время когда включен ai_disabled и игрокам выдан физган и тулган, по истечении времени ai_disabled отключаеться тул и физган отбираеться, включаеться запрет на спавн пропов и енти(ну только для НЕ админов) и начинаеться отсчёт времени до смены карты. Короче время на постройку базы или типо того.

    Ну вот как то так.

  15. ___KOTE___
    30 Апрель 2011 в 17:59 | #15

    А да! Еще голосование за следующюю/досрочную смену карты. (ну там в чате rtv или votemap или veto)

  16. 1 Май 2011 в 15:15 | #16

    ___KOTE___ :

    Хочу сделать из конструкта zombi survival.

    Для этого придётся изучить язык программирования Lua, который широко используется в GM для написания модификаций.

    ___KOTE___ :

    А да! Еще голосование за следующюю/досрочную смену карты. (ну там в чате rtv или votemap или veto)

    Это есть в стандартной поставке админки ULX.

  17. ___KOTE___
    1 Май 2011 в 16:33 | #17

    Ну ладно lua учить начну, а с ULX, который файл за это отвечает?

  18. 1 Май 2011 в 21:54 | #18

    ___KOTE___ :

    а с ULX, который файл за это отвечает?

    ULX — это полнофункциональная админка для Garry’s Mod. Для получения справки введите в консоли Garry’s Mod с установленной ULX команду ulx_help (или ulx help). Для голосования за карту есть !votemap.

  19. ___KOTE___
    2 Май 2011 в 00:11 | #19

    Ну это то естественно! Я говорил про файл в котором всё это прописано! Хочу команды изменить.

  20. Alex
    9 Август 2011 в 18:11 | #20

    Как открыть порт 27015 На роуторе D-Link dir-100 ???

  21. 9 Август 2011 в 18:24 | #21

    Alex :

    Как открыть порт 27015 На роуторе D-Link dir-100 ???

    Необходимо зайти в веб-интерфейс в AdvancedPort forwarding и пробросить соответствующий порт.

    Более подробная информация со скриншотами здесь и здесь.

  22. spongebober
    22 Сентябрь 2011 в 10:30 | #22

    какой аддон дайот такую сетку шоб удобно паять

  23. 22 Сентябрь 2011 в 23:12 | #23

    @spongebober
    Нужен плагин для сетки на предметах? Он называется SmartSnap.

  24. spongebober
    23 Сентябрь 2011 в 00:06 | #24

    большое спасибо а то не удобно вообще

  25. iDaniil
    25 Сентябрь 2011 в 20:24 | #25

    Подскажите пожалуйста, я в этом деле чайник но очень хотелось бы научиться.
    По поводу технической части(2)

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

    там нашёл пункт NAT — Virtual servers

    нажал добавить и вижу картину:

    NOTE: The «Internal Port End» cannot be modified directly. Normally, it is set to the same value as «External Port End». However, if you modify «Internal Port Start», then «Internal Port End» will be set to the same value as «Internal Port Start».

    потом графа
    Use Interface: pppoe_0_1_32/ppp0

    ее менять нельзя
    потом список среверов которые он предлагает сам
    потом строчки

    Custom Service:
    Server IP Address:

    что сюда писать?

    после этого таблица с 5тью колонками которые нужно заполнять

    External Port Start
    External Port End
    Protocol
    Internal Port Start
    Internal Port End

    понятно что протокол выбрать нужно UDP, а что писать в остальные поля не имею ни малейшего понятия..

    если что модем(ADSL) TP-LINK 300M Wireless N ADSL2+ Modem Router

    Простите за непонимание, помогите пожалуйста)
    заранее благодарен)

  26. 26 Сентябрь 2011 в 20:01 | #26

    @iDaniil
    Что-то я плохо понял структуру сети. У вас две точки доступа? Зачем? Есть же беспроводной ADSL маршрутизатор.

    Custom Service — имя службы латиницей, например, srcserv.
    Server IP Address — внутренний IP компьютера, на который нужно осуществлять проброс (например, 192.168.1.2).
    External Port Start — 27015.
    External Port End — 27015.
    Protocol — UDP.
    Internal Port Start — 27015.
    Internal Port End — 27015.

  27. iDaniil
    26 Сентябрь 2011 в 20:39 | #27

    @V1TSK
    Большое спасибо)

    Дело в том что я живу в частном доме и даже заменив антену на маршрутизаторе покрытия сети не хватает.
    У нас 4 точки доступа.
    один беспроводной ADSL маршрутизатор внизу, один модем который работает в режиме моста для беспроводной связи с принтером а так же увеличивает зану покрытия ловя сигнал и усиливая его, и 2 точка доступа которые связаны LAN кабелями с маршрутизатором: одна на 2ом этаже а одна на улице.

  28. Slavik
    26 Январь 2012 в 23:02 | #28

    А можно как-нибудь сделать, что бы после твоего выхода сервер не вырубался?

  29. 27 Январь 2012 в 02:40 | #29

    Slavik :

    А можно как-нибудь сделать, что бы после твоего выхода сервер не вырубался?

    Установите выделенный сервер. Слушающий всегда отключается при выходе создателя.

  30. ZonyX
    27 Январь 2012 в 16:40 | #30

    Интересует полное разблокирование оружия. как это устроить? И я не совсем понял как выдавать оружие игрокам при входе на сервер. Вроде прописал в loadouts.txt, но ничего не изменилось.

  31. 27 Январь 2012 в 17:27 | #31

    @ZonyX
    Пропишите в конфиг sbox_weapons 1 и все игроки будут возрождаться с оружием.

  32. ZonyX
    28 Январь 2012 в 13:19 | #32

    Ещё проблема. Когда друзья подключаются пишет, что Сервер не отвечает. У всех лицензия.

  33. 28 Январь 2012 в 16:55 | #33

    @ZonyX
    Подключаться к вам должны по внешнему IP-адресу путём ввода в консоли команды connect ВАШ_IP:27015 (номер порта можно опустить). Через список друзей подключиться в большинстве случаев не получится, т.к. там будет указан внутренний адрес в локальной интрасети.

  34. ZonyX
    28 Январь 2012 в 18:32 | #34

    @V1TSK
    Так и делаем. Всё равно ничего не получается.

  35. 28 Январь 2012 в 20:11 | #35

    @ZonyX
    Чтобы можно было подключиться нужно:
    1. Иметь белый внешний IP-адрес.
    2. Пробросить (открыть) порт 27015 по протоколу UDP.

  36. ZonyX
    28 Январь 2012 в 20:44 | #36

    @V1TSK
    IP белый. Порт вроде как открыл. Не помогло.

  37. 28 Январь 2012 в 20:47 | #37

    @ZonyX
    1. Если есть роутер (модем), нужно пробрасывать данный порт на локальный адрес через веб-интерфейс.
    2. Нужно открыть данный IP в программном файрволе (брандмауэре), установленном на компьютере, на котором будет запущен сервер.

  38. ZonyX
    29 Январь 2012 в 18:20 | #38

    @V1TSK
    Так. Порт открыл, файрвол вырубил. Теперь пишет, что connection failed после 4ёх попыток.

  39. 29 Январь 2012 в 20:36 | #39

    @ZonyX
    Стандартное сообщение, выдаваемое играми на движке Source при невозможности подключения к серверу. Какое у вас подключение к Интернету? Ethernet/ADSL/VPN?

  40. ZonyX
    29 Январь 2012 в 20:51 | #40

    @V1TSK
    Не знаю. Как это посмотреть?

  41. 29 Январь 2012 в 21:00 | #41

    Зайдите в Панель управления Windows — Сетевые подключения. Сделайте скриншот.

  42. ZonyX
    29 Январь 2012 в 21:15 | #42

    @V1TSK
    http://imagepost.ru/?v=12345_38.png (пробел после равно)
    Это оно? Просто не знаю где на win7 находятся сетевые подключения.

  43. 30 Январь 2012 в 00:48 | #43

    @ZonyX
    Да, оно. Судя по скриншоту, вы используете Wi-Fi (беспроводное сетевое соединение), поэтому нужно зайди в веб-интерфейс Wi-Fi роутера и пробросить порт 27015 на локальный компьютер.

    IP локального компьютера можно узнать, выполнив cmd.exe /K ipconfig /all | findstr IP (это одна команда).

    Подробные инструкции по проброске портов найдёте здесь.

  44. ZonyX
    30 Январь 2012 в 20:28 | #44

    @V1TSK
    Помогло. Спасибо!

Представьтесь, пожалуйста! Адрес электронной почты должен быть действительным. Если Ваш комментарий предполагает ответ, мы ответим Вам в ближайшее время (публично, либо на указанный email).
Для защиты от нежелательных комментариев, пожалуйста введите текст, который Вы видите на картинке в поле CAPTCHA Code. Если текст на картинке плохо читается, нажмите кнопку Обновить около картинки. Регистр букв не имеет значения.
*



Внимание! Запрещено публиковать любые ссылки в тексте комментария, иначе Ваш комментарий сразу будет отправлен в Спам и не будет опубликован.