MAATRIX GAMES / Блог / Core Keeper: установка модов на сервер

Core Keeper: установка модов на сервер

MAATRIX GAMES

У Core Keeper нет своей мастерской модов и нет встроенного менеджера — всё держится на комьюнити-инструменте BepInEx и внешнем каталоге Thunderstore. Из-за этого сама механика «поставить мод на сервер» пугает новичков больше, чем должна: на деле это копирование одной папки, но шаг влево — и сервер либо не стартует, либо игроки видят «incompatible version» на экране подключения. Разберём процесс по шагам, без магии.

Что вообще нужно, чтобы завести моды на сервере Core Keeper

Core Keeper построен на Unity, и модовое комьюнити использует для него BepInEx — тот же инжектор, что стоит за модами Valheim, Risk of Rain 2 и десятков других Unity-игр. Официальной поддержки модов от Pugstorm (разработчик игры) нет: всё, что вы ставите, — неофициальные плагины, написанные и поддерживаемые энтузиастами. Это не плохо (комьюнити достаточно активное), но означает, что после каждого крупного патча игры часть модов может сломаться до тех пор, пока авторы их не обновят.

Для работы нужны три вещи:

  • уже поднятый dedicated-сервер Core Keeper (если ещё не разворачивали — есть отдельная инструкция по установке сервера через SteamCMD);
  • BepInEx — сам загрузчик, который цепляется к процессу сервера и подгружает плагины;
  • набор модов из Thunderstore — там же, где берут BepInEx.

Важный нюанс, который путает новичков: у сервера и у клиента — отдельные установки BepInEx. Мод на сервере не «раздаётся» игрокам автоматически, как в Minecraft с Forge. Каждый игрок, который хочет играть на модифицированном сервере, ставит те же моды к себе в клиент вручную (или через r2modman — см. ниже). Серверные и чисто визуальные/клиентские моды в этом смысле различаются: одни обязаны стоять и там, и там, другие — только на клиенте.

Ставим BepInEx на сервер вручную

Если у вас Linux-сервер (типичный случай для аренды VPS), схема такая. Заходим в директорию установки сервера — в примерах из базовой инструкции это ~/coreserver:

cd ~/coreserver
ls

Убедитесь, что видите исполняемый файл сервера (в Linux-сборке это обычно CoreKeeperServer — если имя другое, ориентируйтесь на реальный вывод ls, разработчик иногда меняет название между сборками).

Дальше скачиваем архив BepInEx под Linux x64 (актуальная стабильная ветка — BepInEx 5.4.x, не путайте с experimental BepInEx 6 — под Core Keeper он на конец августа 2026 всё ещё считается менее стабильным для серверов):

mkdir -p ~/downloads && cd ~/downloads
wget https://github.com/BepInEx/BepInEx/releases/download/v5.4.23.2/BepInEx_linux_x64_5.4.23.2.zip
unzip BepInEx_linux_x64_5.4.23.2.zip -d bepinex_temp

Копируем содержимое архива (папки BepInEx/, doorstop_libs/, файлы run_bepinex.sh, libdoorstop.so, .doorstop_version) прямо в корень серверной директории — рядом с исполняемым файлом:

