Модпаки и миссии для Arma 3
Сервер поднят, базовый Altis крутится — и тут встаёт вопрос, ради которого обычно и затевается своя Arma 3: свои миссии, свои моды, свои правила. Но именно на этом шаге новички чаще всего ловят баны "unsigned data", несовпадение версий мода у половины отряда или сервер, который валится в лоадинг-скрине от перегруженного модпака. Разберём, как правильно разложить моды и миссии, в чём разница между -mod= и -serverMod=, и почему Arma в этом вопросе куда строже большинства других игр.
Содержание
Где лежат моды и миссии на сервере
У сервера Arma 3 (если вы ставили его по инструкции по установке сервера Arma 3) есть две принципиально разные папки под контент, и путать их не стоит.
Миссии — это скомпилированные .pbo-файлы, которые кладутся в ~/arma3server/mpmissions/. Имя файла жёстко привязано к тому, что указано в server.cfg в блоке class Missions: значение template = "coop_antistasi.altis" требует файл именно coop_antistasi.altis.pbo, ни байтом иначе. Несовпадение имени — самая частая причина, почему миссия из ротации молча пропускается сервером без внятной ошибки.
Моды — это папки формата @ИмяМода, которые лежат рядом с корнем сервера (не внутри него), например ~/@ace/, ~/@cba_a3/, ~/@rhs_afrf3/. Внутри каждой такой папки — свои addons, keys и иногда userconfig. Сервер не сканирует папки сам — какие моды грузить, ему сообщают ключи запуска, о которых ниже.
-mod= против -serverMod=: в чём разница и почему это важно
Это разделение — источник половины путаницы у тех, кто первый раз собирает модовый сервер, поэтому проговорим прямо.
-mod= — список модов, которые должны совпадать у сервера и у каждого подключающегося игрока. Сюда идёт весь контент, который игрок физически видит и трогает: новое оружие, техника, карты, звуки, интерфейсные твики геймплея. Пример: -mod=@cba_a3;@ace;@rhs_afrf3. Если у игрока другая версия хотя бы одного мода из этого списка — подключение отклоняется с ошибкой несовпадения. Клиенту нужно скачать и подписаться на ровно тот же набор модов через Steam Workshop (коллекцию удобно собрать одной ссылкой — Steam сам подтянет всё нужное при клике "Subscribe to all").
-serverMod= — моды, которые работают только на стороне сервера и игроку скачивать не нужно. Классический пример — серверные админ-инструменты, расширенное логирование, антивайп-скрипты для персистентных миссий, некоторые headless-клиентские хелперы. Игрок эти моды физически не видит и подписываться на них не должен — более того, часто и не может, потому что часть таких инструментов вообще не выкладывается в публичный Workshop.
Итоговая строка запуска обычно выглядит так:
./arma3server_x64 -config=server.cfg -port=2302 -profiles=profiles -cfg=basic.cfg \
-mod=@cba_a3;@ace;@rhs_afrf3;@rhs_usaf3 \
-serverMod=@advanced_logging;@server_admin_tools \
-world=empty -noSound
Обратите внимание: разделитель между модами внутри одного параметра — точка с запятой без пробелов, а сами параметры -mod= и -serverMod= пишутся отдельно и не смешиваются в один список.
Поднять сервер Arma 3 за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверУстановка мода через Steam Workshop
Качаем моды тем же SteamCMD, которым ставили сам сервер, но под App ID клиентской игры (107410), а не серверного бинарника:
./steamcmd.sh +login anonymous +workshop_download_item 107410 <workshop_id> +quit
<workshop_id> берётся из URL страницы мода в Steam Workshop — последние цифры после id=. Результат ляжет в steamapps/workshop/content/107410/<id>/ под тем же цифровым именем. Дальше три обязательных шага, которые часто пропускают:
- Переименовать папку в формат
@ИмяМода— латиница, нижний регистр, без пробелов — и перенести (или сделать симлинк) рядом с папкой сервера. - Скопировать ключи подписи. Внутри мода есть подпапка
Keysс файлами.bikey— их нужно скопировать в общую папку~/arma3server/keys/. Без этого шага сервер сverifySignatures = 2будет банить игроков с этим модом как с "unsigned data", даже если сам мод технически работает. - Прописать мод в
-mod=или-serverMod=в зависимости от его типа — иначе он просто лежит мёртвым грузом и никак не используется.
Для нескольких десятков модов удобнее не городить одну длинную строку вручную, а собрать её скриптом, который перебирает содержимое папки с модами и склеивает список через ; — это снижает шанс опечатки в имени, из-за которой сервер тихо стартует без части модпака.
Крупные модпаки сообщества
Отдельные моды редко ставят по одному — вокруг Arma 3 годами живут крупные комьюнити-сборки, которые тянут за собой десятки зависимостей разом. Не будем гадать с точными версиями и номерами релизов (они меняются регулярно, и на момент вашей установки актуальный билд может отличаться) — но по категориям такие сборки делятся так:
- Тактические реалистичные оверхолы — переделывают баллистику, лечение, вес снаряжения, интерфейс под milsim-стиль. Обычно требуют базовый framework-мод (тот самый CBA) как зависимость номер один, без него не запустится вообще ничего из современных модов.
- Крупные фракционные паки — добавляют технику, оружие и юниты конкретных армий или конфликтов, часто по несколько гигабайт на один пак.
- Голосовая связь дальнего действия — рации с реальной дальностью и помехами вместо стандартного игрового чата, обязательно ставится и на сервер, и клиентам одинаковой версией.
- Кооперативные и open-world миссии-фреймворки — не совсем моды в классическом смысле, а скорее движки миссий с процедурной генерацией заданий поверх стандартных карт.
Перед установкой любого крупного пака проверяйте на его собственной странице в Workshop список обязательных зависимостей — коллекции почти всегда указывают порядок и полный набор. Пропущенная зависимость даёт при запуске ошибку Addon X requires addon Y в логе, и сервер не поднимается вовсе, пока список не станет полным. Похожий принцип разделения "движок + контентные паки" встречается и в установке модов на сервер DayZ — там тоже почти любой крупный мод тянет за собой набор общих библиотек.
Синхронизация версий: главная головная боль модовых серверов
Arma 3 в этом вопросе строже подавляющего большинства других игр на модах. Если версия мода на клиенте хоть на один патч отличается от версии на сервере, подключение отклоняется целиком, а не частично — игрок не заходит на сервер вообще, даже посмотреть лобби.
Что из этого следует на практике:
- Автообновление в Steam — не друг модового сервера. Если у игроков Workshop настроен на автообновление подписанных модов, а сервер ещё не обновился (или наоборот), рассинхрон гарантирован в течение суток после любого патча популярного мода.
- Обновляйте сервер сразу после апдейта ключевых модов, а не по расписанию раз в неделю — иначе окно рассинхрона растягивается и игроки начинают жаловаться в дискорде на "не заходит".
- Зафиксируйте версии для крупных ивентов. Перед важным ивентом или турниром многие сообщества временно отключают автообновление модов у себя в Steam (свойства мода → Updates → Only update this item when I launch it) и просят то же самое от участников — стабильность важнее свежего патча за час до старта.
- Коллекция Workshop — единая точка правды. Если раздаёте игрокам не список модов текстом, а готовую коллекцию (Steam Collection), при любом изменении состава серверных модов достаточно поправить один список — Steam сам предложит игрокам обновиться при следующем запуске лаунчера.
Обновление самого мода на сервере делается тем же workshop_download_item с тем же ID — SteamCMD сам подтянет актуальную версию поверх старой папки, но не забудьте после этого пересобрать список ключей .bikey, если у мода поменялись подписи.
Ротация и настройка миссий
Список миссий на сервере задаётся не одной строкой, а блоком class Missions в server.cfg, и туда можно добавить сразу несколько пунктов — сервер будет переключаться между ними по кругу после завершения каждой.
class Missions
{
class Mission1
{
template = "coop_antistasi.altis";
difficulty = "Regular";
};
class Mission2
{
template = "koth_moly.altis";
difficulty = "Veteran";
};
};
Сама миссия — это, по сути, архив (.pbo), внутри которого лежат скрипты, описание задач, стартовые точки и логика режима. Файл миссии либо скачивается готовым с площадок вроде Steam Workshop (многие популярные режимы вроде King of the Hill и вариаций Antistasi распространяются именно так), либо собирается вручную в Eden Editor и экспортируется через "Export to Multiplayer" прямо из игрового клиента.
Важный нюанс: если миссия использует контент из модов (технику, оружие конкретной фракции), эти моды обязаны быть в -mod= на сервере и у всех игроков — иначе миссия либо не запустится, либо часть объектов в ней превратится в "битые" placeholder-модели. Держите под рукой список зависимостей каждой миссии отдельно от списка модов сервера — это разные вещи, и миссия может требовать не весь модпак сервера, а только его часть.
Нагрузка на сервер от больших модпаков
Каждый дополнительный мод — это не только вес на диске, но и реальная нагрузка при старте и во время игры, и это стоит закладывать в выбор железа.
- Время старта сервера растёт линейно с числом модов. Крупный милсим-модпак из 60-80 модов может грузиться на старте несколько минут вместо секунд у ванильного сервера — это нормально, не путайте с зависанием.
- RAM растёт не только от количества модов, но и от их содержимого. Крупные фракционные паки с высокополигональной техникой и большим числом конфигов ощутимо прибавляют к базовому потреблению памяти сервером — на модовой сборке закладывайте заметный запас сверх минимальных 4 ГБ, о которых шла речь в статье про установку сервера.
- CPU по-прежнему упирается в одно ядро. Движок Arma 3 держит основную логику миссии на одном потоке независимо от того, сколько модов установлено — поэтому для тяжёлых модпаков с активным ИИ важнее не количество ядер, а частота одного ядра у тарифа.
- Диск под модпак растёт быстро. Несколько крупных фракционных паков плюс карты вроде Livonia или Global Mobilization легко доводят объём папки сервера с модами до 100+ ГБ — держите запас, а не впритык к минимуму.
Если модпак собирается впервые и непонятно, потянет ли выбранный тариф конкретную сборку — начните с малого набора ключевых модов (framework плюс одна фракция), убедитесь, что сервер стабильно держит нагрузку, и добавляйте контент постепенно, а не всё сразу одним архивом на 40 ГБ.
Поднять сервер Arma 3 за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Можно ли смешивать -mod= и -serverMod= в одной строке параметра?
Нет, это два отдельных ключа запуска, каждый со своим списком модов через точку с запятой — писать их нужно раздельно, как в примере команды запуска выше.
Что делать, если игрока банит с ошибкой "unsigned data"?
Почти всегда это значит, что файл .bikey мода не скопирован в папку keys на сервере, либо версия мода у игрока не совпадает с серверной — проверьте оба варианта по очереди.
Нужно ли перезапускать сервер после обновления мода?
Да, Arma 3 не подхватывает изменения в файлах модов на лету — после workshop_download_item сервис нужно перезапустить (sudo systemctl restart arma3server, если настроен автозапуск через systemd).
Как понять, какие моды требует конкретная миссия, если список зависимостей не приложен?
Откройте миссию в Eden Editor локально с полным набором модов — редактор подсветит объекты, которые не смог найти, если каких-то модов не хватает; это надёжнее, чем гадать по названию миссии.
Влияет ли количество моков на пинг игроков?
Напрямую нет — моды не меняют сетевую часть протокола, но косвенно через возросшую нагрузку на CPU при большом числе ИИ-юнитов из модов сервер может начать чаще пропускать тики, что игроки ощущают как подлагивания, а не как рост пинга в чистом виде.