Вступление
По многочисленным просьбам я решил написать подробное HOWTO по установке и настройке слушающего сервера Garry’s Mod прямо из приложения.
Статья об установке и настройке выделенного (dedicated) сервера доступна здесь.
Что нам потребуется для работы:
- Сам Garry’s Mod (лицензионная Steam-версия).
- Набор для установки плагинов нашего производства (можете пропустить, если хотите устанавливать плагины вручную).
- Любой текстовый редактор для редактирования конфигов.
В отличие от слушающих серверов других 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:
- слушающий сервер не требует особых усилий для его развёртывания и настройки: достаточно установить нужные плагины, админку, файл конфигурации и можно приглашать на него своих друзей;
- слушающий сервер идеален для работы/игры на нём нескольких человек (Вы и Ваши друзья например);
- позволяет быстро переконфигурировать, перезапустить, остановить и т.д. сервер;
- не нужно качать несколько гигабайт абсолютно ненужных данных выделенного сервера;
- обновляется полностью автоматически.
Техническая часть
- Чтобы к Вам могли подключаться клиенты, Вы должны иметь «белый» IP-адрес, т.е. видимый из Интернета. Создание сервера с «серым» IP, либо с жёстким NAT’ом провайдера не имеет смысла, т.к. подключиться к такому серверу никто не сможет (кроме находящихся с вами в одной подсети).
- Сервер запускается на порту 27015, поэтому если у Вас ADSL, вы должны пробросить этот порт по протоколу UDP в настройках своего роутера (модема). Обычно проброс портов настраивается в веб-интерфейсе роутера в разделе NAT — Port Forwarding или NAT — Virtual Servers.
- На сервере главное – скорость отдачи от Вас клиентам, а также мощность процессора Вашего компьютера. На 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 выключены вообще.
Настройка и запуск сервера
- Устанавливаем Steam и Garry’s Mod (если ещё не установлены).
- Запускам Garry’s Mod, ждём полной загрузки и выходим из неё (это нужно только если выполнялся шаг 1 для создания файлов базовой конфигурации).
- Запускаем Garry’s Mod, нажимаем «Создать сервер» («Create Server«), набираем команду status в консоли, записываем её вывод например в буфер обмена (выделяем выданный сервером текст, нажимаем правой кнопкой — «Копировать«), либо на бумагу и выходим из Garry’s Mod.
- Устанавливаем джентльменский набор плагинов из svn для Garry’s Mod, так, как описано в этой статье. Всю информацию по установке и сами скрипты установки/обновления плагинов Вы найдёте по этой ссылке.
- Делаем себя и, если нужно, своих друзей администраторами свежесозданного сервера (обязательно, иначе 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 шаге. Здесь же после этой строчки может добавить и своих друзей (но я бы не рекомендовал этого делать; одного админа вполне достаточно).
- Качаем и распаковываем архив с файлами конфигурации в папку %Steam%\steamapps\common\garrysmod\garrysmod\cfg\, где %Steam% — путь к установленному клиенту Steam. Заменяем имеющиеся файлы. Архив обновляется после выхода серьёзных изменений в Garry’s Mod, а также при обнаружении ошибок и для добавления новых функций.
- Открываем распакованный файл listenserver.cfg в любом текстовом редакторе (например, в Блокноте Windows) и делаем нужные настройки (меняем имя сервера (переменная hostname), настройки и т.п.). В файле я всё подробно описал какая переменная чем управляет, что включает/выключает, поэтому на этом я останавливаться не буду здесь. Внимание! Первым делом задайте пароль вместо !!!CHANGEME!!!, иначе Ваш сервер могут взломать.
- Запускаем Garry’s Mod, выбираем в главном меню пункт «Создать сервер» («Create multiplayer«). В открывшемся окне на первой вкладке выбираем карту (рекомендуется gm_flatgrass или gm_construct), затем переходим на страницу «Options«. Здесь установите максимально число игроков, которые могут подключиться к Вашему серверу («Max Players«) и обязательно уберите галочку из строки «Local network game» (иначе никто не сможет подключиться к Вам). Все остальные пункты изменять не нужно, т.к. они изменяются только в конфигурационном файле listenserver.cfg (этот файл имеет более высокий приоритет, чем графическое меню).
- Жмём кнопку «Start game» внизу окна и ждём окончания запуска сервера.
- Даём свой внешний IP-адрес всем, кто должен к Вам подключиться и они смогут это сделать, набрав у себя в консоли Garry’s Mod команду connect IP_вашего_сервера:27015 (например, connect 126.65.110.99:27015). Свой внешний адрес можно узнать тут: http://www.2ip.ru (он определится в строке “Ваш IP-адрес“).
- Если к Вашему серверу кто-нибудь подключился, значит он успешно установлен и настроен. Чтобы отключить сервер, достаточно войти в меню 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’а. Нужно, чтобы Ваш друг установил их и чтобы версии плагинов совпадали. Только тогда ему не придётся ничего качать. Рекомендуем пользоваться нашим набором скриптов по установке и обновлению плагинов.
Спасибо большое!!!!!!!!
А папки branches/
tags/
trunk/ кидать в addons?
И ещё какой пароль и лог для скачки?
Скачал папки ulx и ulib в addons. На сервере когда пишу ulx menu пишет неизвестная команда ulx.
Могу только кикать и банить консолькой(
Нужно делать checkout из trunk, т.е. брать последнюю версию.
Логин и пароль не должен запрашиваться при скачивании по протоколу http. Для анонимного доступа в SVN всегда используется логин и пароль anonsvn.
Они должны быть помещены непосредственно в /addons/ на сервере. Убедитесь, что SVN-клиент не создал там trunk, а уже в неё поместил ulx и ulib.
Можете воспользоваться готовыми скриптами. Исправьте только путь к каталогу /addons/ на сервере и запустите скрипт.
Установка такая же если у меня с WiFi битый айпи?
Не рекомендуется держать сервер на беспроводном соединении, т.к. у всех пользователей могут наблюдаться фризы из-за различных помех в канале.
Какой-какой IP? 🙂
Блин, после обновления грандиозного ничего не могу с сервером сделать, заного скачал файлы сервера (вообще до этого удалил полностью). Решил поставить ULX. Вставляю в свн ссылку, все как обычно, ввожу логин\пароль (anonsvn)-не подходит. Пошел скачивать Evolve (тоже админка такая, раньше стояла и все норм). Вроде-бы поставил, решил зайти, ну и когда захожу кикает с сообщением «Too many lua errors! Sorry!». И как теперь понимать это? И еще, как ставить аддоны на сервер теперь? Формат аддонов же изменили.
Они переехали на GitHub: https://github.com/Nayruden/Ulysses. Теперь вместо SVN используется Git. Также они стали публиковать Zip-архивы со своей админкой: http://ulyssesmod.net/downloads.php.
@Vitaly
Может тогда обновите статью по созданию сервера?
Кто может помочь Garrys mod Dark Rp (экономика уже файл который в dark rp или его качать надо . если в папке то где лежит)
Ссылки на скачивание из SVN поправлю.
Инструкция немного не достоверная, папки написаны не те
@Иван
хотя очень помогла, сделал все по плану, когда пытаюсь поделючиться к серверу, выкидывет и пишет ,,Disconnect: «Too many Lua Errors! Sorry,,
Помогите пожалуйста
@Иван
Укажите новые пути, я сделаю правки в статье. Она была написана в 2010 году и пути в то время были правильными.
@Иван
Неправильно установлены какие-то аддоны, поэтому и выбивает с ошибкой. Обновите их до новейших версий, либо удалите.
Здрасте а подскажите как сделать чтобы сервер гарика использовал несколько ядер процессора… он одно только берет и тормозит… помогите
Это невозможно в настоящее время. Чтобы задействовать многопоточность, само приложение должно её поддерживать.
а когда это сделают не слышно? или например как работают сервера где по 50-100 слотов… как такое помещается на одном ядре? может есть проги которые делают виртуальное ядро объединяя 2 в 1 ?
Это нужно спрашивать у Гарри Ньюмана.
Запущены на сервере с производительным серверным CPU. ЕМНИП, серверы TF2 с прошлого года поддерживают многопоточность.
Советую для начала прочитать что такое многопоточность. 🙂
у меня в линуксе не получается даже нажать кнопку создать сервер
Загрузите и установите выделенный сервер игры.
Эммм. а где надпись создать сервер
Раньше была в главном меню игры.
Я открыл порты и всё равно у людей сервер не отвечает. Как исправить?
Если нужные порты открыты, но другие пользователи по внешнему IP подключиться к серверу не могут, значит нужно обратиться к Интернет-провайдеру и подключить услугу белого IP-адреса.
Скажите пожалуйста как поставить пароль на сервер?!
Установить его в конфиге сервера, в переменной sv_password.
А как через uLX запретить модераторам тпхаться к админам?
Что делать, у меня в папке garrysmod нет папки lua. Где её скачать?
Аддоны сейчас устанавливаются при помощи Steam Workshop. Все действия по установке производятся автоматически.