cp -r ~/downloads/bepinex_temp/* ~/coreserver/
chmod +x ~/coreserver/run_bepinex.sh

Проверьте ~/coreserver/doorstop_config.ini — там должна быть указана правильная точка входа. Обычно достаточно значений по умолчанию, но если сервер не поднимается, сверьте параметр target_assembly с реальным путём к managed-сборке игры (*_Data/Managed/Assembly-CSharp.dll).

Запускать сервер теперь нужно не напрямую, а через обёртку:

./run_bepinex.sh

Если вы используете systemd-юнит из базовой инструкции — поменяйте ExecStart так, чтобы он указывал на run_bepinex.sh, а не на бинарник сервера напрямую, иначе BepInEx просто не подхватится при автозапуске.

После первого запуска в папке появится BepInEx/plugins/ — сюда и кладутся моды — и BepInEx/LogOutput.log, куда стоит заглядывать первым делом при любой проблеме.

Поднять сервер Core Keeper за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

r2modman: собираем модпак локально и переносим на сервер

Ставить каждый мод вручную по одному — рабочий, но муторный способ, особенно если модпак из 15-20 плагинов с зависимостями друг от друга. Практичнее собрать профиль в r2modman (или в его форке Thunderstore Mod Manager — оба совместимы с одним и тем же каталогом) на своей машине, а потом просто скопировать готовую папку BepInEx на сервер.

Порядок действий:

  1. Установите r2modman, выберите игру Core Keeper в списке (если её нет в быстром поиске — добавьте вручную по названию, каталог поддерживается официально).
  2. Создайте новый профиль, например server-pack.
  3. Через вкладку «Online» находите нужные моды на Thunderstore прямо из интерфейса менеджера и жмёте «Install» — r2modman сам подтянет зависимости (BepInExPack ставится первым автоматически).
  4. После того как набор модов собран и вы убедились, что игра с ним запускается локально без ошибок, откройте профиль через кнопку «Settings → Browse profile folder».

Внутри вы увидите ту же структуру BepInEx/, что и на сервере. Дальше — обычное копирование:

scp -r "/путь/к/профилю/r2modman/CoreKeeper/profiles/server-pack/BepInEx" user@ваш-сервер:~/coreserver/

Перед копированием стоит удалить с сервера чисто клиентские плагины (мод-меню, косметика, UI-твики) — они бесполезны на dedicated-сервере и иногда конфликтуют с headless-режимом, вызывая ошибки в логе при старте без графики.

Синхронизация версий модов между клиентом и сервером

Это источник половины жалоб «сервер не пускает» после установки модов. Core Keeper при подключении сверяет контрольные суммы сборки — если у сервера и клиента разные версии одного и того же мода (даже патч-версия вроде 1.2.3 против 1.2.4), клиент получит отказ в подключении или явное сообщение о несовпадении версии.

Практика, которая снимает большинство проблем:

  • Держите один источник правды — профиль r2modman, из которого разворачивается и клиентская, и серверная сборка. Обновили мод в профиле — пересобрали и раскатали на сервер, и разослали игрокам архив свежего BepInEx/plugins/ (или ссылку на тот же r2modman-профиль, который можно экспортировать кодом через «Export profile»).
  • В r2modman есть функция «Export code» — она генерирует короткий код, который игрок вводит в своём r2modman, и менеджер сам скачивает точно тот же набор модов той же версии. Это надёжнее, чем раздавать zip-архивы вручную.
  • Отключите автообновление модов на сервере, если оно не согласовано с обновлением у игроков — иначе менеджер модов на сервере обновит плагин ночью, а утром половина игроков не сможет зайти. Обновляйте моды на сервере вручную и только вместе с рассылкой новой версии модпака игрокам.
  • Перед вайпом или крупным ивентом обязательно предупредите игроков заранее о смене состава модов, а не постфактум.
Что не совпалоЧто видит игрокЧто проверить
Версия одного мода«Version mismatch» / отказ подключенияХэш-версии плагина в логе клиента и сервера
Мод есть на сервере, нет у клиентаКраш при загрузке мира или невидимые объектыПолнота набора плагинов у игрока
Мод есть у клиента, нет на сервереОбычно работает, но синхронизация части контента ломаетсяНе критично для чисто визуальных модов, критично для геймплейных
Разная версия BepInExСервер не стартует вовсеBepInEx/LogOutput.log, строка с версией дооrstop

Где брать проверенные моды на Thunderstore

У Core Keeper на Thunderstore есть отдельное комьюнити-пространство (thunderstore.io, категория Core Keeper) — это основной и, по сути, единственный массовый источник модов для игры, аналог того, что Nexus Mods для Skyrim. Ставить моды из случайных архивов на сторонних форумах не стоит — Thunderstore хотя бы даёт открытый исходный код большинства пакетов и статистику скачиваний.

На что смотреть при выборе мода, не полагаясь на разрекламированные цифры:

  • Дата последнего обновления. Если мод не обновлялся много месяцев, а игра за это время получила крупный патч — есть риск несовместимости. Не называйте себе точный «срок жизни» мода — тестируйте на локальном сервере перед раскаткой на прод.
  • Количество зависимостей. Чем длиннее цепочка зависимостей у мода, тем выше шанс, что что-то в ней разойдётся по версиям. Простые QoL-моды (быстрый крафт, доп. слоты сумки, подсветка руды) обычно самодостаточны и безопаснее сложных геймплейных оверхолов.
  • Раздел changelog на странице мода. Добросовестные авторы описывают breaking changes — это прямая подсказка, обновлять ли мод синхронно на сервере и у всех игроков или ставить на паузу.
  • Категория «Server-side» / «Client-side» / «Both», если автор её проставил в описании — экономит время на угадывание, нужно ли раздавать мод игрокам.

Если сомневаетесь, что подобрать — свежую популярную сборку или проверенную временем связку из 3-4 стабильных модов, вопрос разобран отдельно: свежий модпак или проверенный временем. Для Core Keeper, где модовая сцена компактнее, чем у того же Minecraft, разумный компромисс — брать топовые по скачиваниям пакеты в категории QoL и не гнаться за экспериментальными геймплейными оверхолами на постоянном сервере с прогрессом игроков.

Типичные ошибки при установке модов на Core Keeper

Сервер не стартует после установки BepInEx. Первым делом смотрите BepInEx/LogOutput.log — если файл вообще не создался, значит doorstop не подцепился к процессу: проверьте, что запускаете именно run_bepinex.sh, а не бинарник напрямую, и что у скрипта выставлены права на выполнение (chmod +x).

Мод стоит, но эффекта ноль. Частая причина — плагин попал не в BepInEx/plugins/, а на уровень выше или в подпапку с лишней вложенностью после распаковки архива. Проверьте, что .dll файла мода лежит именно в plugins/, а не в plugins/ИмяМода-1.0.0/plugins/ (двойная вложенность — частый артефакт ручной распаковки архивов с Thunderstore).

«Incompatible mod version» у части игроков. Смотрите таблицу синхронизации версий выше — почти всегда кто-то забыл обновить один мод из набора, а не весь профиль целиком.

Сервер падает при заходе конкретного игрока, а не при старте. Обычно это конфликт двух модов, патчащих одну и ту же игровую систему (например, два разных мода лезут в инвентарь или крафт-меню одновременно). Отключайте плагины по одному через переименование .dll в .dll.disabled — это быстрее, чем полная переустановка, и не требует удаления файла.

Мир не грузится после добавления мода с новым контентом (новые предметы/руды). Это не всегда баг мода — иногда игра действительно не может смэтчить сохранённые данные со старым миром без нужного мода. Если сталкивались с похожей проблемой без модов вообще, разбор общих причин есть в статье Core Keeper: проблема с сохранением — часть шагов диагностики применима и здесь.

Сервер вообще не запускается после смены модпака. Если проблема не в модах, а в самом процессе сервера, — общий разбор есть в статье Core Keeper не запускается.

Поднять сервер Core Keeper за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Можно ли ставить моды без BepInEx, каким-то встроенным способом?

Нет, у Core Keeper нет официальной поддержки модов и встроенного загрузчика — BepInEx (в связке с Thunderstore-каталогом) на конец августа 2026 остаётся единственным массовым способом.

Обязательно ли игрокам ставить те же моды, что на сервере?

Зависит от типа мода. Геймплейные и добавляющие контент — да, обязательно и той же версии. Чисто визуальные клиентские твики (например, интерфейсные) обычно можно не синхронизировать, но безопаснее ориентироваться на пометку автора мода «Server-side/Client-side», если она есть.

Ломает ли установка модов ачивменты или прогресс в Steam?

Сама по себе установка BepInEx не блокирует запуск игры и не удаляет прогресс, но конкретные моды, которые лезут в систему сохранений, стоит тестировать на резервной копии мира, а не сразу на боевом сервере.

Что делать, если после обновления Core Keeper все моды разом сломались?

Дождитесь, пока авторы модов и/или сама команда BepInEx выпустят обновление под новую версию игры — до этого стоит держать сервер на предыдущей версии игры (через app_update с флагом конкретного билда в SteamCMD), если модовый контент критичен для вашего сообщества.

Как быстро откатить мод, если после обновления что-то сломалось?

Если моды ставили через r2modman-профиль — просто откатите профиль или отдельный мод до предыдущей версии через интерфейс менеджера и повторно скопируйте BepInEx/plugins/ на сервер. При ручной установке — держите бэкап папки BepInEx/plugins/ перед каждым обновлением, это буквально одна команда cp -r.