Игра с друзьями без выделенного сервера
Самый простой вариант — один игрок создаёт игру, остальные подключаются.
- Хост собирает в Мастерской коллекцию аддонов и отправляет друзьям ссылку.
- Все нажимают на странице коллекции «Подписаться на все» и дожидаются загрузки.
- Хост запускает игру, выбирает карту, в настройках новой игры задаёт число игроков больше одного и начинает игру.
- Друзья подключаются через список друзей Steam или по приглашению.
Игра умеет подгружать подключающимся аддоны хоста из Мастерской и без предварительной подписки, но заранее подписаться надёжнее и быстрее: не придётся ждать загрузки на экране подключения, и не останется «ошибок» вместо моделей.
Шаг 1. Соберите коллекцию для сервера
- В Мастерской Garry’s Mod откройте раздел коллекций и создайте новую.
- Добавьте аддоны: карты, режимы, оружие, модели — всё, что должно быть на сервере.
- Установите видимость коллекции «Для всех» или «Скрытая» (доступ по ссылке). Приватную коллекцию сервер прочитать не сможет.
- Скопируйте номер коллекции — число после
?id=в адресе её страницы.
Шаг 2. Подключите коллекцию к серверу
- Откройте строку или файл запуска выделенного сервера (у хостингов — поле параметров запуска в панели управления).
- Добавьте параметр
+host_workshop_collection НОМЕР, подставив номер своей коллекции. - Запустите сервер. В консоли будет видно, как он скачивает аддоны из коллекции; вложенные коллекции тоже загружаются.
- Чтобы изменить набор, отредактируйте коллекцию в Мастерской и перезапустите сервер — параметры запуска менять не нужно.
Карту из коллекции и игровой режим, у которого в описании указан номер в Мастерской, сервер отмечает для загрузки клиентами автоматически.
Шаг 3. Чтобы игроки видели контент
Здесь кроется главная путаница. Аддон состоит из двух частей: код (Lua) и контент (модели, текстуры, звуки). Код сервер передаёт клиентам сам. Контент — нет: если его у игрока нет, вместо модели он увидит красную надпись ERROR, вместо текстуры — фиолетово-чёрные клетки.
Чтобы сервер велел клиентам скачать контент из Мастерской, создайте на сервере файл garrysmod/lua/autorun/server/workshop.lua и перечислите в нём аддоны с контентом — по строке на каждый:
resource.AddWorkshop("НОМЕР_АДДОНА")
- Номер аддона — число из адреса его страницы в Мастерской (не номер коллекции).
- Перечислять нужно только аддоны с контентом. Аддоны из одного кода в списке не нужны: они лишь увеличат время входа.
- Чем длиннее список, тем дольше игрок подключается в первый раз. Крупные серверы поэтому просят игроков заранее подписаться на коллекцию сервера.
Для больших коллекций список строк обычно не пишут руками: в Мастерской есть аддоны и сторонние генераторы, которые составляют его по номеру коллекции. Проверяйте, что именно вы ставите на сервер.
Контент Counter-Strike: Source
Отдельная частая причина клеток и надписей ERROR — не аддоны. Множество карт и аддонов используют ресурсы Counter-Strike: Source. Если этой игры у игрока нет, её текстуры и модели не отобразятся. Решение — установить Counter-Strike: Source в Steam и отметить её в Garry’s Mod в меню подключаемых игр (значок геймпада в правом нижнем углу главного меню).
Порядок на сервере
- Не ставьте всё подряд. Каждый аддон — это код, который выполняется на сервере. Два аддона, меняющих одно и то же, конфликтуют.
- Базы. Многим аддонам нужны «базы» — библиотеки вроде оружейных и транспортных баз. Они указаны в обязательных предметах на странице аддона и должны быть в коллекции.
- Обновления. Сервер проверяет обновления аддонов при запуске. Если игроков начало выкидывать после обновления аддона — перезапустите сервер.
- Ошибки Lua. Консоль сервера называет аддон, в котором произошла ошибка, — по ней и ищите виновника.
Частые ошибки
Проверьте номер и видимость коллекции: она должна быть открытой или доступной по ссылке. Убедитесь, что у сервера есть доступ в интернет.
Контент не скачан: добавьте аддон в workshop.lua через resource.AddWorkshop или попросите игроков подписаться на коллекцию. Проверьте, не нужен ли контент Counter-Strike: Source.
Слишком много контента на загрузку. Сократите список в workshop.lua и предложите подписаться на коллекцию заранее.
Аддона нет в коллекции сервера, он стоит только у вас. Добавьте его в коллекцию и перезапустите сервер.
Уберите аддон из коллекции и перезапустите сервер. Если ошибки пропали — он несовместим с чем-то из набора или устарел.

