Установка и настройка выделенного сервера Garry’s Mod
Вступление
Несколько месяцев назад я писал об установке и настройке слушающего сервера Garry’s Mod. В данном HOWTO я подробно напишу как скачать, установить и настроить выделенный (Dedicated) сервер Garry’s Mod. Мы подробно рассмотрим установку админки, расширений и плагинов.
Техническая часть
- Чтобы к Вам могли подключаться клиенты, Вы должны иметь «белый» IP-адрес, т.е. видимый из Интернета. Создание сервера с «серым» IP, либо с жёстким NAT’ом провайдера не имеет смысла, т.к. подключиться к такому серверу никто не сможет (кроме находящихся с Вами в одной подсети).
- Если у Вас ADSL, вы должны пробросить порт, на котором будет установлен сервер, по протоколу UDP (для подключения клиентов) и TCP (для удалённого администрирования (rcon)) в настройках своего роутера (модема). Обычно проброс портов настраивается в веб-интерфейсе роутера в разделе NAT – Port Forwarding или NAT – Virtual Servers.
- На сервере главное – скорость отдачи от Вас клиентам, а также мощность процессора Вашего компьютера. На ADSL максимальная отдача может составлять около 780 Кбит/с – 1 МБит/с (на ADSL с модуляцией AnnexM (такая разновидность встречается крайне редко) – 3 Мбит/с). Если у Вас тариф на 256 КБит/с, то к Вам могут подключиться 6 клиентов. Если 512 – 10-12 клиентов, если 1 Мбит и более (ADSL) – 18 клиентов, кабель без NAT – 23 клиента (максимум для слушающего сервера). В соотвествие с этими параметрами Вы должны настроить значение переменной «Максимальное число игроков» во время создания сервера. Если Ваш канал или процессор не будут выдерживать такое количество подключившихся игроков, у всех появятся лаги.
Внимание! Не создавайте сервер на большое количество пользователей, т.к. это может вызывать серьёзные лаги.
Установка выделенного сервера
- Скачайте hldsupdatetool с официального сайта по ссылке: http://www.steampowered.com/download/hldsupdatetool.exe.
- Установите скачанный hldsupdatetool в папку по умолчанию %PROGRAMFILES%\Valve\HLServer\.
- Создайте папку, в которую Вы будете устанавливать выделенный сервер Garry’s Mod. Рекомендуем устанавливать в корень диска чтобы не было проблем с пробелами в путях. Также в пути не должно быть русских букв (допустимы только латинские буквы, цифры и символ подчёркивания). Рекомендуем: C:\srcds\, где вместо C:\ подставьте букву любого диска с достаточным количеством свободного места (установленный сервер Garry’s Mod с плагинами требует минимум 4 ГБ).
- Перейдите в созданную на предыдущем шаге папку папку и создайте в ней файл update.cmd (можно update.bat). В этот файл впишите следующее:
@echo off "%PROGRAMFILES%\Valve\HLServer\HldsUpdateTool.exe" -command update -game "garrysmod" -dir "c:\srcds" pause
Здесь %PROGRAMFILES%\Valve\HLServer\ — путь к установленному hldsupdatetool, а c:\srcds — каталог, в который будем устанавливать сервер.
- Запускайте созданный файл update.cmd на выполнение. При первом запуска будет произведено автоматическое обновление утилиты hldsupdatetool, затем начнётся скачивание и установка выделенного сервера.
- По окончании скачивания (зависит от скорости Вашего Интернет-соединения; сервер весит около 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
- Запустите сервер созданным файлом launch.cmd или launch.bat.
- Сервер успешно установлен.
Настройка выделенного сервера Garry’s Mod
Сервер был установлен, но, к сожалению, пока он не пригоден для использования. Нужно его настроить.
- Установите джентльменский набор плагинов из svn для Garry’s Mod, так, как описано в этой статье вручную или автоматически (устанавливать плагины Вы должны в каталог c:\srcds\orangebox\garrysmod\addons\, где c:\srcds\ — каталог установки выделенного сервера. Всю информацию по установке и сами скрипты установки/обновления плагинов Вы найдёте по этой ссылке. Обязательно установите ULX, U-Lib и U-Restrict.
- Скачайте и распакуйте архив с файлами конфигурации сервера в папку c:\srcds\orangebox\garrysmod\cfg\, где c:\srcds\ — путь установки сервера.
- Откройте файл c:\srcds\orangebox\garrysmod\cfg\server.cfg в любом текстовом редакторе и внесите в него правки: измените имя сервера (переменная hostname), смените rcon-пароль (rcon_password) и т.д. В файле я всё подробно описал какая переменная чем управляет, что включает/выключает, поэтому на этом я останавливаться не буду здесь. Внимание! Первым делом задайте пароль вместо !!!CHANGEME!!!, иначе Ваш сервер могут взломать.
- Сделайте себя и, если нужно, своих друзей администраторами свежесозданного сервера (обязательно, иначе ULX-админка не даст Вам доступа). Чтобы сделать себя админом, нужно узнать Ваш личный SteamID и выбрать автоматический или ручной способ:
- Автоматический способ. Запустите сервер (ULX и U-Lib должны быть установлены), запустите клиент Garry’s Mod и зайдите на свой сервер с помощью команды connect ВАШ_ВНЕШНИЙ_IP:ПОРТ. Сверните Garry’s Mod и перейдите в консоль сервера, введите в консоли сервера
ulx adduser ВАШ_НИК superadmin
где ВАШ_НИК — это Ваш ник в Steam (при наличии пробелов в нике кавычки обязательны; допускаются только латинские буквы, цифры и знак подчёркивания). ULX автоматически пропишет этого пользователя в админы сервера.
- Ручной способ. В любом текстовом редакторе откройте файл с:\srcds\orangebox\garrysmod\settings\users.txt. В этот файл прописываются администраторы сервера по SteamID. Найдите в этом файле раздел “superadmin” и после строки
//”garry” “STEAM_0:1:7099
впишите свою в виде
“ВАШ_НИК” “STEAM_0:1:XXXXXXXXX”
где ВАШ_НИК – это ник админа, который будет в списке вывода админов сервера (здесь разрешено вводить только латинские буквы и цифры без пробелов; кавычки обязательны), а STEAM_0:1:XXXXXXXXX – это Ваш SteamID (замените на настоящий, естественно
), полученный на 3 шаге.
- Автоматический способ. Запустите сервер (ULX и U-Lib должны быть установлены), запустите клиент Garry’s Mod и зайдите на свой сервер с помощью команды connect ВАШ_ВНЕШНИЙ_IP:ПОРТ. Сверните Garry’s Mod и перейдите в консоль сервера, введите в консоли сервера
- Обязательно установите плагин Simple Prop Protection из SVN отсюда:
http://simplepropprotection.googlecode.com/svn/trunk/ (официальный репозиторий). Этот плагин не позволит пользователям мешать другим/повреждать/удалять их постройки и т.д.
- Пробуйте запустить сервер и зайти на него с помощью клиента 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 всем играющим, его необходимо установить через hldsupdatetool. Приведу пример для контента CSS и TF2:
- Скачиваем в отдельную папку сервер Counter-Strike: Source или любой другой игры, поддерживаемой Garry’s Mod, следующей командой (папку, в которую будем скачивать, должна быть создана заранее, иначе установка и скачивание не начнётся). Команда для скачивания сервера Counter-Strike: Source:
"%PROGRAMFILES%\Valve\HLServer\HldsUpdateTool.exe" -command update -game "Counter-Strike Source" -dir "c:\cssserver"
Команда для скачивания сервера Team Fortress 2:
"%PROGRAMFILES%\Valve\HLServer\HldsUpdateTool.exe" -command update -game "tf" -dir "c:\tf2server"
- После полного завершения, заходим в папку скачанного сервера и перемещаем папку «cstrike» (для Counter-Strike: Source) или «tf«, «dods«, «hl2mp» (для других игр) в папку c:\srcds\orangebox\ (не «garrysmod»), где c:\srcds\ — папка установки сервера Garry’s Mod.
- Перезапускаем сервер Garry’s Mod. Контент установлен и доступен всем играющим.
- Папку со скачанным сервером другой игры, из которой мы взяли контент, можно удалить.

Кстати, для тех, кто спрашивал по поводу скрипта автоматического перезапуска сервера(Было выше) на Windows он прекрасно работает. Просто если сам выключаешь сервер, он предлагает его в ручную перезапустить или отменить операцию, но если сервер «упал» с крешем, то скрипт отлично все перезапускает без сторонней помощи!
Нет, просто опции, прописанные в server.cfg автоматически применяются при каждой смене карты вне зависимости от того, что было настроено администраторами за счёт использования плагинов. Например, Вы через ULX отключили режим неуязвимости, а в server.cfg включено, эта настройка будет действовать до смены карты.
Я уже давно не играю, поэтому напомните какие там настройки и я скажу за что они отвечают. По памяти могу вспомнить чекбокс включения плагина, запрещения обращения к игровому миру, запрещения доступа к чужим постройкам, разрешения админам любых действий (админы смогут перемещать/уничтожать любые постройки игроков на сервере).
Вот список Simple Prop Protection:
1)Prop Protection
2)Admins Can do Everything
3)Use protection
4)Entity Damage protection
5)Phisgun Reload protection
6)Admins Can Touch World Prop
7)Disconnect Prop Daletion
8)Delete Admin Entities
В принципе это все, что я нашел по этому аддону(Если нет других мест)
Кстати а можно гденить найти список оружия.Для добавления в U-restrict А то я не знаю имен оружия. И где настраивается ограничение на инструменты и Ентити?К примеру запретить использование Explosion(Adv) в Ваере.
Ограничение на инструменты я нашел. На Ентити еще нет. Кстати еще нашел как изменить загрузочный экран(При подключении к серверу) На свой. Если нужно будет, могу выложить сюда.
Защита пропов игроков.
Админы могут делать всё, что угодно: перемещать постройки игроков, удалять их и т.д.
Включает/отключает плагин.
Защита entity от повреждений другими игроками.
Защита от бага с нажатием кнопки R (Reload) при использовании физической пушки.
Разрешать администраторам работать с миром.
Включает функцию автоматической очистки построек отключившихся игроков (рекомендуется).
Разрешить удаление админских entity.
Список оружия идентичен HL2 и подключённым играм. Для настройки URestrict есть графическое меню, которое вызывается админом на сервере через команду URestict (вроде так, точно не припомню, ибо давно не играл) в консоли. Там вроде бы даже есть готовый список оружий.
С Wire уже сложнее — там встроенная система и свои переменные. Если нужно отключить Explosion, установите переменной, отвечающей за максимум взрывчатки значение 0. Список переменных есть в WireMod Wiki.
Выложите, было бы интересно узнать.
В общем методом тыка в Simple Prop Protection Снятие галочки с Use protection открывает доступ к всем сиденьям на сервере(Они теперь общедоступны) а пропы так же защищены. Чего я и добивался =)
По поводу того, что я нашел:
В общем ограничения инструментов выставляются в U-Restrict(админ пишет в консоли команду urestrict) Если я правильно понимаю, то недостающие инструменты нужно дописать в: с:\srcds\orangebox\garrysmod\data\URestrict\tools.txt
Код в этом файле:
"excluded" { } "list" { } "dynamite" { }Так вот это запрет на использование динамита из раздела tools. Только надо чтобы строка tools была в файле:
с:\srcds\orangebox\garrysmod\data\URestrict\config.txt.
Пример:
"tools" true "loadouts" true "admin_exclude" true { "tools" "false" "loadouts" "false" }Например если мы хотим запретить использовать Explosive из Wire mod, мы создаем новый текстовый документ по адресу: с:\srcds\orangebox\garrysmod\data\URestrict\ с именем папки аддона(в нашем случае wire.txt) и пишем следующее:
"excluded" { } "list" { } "explosive" { }затем открываем текстовый документ config.txt там же. И добавляем строку нашего созданного документа:
"tools" true "loadouts" true "admin_exclude" true { "tools" "false" "loadouts" "false" "wire" "flase" }Таким образом мы запретили юзать explosive простым пользователям(Админы могут)
Как поставить свою картинку на загрузку(Коннект к серверу):
Тут проще простого. Добавляем в батник сервера строку +sv_loadingurl «www.ваша картинка» В принципе можно на загрузку даже сайт закинуть(ток он работать не будет).
Проблема и решение:
Если во время загрузки мы видим голубую «G» и через секунду серый экран, то это проблема решается так:
Будьте внимательны в написании адреса в батнике! Пишите не «http://» а «www.» потому как батник, две слешки»//», определяет как комментарий и не использует строку после них!!!!
Извините если что то будет работать не корректно так ка это мой личный(первый) опыт методом тыка, но думаю проблем не будет.
П.С. Ни в коем случае не прописываем эту команду в server.cfg иначе пользовательский URL не загрузится, по умолчанию выводится загрузка от garry.
Я пытался написать но он не отправил на форум. Почему?
Антиспам защита сработала, поэтому комментарий попал в папку спам. Я восстановил его.
Наверное можно просто в server.cfg прописать sv_loadingurl «путь».
Нет ни в коем случае иначе Пользовательский URL никогда не загружается, по умолчанию выводится загрузка от garry.
А можно подредактировать мое сообщение а то я нашел несколько ошибок.
К сожалению, нет. Но можете написать новый комментарий с уже исправленным текстом, а предыдущий я могу удалить.
А ну хорошо. Я напишу заного ток он опять в спам может попасть =) ток не сразу я просто паралельно сервер настраиваю =)
Если попадёт в спам, я извлеку его оттуда. Это не проблема.
У меня есть проблемка. Я надеялся, что со временем пройдет само, но так и не избавился от переодического зависания серва.
В общем суть в том, что при спауне пропов, которые либо ни разу еще не спаунились, либо давно не спаунились серв подвисает у всех, а иногда и падает с крешем на этот проп. Как можно от этого избавиться?
Данная проблема часто появляется при запуске сервера на той же машине, что и клиент. У Вас сервер и клиент на разных машинах или на одной и той же?
P.S. Комментарий с информацией о блокировке оружия и установке картинки загрузки обновил, внёс соответствующие правки.
Понятно. Тоисть если я не играю, то ни у кого не лагает =) кстати с оружием там проще код менять не требуется все оружие и инструменты легко настраиваются через графический интерфейс U-Restrict
Что-то гарис мод не работает уже второй день… Плюс наткнулся ща на проблему запуска сервера:»Tried to create string table ‘DynamicModels’ twice» что же у них там за проблемы.
Два дня назад вышло крупное обновление движка Source Engine. Возможно оно и сломало гмод в очередной раз. Если так и не будет работать, то нужно запустить обновление сервера через hldsupdatetool с параметром -verify_all (указывается после -dir и каталогом сервера).
А значение параметра на контент портала можете дать? А то я пробовал, но не работает, не загружает(
А как контент портала запихнуть? Это же не серверский? Но как-то надо…
Portal нельзя скачать через hldsupdatetool, т.к. это синглплеерная игра.
Скачайте её в Steam, затем распакуйте GCF-файлы с помощью GCFScape.
Спасибо, вы мне очень помогли! =)
раньше запускал сервер через srcds.exe но в последнее время так не выходит.
а когда запускаю через батник мне не зайти в игру.
в чем вся проблема и как запустить сервер через srcds.exe без батника?
сижу на xp
и еще вопрос
как запустить сервер на win7 чтоб он в нете работал ,а не только в локальной сети?
что надо настроить в винде?
порты у меня настроены
В чём проблема? Сервер обновлён?
Играть и держать сервер на одном компьютере категорически не рекомендуется. Если нужно и играть, и держать сервер, запускайте слушающий из игры.
Можно запускать напрямую файл srcds.exe — откроется GUI консоль запуска.
Конфиг сервера из данной статьи по умолчанию запускает сервер для Интернета (sv_lan 0).
Для запуска сервера, доступного через Интернет, необходим белый внешний IP-адрес и открытый порт (по умолчанию 27015).
Здраствуйте, у меня на сервере группа admin и superadmin, no из-за simple prop protection пропы могут трогать только админы
1)Поставил сервер. Друзья могут зайти, а я — нет. Пишет мол «connection failed after 4 retryes.»
2)Как сделать так, чтобы игроки получали урон друг от друга?
3)Как настроить, чтобы оружие изначально было всё доступно?
Плагин Simple Prop Protection и предназначен для защиты чужих построек от изменения или удаления. Их могут трогать/удалять только те, кто создал и опционально суперадмины (включается/отключается в настройках плагина).
Вы должны подключаться по локальному IP-адресу, например, connect 127.0.0.1:27015. Также можно подключаться по IP локальной машины в ЛВС. Его можно узнать командой cmd.exe /K ipconfig /all | findstr IP (это одна команда).
В server.cfg изменяйте переменные:
Пропишите в конец server.cfg строку:
Спасибо! А как отключить simple prop protection?
В его настройках есть такой пункт (убираете флажок из пункта Enable protection). Можно его вообще удалить из каталога /garrysmod/addons/ сервера.
1)Оружие прописал, но он всё равно выдаёт «Sorry, You Can’t Use This».
2) А где эти настройки находятся? Найти не могу где флажок убрать.
Спасибо, а где эти настройки изменить?
А стоп, там вопрос не совсем корректно был задан. у меня на сервере могут предметы трогать только те кто в группе admin, а те кто в superadmin нет, как мне изменить чтобы и те и те могли трогать, ну и дополнительные группы тоже
Всё верно, т.к. работает плагин U-Restrict. Настройте разрешение, либо отключите/удалите его.
Смотрите в Build Menu на вкладке настроек. У U-Restrict есть даже графический интерфейс настройки, вызывающийся, если мне не изменяет память, командой urestrict в консоли.
Добавьте себя одновременно и в Admin, и в Superadmin. Это не запрещается
. Раньше суперадмины также могли трогать любые постройки.
это надо в server.cfg прописывать? А то через меню не получаеться поставить себя в superadmin и admin
Всем привет. Это снова я =) Серв поставил отлично пашет. Надеюсь не за спамлю если скажу, что перешел с simple prop protection на falco’s prop protection. Он мне больше понравился. Но все таки один единственный вопрос: как настроить ограничение пропов на определенного игрока/группу игроков?
Админы прописываются в файле users.txt.
Плагины класса Prop Protection предназначены для того, чтобы постройки мог изменять или удалять только тот, кто их построил ну и опционально администраторы сервера.
Хорошо, намек понят. Не подскажите какие нибудь аддоны для решения моего вопроса?
К сожалению подсказать не могу, т.к. уже давно не играю.
Эх жаль. Ну если сам что нарою сюда скину названия. Вдруг кому понадобится.
Было бы неплохо.