tModLoader: установка модов на Terraria-сервер
Ванильная Terraria — крепкая база, но рано или поздно хочется Calamity, Thorium или Magic Storage, а голый дедик модов не понимает вообще никак. За моды в Terraria отвечает отдельная штука — tModLoader, который распространяется как самостоятельное приложение в Steam, а не патч поверх обычной игры. Разберём, как поставить именно модовый сервер: от установки через SteamCMD до синхронизации версий с игроками, чтобы никто не упёрся в «incompatible mod version» на ровном месте.
Содержание
- Что такое tModLoader и чем модовый сервер отличается от ванильного
- Устанавливаем tModLoader-сервер через SteamCMD
- Структура папок и мир сервера
- Включаем моды: enabled.json, мод-браузер и Steam Workshop
- serverconfig.txt и запуск
- Клиенты: та же версия tModLoader и тот же набор модов
- Нагрузка на сервер: сколько реально нужно ресурсов
Что такое tModLoader и чем модовый сервер отличается от ванильного
tModLoader (в Steam чаще видно как tModLoader, App ID 1281930) — не мод, а отдельный загрузчик модов для Terraria, который сам является полноценным Steam-приложением поверх твоей уже купленной Terraria. Технически это форк движка игры с API для модов на C# — почти как Forge или Fabric у Minecraft: один фреймворк-загрузчик, а вокруг него — тысячи модов на его платформе, от косметики до тотальных конверсий вроде Calamity, которые добавляют десятки боссов и новый эндгейм.
Если сервер под Terraria ещё не поднят вообще — начни с базовой установки, там же разбор serverconfig.txt, порта 7777 и systemd-автозапуска: как поднять сервер Terraria. Дальше в статье считаем, что общая логика дедика тебе знакома, и говорим именно про модовую надстройку — устанавливается она отдельно, со своим набором исполняемых файлов, и с ванильным TerrariaServer.bin не смешивается.
Ключевая разница с ванилью: ванильный дедик Terraria (App ID 105601) ставится анонимно через SteamCMD и не требует привязки к аккаунту. tModLoader — нет: это полноценная Steam-игра, привязанная к владению Terraria, поэтому установка требует логина реальным Steam-аккаунтом (с кодом Steam Guard), анонимный вход тут не пройдёт.
Устанавливаем tModLoader-сервер через SteamCMD
Официальная команда tModLoader публикует вместе с каждым релизом на GitHub готовый набор скриптов для линуксовых дедиков — архив с приставкой dedicated-server-utils в разделе Releases репозитория tModLoader/tModLoader. Внутри — manage-tModLoaderServer.sh, который сам дёргает SteamCMD, ставит моды и запускает сервер. Это удобнее, чем городить SteamCMD-команды руками, поэтому берём его:
cd /opt
sudo mkdir tmodloader-server && sudo chown $USER:$USER tmodloader-server
cd tmodloader-server
wget https://github.com/tModLoader/tModLoader/releases/latest/download/dedicated-server-utils.zip
unzip dedicated-server-utils.zip
chmod +x manage-tModLoaderServer.sh
Установка самого tModLoader:
./manage-tModLoaderServer.sh install-tml --username твой_steam_логин
Скрипт запросит пароль и, если включена двухфакторка, код Steam Guard — введи как обычно при логине в SteamCMD. По умолчанию файлы лягут в ~/Steam/steamapps/common/tModLoader (--folder /путь меняет расположение).
Если по каким-то причинам не хочешь тащить сторонний скрипт, тот же результат даёт и голый SteamCMD — только логиниться придётся под реальным аккаунтом, а не anonymous, как в ванильном дедике:
steamcmd +login твой_steam_логин \
+force_install_dir /opt/tmodloader-server \
+app_update 1281930 validate +quit
Оба пути кладут одинаковый набор бинарников: под Linux нужен именно скрипт запуска start-tModLoaderServer.sh, который стоит рядом с исполняемым файлом сервера после установки.
Поднять сервер Terraria за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверСтруктура папок и мир сервера
После установки полезно понимать, где что лежит — модовый дедик разносит установочные файлы и пользовательские данные по разным путям, в отличие от ванильного сервера, где всё компактно в одной папке:
~/Steam/steamapps/common/tModLoader/ # сам загрузчик, бинарники, скрипты
~/.local/share/Terraria/ModLoader/Mods/ # .tmod-файлы модов и enabled.json
~/.local/share/Terraria/ModLoader/Worlds/ # файлы миров (.wld)
Точные пути к папке модов и миров можно (и часто нужно) переопределить флагами -modpath и -worldpath при запуске — это удобно, если хочешь держать всё внутри /opt/tmodloader-server рядом с бинарником, а не в домашней директории пользователя. Мир создаётся тем же способом, что и в ванильном дедике: либо интерактивным мастером при первом запуске без конфига, либо автоматически через autocreate= в serverconfig.txt — логика та же, что описана в статье про базовую установку, просто путь к файлу мира теперь смотрит в модовую папку.
Если хочешь перенести уже обжитой мир с домашнего компа — учти, что мир, в котором ты успел применить контент из тяжёлых модов (новые руды, боссов, предметы), без этих же модов на сервере откроется с ошибками или вовсе не загрузится. Переносить голый ванильный .wld на модовый сервер безопасно, обратное — не всегда.
Включаем моды: enabled.json, мод-браузер и Steam Workshop
Здесь у tModLoader три параллельных способа получить и включить моды, и разница между ними — частый источник путаницы.
1. Мод-браузер прямо на сервере. Если консоль сервера интерактивна (не через systemd, а обычным запуском в screen/tmux), у tModLoader есть встроенные консольные команды для управления модами через тот же каталог, что видит клиентский Mod Browser. Быстро для одиночных модов, неудобно для большого списка.
2. Ручная раскладка .tmod + enabled.json. Каждый мод — это файл ИмяМода.tmod. Кладёшь нужные файлы в Mods/, а рядом заводишь enabled.json со списком внутренних имён модов (не файлов пользователя, а именно technical name мода — обычно совпадает с названием файла без расширения):
[
"ThoriumMod",
"CalamityMod",
"CalamityModMusic",
"MagicStorage"
]
Без этого файла сервер вообще не включит ни один установленный мод — сам факт, что .tmod лежит в папке, ничего не гарантирует.
3. Steam Workshop через install.txt. Самый удобный путь для солидного списка модов. На своей машине в клиенте tModLoader подпишись на нужные моды в Workshop, собери их в один пак через "Save Enabled as New Mod Pack" — в результате получишь папку с готовыми enabled.json и install.txt (список Workshop ID модов). Оба файла копируешь в папку сервера, и команда:
./manage-tModLoaderServer.sh install-mods
сама скачает с Workshop всё, что перечислено в install.txt, и включит согласно enabled.json. Это ровно тот же механизм, что используют для клиентских Workshop-модов в Project Zomboid — список ID вместо ручной раскладки архивов.
serverconfig.txt и запуск
Конфиг работает по тем же принципам, что и в ванильном дедике, плюс модовые пути. Пример рабочего serverconfig.txt:
world=/opt/tmodloader-server/Worlds/MyModWorld.wld
autocreate=2
worldname=MyModWorld
difficulty=0
maxplayers=8
port=7777
password=
motd=Модовый сервер, го фармить лут
modpath=/opt/tmodloader-server/Mods
upnp=0
Запуск:
./start-tModLoaderServer.sh -config serverconfig.txt
или через встроенный менеджер:
./manage-tModLoaderServer.sh start
Для боевого сервера так же, как и с ванилью, лучше не держать SSH-сессию открытой руками, а завернуть запуск в systemd-юнит с Restart=on-failure — структура юнита один в один повторяет ту, что разобрана в статье про базовый дедик, просто ExecStart указывает на start-tModLoaderServer.sh вместо TerrariaServer.bin. Учти нюанс: под systemd теряется интерактивная консоль сервера (команды вроде save, kick), для управления на лету по-прежнему актуален вариант с screen/tmux вместо прямого systemd-запуска.
Клиенты: та же версия tModLoader и тот же набор модов
Это главная причина «не могу зайти на модовый сервер друга», и разбираться с ней приходится чаще, чем с портами. Для подключения клиенту тоже нужен tModLoader (не ванильная Terraria) — устанавливается он в Steam так же, как и на сервер, только без флагов -config и -worldpath, обычным запуском через Steam-библиотеку. Дальше два жёстких требования:
- Версия tModLoader должна совпадать. tModLoader раз в несколько месяцев выпускает новые стабильные сборки, синхронизированные с патчами самой Terraria — клиент со старой версией на новый сервер (и наоборот) не подключится, попытка входа сразу вернёт ошибку о несовместимой версии.
- Набор модов и их версии должны совпадать один в один. Если на сервере стоит
CalamityMod 3.x, а у игрока —3.y, часть контента (новые предметы, рецепты, сетевые данные) может разъехаться, а в худшем случае сервер откажет в подключении по чек-сумме модов.
Проще всего избежать рассинхрона — раздать игрокам тот же Workshop-пак, что и на сервере: подписка на коллекцию модов в Steam Workshop подтягивает актуальные версии сама, и игроку не нужно вручную гоняться за .tmod-файлами по Discord. Похожая практика с общим профилем модов разобрана в статье про BepInEx для Valheim — идея та же: один источник правды по версиям модов на всех.
Нагрузка на сервер: сколько реально нужно ресурсов
Честно: модовый Terraria-сервер ощутимо прожорливее ванильного, и разница ощутима уже на первом десятке модов. Ванильному дедику Terraria хватает 1 ГБ RAM с запасом (это и есть базовый тариф в каталоге) — модовому нужно закладывать больше, и вот почему:
- Каждый загруженный мод — это отдельная .NET-сборка, которая занимает память сама по себе, ещё до того, как на сервере появится хоть один игрок.
- Тяжёлые контент-моды (Calamity, Thorium, Fargo's и подобные) добавляют тысячи новых сущностей — предметов, тайлов, NPC — и это заметно увеличивает как потребление RAM, так и время старта сервера (генерация/загрузка мира с активным контент-модом ощутимо дольше ванильной).
- CPU-нагрузка растёт не так резко, как RAM, но AI-хуки модовых боссов и NPC (у Calamity их особенно много) дают заметные пики при активном бое, особенно на модовых событиях с толпой врагов.
Точных цифр «столько-то мегабайт на мод» никто честно не назовёт — сильно зависит от конкретного набора модов и того, насколько активно они меняют мир. Как рабочий ориентир: для лёгкого набора из 5–10 QoL-модов 2 ГБ обычно достаточно, а для тяжёлых сборок с Calamity/Thorium и толпой игроков разумнее закладывать 4 ГБ и выше — и проверить это на своём конкретном модлисте до того, как звать всю группу на постоянку, а не постфактум по жалобам на лаги.
Поднять сервер Terraria за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Можно ли использовать один и тот же VPS для ванильного и модового сервера Terraria по очереди?
Да, они ставятся в разные папки и не конфликтуют — можно держать оба набора файлов и переключать, какой юнит/скрипт запускать, но одновременно на одном порту два сервера не поднимешь.
Нужно ли покупать Terraria отдельно для tModLoader?
Нет отдельной покупки — tModLoader бесплатен в Steam, но требует, чтобы на аккаунте, под которым он ставится и запускается, была куплена оригинальная Terraria.
Что делать, если сервер не стартует после добавления нового мода?
Убери его .tmod из папки Mods/ и соответствующую строку из enabled.json, перезапусти — если сервер поднимается, проблема локализована в этом моде (чаще всего это нехватка мод-зависимости, которую тоже нужно положить в Mods/).
Мод-браузер в самой игре — это то же самое, что установка через install.txt?
Нет: внутриигровой Mod Browser — это отдельная площадка модов (не Steam Workshop), у неё свой каталог и свой способ скачивания на сервер через консольные команды, тогда как install.txt работает конкретно со Steam Workshop-подписками. Часть модов есть только в одном из двух мест, часть — в обоих.
Как обновить моды на сервере, не потеряв мир?
Обновление модов не трогает файлы миров в Worlds/ — обнови .tmod-файлы (через install-mods для Workshop-модов или вручную) и перезапусти сервер, мир останется как был.