Pterohost docs

Terraria tModLoader: сервер с модами

Как запустить сервер Terraria с модами через tModLoader: установка, настройка модов, синхронизация с клиентом, serverconfig.txt и решение проблем.

Кратко: tModLoader - официальная платформа модификаций для Terraria, выпускаемая в Steam как отдельная игра. Чтобы запустить совместный сервер с модами, нужно установить серверную часть tModLoader, положить .tmod-файлы в папку Mods, прописать конфиг и убедиться, что версии совпадают у всех игроков.

Terraria tModLoader: сервер с модами

tModLoader превратил Terraria из законченной игры в постоянно расширяемую платформу. Начиная с версии 1.4 tModLoader распространяется через Steam как отдельное приложение (App ID 1281930) и поддерживает Workshop, что упрощает установку модов до нескольких кликов. На 2026 год актуальная стабильная ветка - tModLoader 1.4.4.x, основанная на Terraria 1.4.4. Серверная часть полностью консольная, работает на Linux, Windows и внутри Docker, а мод-менеджмент через enabled.json позволяет гибко управлять набором модов без переустановки. В этой статье разберём полный цикл: от скачивания серверного пакета до синхронизации модов с клиентами и решения типичных проблем.

Pterohost - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, оптимизированный для Terraria и tModLoader. Промокод 4START даёт -20% на первый заказ. Заказать сервер Terraria

Отличия tModLoader-сервера от ванильного

Стандартный сервер Terraria (TerrariaServer.exe / TerrariaServer) не умеет загружать .tmod-файлы - это задача tModLoader. Под капотом tModLoader добавляет слой на основе .NET, который инициализирует моды до старта игрового мира. Это означает:

  • Время запуска дольше (загрузка и компиляция модов при первом запуске).
  • Потребление RAM выше: ванильный сервер требует ~300 MB, tModLoader с 15-20 модами - 1-3 GB.
  • Версия tModLoader должна совпадать у сервера и каждого клиента.
  • Некоторые моды требуют конкретную подверсию Terraria; читай описание мода перед установкой.

Системные требования сервера

ПараметрМинимумРекомендуется
CPU2 ядра4 ядра
RAM2 GB4 GB и более
Диск5 GB (SSD)10 GB NVMe
ОСUbuntu 22.04 / Debian 12Ubuntu 24.04 LTS
.NET6.0 (встроен в tML)9.0 SDK (опц.)

Для большого количества модов (30+) и 10+ игроков - от 6 GB RAM. tModLoader сильно опирается на скорость диска при первой загрузке мода.

Установка tModLoader-сервера на Linux

Способ 1: через SteamCMD (рекомендуется)

SteamCMD - официальный инструмент Valve для загрузки игр без GUI.

# Установка SteamCMD (Debian/Ubuntu)
apt-get update && apt-get install -y steamcmd

# Создаём директорию для сервера
mkdir -p /opt/tmodloader && cd /opt/tmodloader

# Скачиваем tModLoader (App ID 1281930)
steamcmd +force_install_dir /opt/tmodloader \
         +login anonymous \
         +app_update 1281930 validate \
         +quit

После скачивания в /opt/tmodloader появятся файлы сервера, включая start-tModLoaderServer.sh и tModLoader.dll.

Способ 2: ручная загрузка через GitHub

Если SteamCMD недоступен, можно скачать серверный архив с GitHub-релизов tModLoader:

# Замени VERSION на актуальную, например 2024.11.3.0
VERSION=2024.11.3.0
wget https://github.com/tModLoader/tModLoader/releases/download/v${VERSION}/tModLoader.zip
unzip tModLoader.zip -d /opt/tmodloader
chmod +x /opt/tmodloader/start-tModLoaderServer.sh

Проверяй актуальный тег на странице https://github.com/tModLoader/tModLoader/releases.

Запуск сервера

cd /opt/tmodloader
# Базовый запуск с конфиг-файлом
dotnet tModLoader.dll -server -config /opt/tmodloader/serverconfig.txt

# Или через скрипт-обёртку
./start-tModLoaderServer.sh -config /opt/tmodloader/serverconfig.txt

Флаг -nosteam нужен только если машина не авторизована в Steam. При работе через Pterohost это обычно не требуется.

Настройка serverconfig.txt

Файл serverconfig.txt содержит все параметры запуска. Создай его вручную или скопируй шаблон из папки сервера.

# Путь к миру (если файл не существует - создаётся автоматически)
world=/root/.local/share/Terraria/tModLoader/Worlds/MyWorld.wld

# Автоматически создать мир с именем, если нет файла .wld
autocreate=3
# Размер мира: 1=маленький, 2=средний, 3=большой

worldname=MyWorld

# Имя мира для новой генерации
seed=

# Максимальное число игроков
maxplayers=16

# Порт сервера (по умолчанию 7777)
port=7777

# Пароль для входа (оставь пустым для публичного сервера)
password=

# Уровень сложности: 0=нормальный, 1=эксперт, 2=мастер, 3=путешествие
difficulty=1

# Язык сервера (en-US / ru-RU)
lang=en-US

# Вывод в консоль без GUI
secure=1

# Автосохранение каждые N минут (0 = выключено)
# tModLoader использует встроенный цикл автосохранения

Основные флаги командной строки, которые переопределяют config:

ФлагОписание
-port 7777Порт сервера
-maxplayers 16Максимум игроков
-world /path/to/world.wldПрямой путь к миру
-password passПароль
-nosteamОтключить Steam API
-config pathПуть к конфиг-файлу

Установка модов на сервер

Структура папки модов

По умолчанию моды хранятся в:

  • Linux: ~/.local/share/Terraria/tModLoader/Mods/
  • Windows: %AppData%\Terraria\tModLoader\Mods\

Если сервер запускается от root или нестандартного пользователя, путь может отличаться. Можно явно задать через переменную окружения TMODLOADER_MODS_DIR (поддерживается с 0.12+) или символическую ссылку.

# Создаём папку модов и переходим в неё
mkdir -p ~/.local/share/Terraria/tModLoader/Mods
cd ~/.local/share/Terraria/tModLoader/Mods

Загрузка .tmod-файлов

Каждый мод - это файл с расширением .tmod. Способы получить их:

Через Steam Workshop (если есть клиентская машина)

  1. Подпишись на мод через Steam Workshop в клиенте tModLoader.
  2. Найди файл в ~/.steam/steam/steamapps/workshop/content/1281930/<modid>/.
  3. Скопируй .tmod на сервер в папку Mods.

Напрямую через mod.io или ссылку автора

Многие популярные моды дублируются на mod.io. Скачай .tmod-файл и помести в папку Mods.

Через Workshop-утилиту SteamCMD

steamcmd +login anonymous \
         +workshop_download_item 1281930 <WORKSHOP_ID> \
         +quit
# Файл появится в ~/.steam/steamapps/workshop/content/1281930/<WORKSHOP_ID>/

Замени <WORKSHOP_ID> на числовой ID мода из URL страницы Workshop.

Управление через enabled.json

После первого запуска tModLoader генерирует enabled.json в папке Mods. Этот файл определяет, какие моды загружаются:

{
  "ModLoader": true,
  "CalamityMod": true,
  "ThoriumMod": true,
  "MagicStorage": true,
  "BossChecklist": false
}
  • true - мод активен при следующем запуске сервера.
  • false - мод установлен, но не загружается.

Можно отредактировать файл вручную, не удаляя .tmod-файлы. После изменений перезапусти сервер.

Пример: чтобы добавить мод CalamityMod в список без перезапуска установки:

# Добавляем мод в enabled.json через jq
jq '. + {"CalamityMod": true}' enabled.json > tmp.json && mv tmp.json enabled.json

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

Это самый частый источник проблем при совместной игре. Правила синхронизации:

  1. Версии tModLoader должны совпадать у сервера и каждого клиента - до последней цифры (например, 2024.11.3.0). Steam обновляет клиент автоматически, сервер - только вручную или через SteamCMD.

  2. Набор модов должен совпадать. Если на сервере включён мод X, клиент без него не сможет подключиться. Исключение - моды, помеченные авторами как “server-side only” (только серверные), не требуют установки у клиента.

  3. Версии самих модов должны совпадать. Клиент с CalamityMod 2.0.8 не подключится к серверу с CalamityMod 2.0.7.

Рекомендуемый workflow для управления модпаком:

# Создаём список модов в виде текстового файла для команды
ls ~/.local/share/Terraria/tModLoader/Mods/*.tmod | xargs -I{} basename {} .tmod > modlist.txt
cat modlist.txt

Раздай modlist.txt игрокам - пусть установят те же моды через Mod Browser в клиенте.

Автоматическая раздача модов клиентам

tModLoader поддерживает механизм автоматической синхронизации модов при подключении (ModPacks / server-side mod sync). Чтобы включить его, добавь в serverconfig.txt:

# Разрешить серверу отправлять моды клиентам
autoSyncMods=1

Этот параметр присутствует в tModLoader начиная с ветки 1.4.4. При подключении клиент видит список недостающих модов и может скачать их прямо с сервера. Функция работает только с модами, не требующими Steam-авторизации (то есть свободно распространяемыми).

Популярные моды для серверной игры

МодОписаниеРекомендуется
Calamity ModОгромный контентный мод: боссы, биомы, предметыДа
Thorium ModРасширение ванильного контента, классыДа
MagicStorageЦентрализованное хранилище предметовДа (QoL)
Boss ChecklistСписок боссов с подсказкамиДа (QoL)
Recipe BrowserРасширенный браузер крафтаДа (QoL)
CensusNPC-трекер с дополнительной инфойОпц.
Fargo’s Mutant ModNPC для покупки расходниковОпц.
Cheat SheetЧитерные инструменты для тестированияТолько на тест-серверах

Большие контентные моды (Calamity, Thorium) значительно увеличивают нагрузку. Включай их только если сервер имеет достаточно RAM.

Systemd-сервис для автозапуска

Чтобы сервер поднимался после перезагрузки хоста, создай systemd-юнит:

# /etc/systemd/system/tmodloader.service
[Unit]
Description=Terraria tModLoader Server
After=network.target

[Service]
Type=simple
User=terraria
WorkingDirectory=/opt/tmodloader
ExecStart=/usr/bin/dotnet /opt/tmodloader/tModLoader.dll -server -config /opt/tmodloader/serverconfig.txt
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
# Создаём пользователя без прав sudo
useradd -r -s /bin/false terraria
chown -R terraria:terraria /opt/tmodloader ~/.local/share/Terraria

# Активируем сервис
systemctl daemon-reload
systemctl enable tmodloader
systemctl start tmodloader
systemctl status tmodloader

Логи смотри командой journalctl -u tmodloader -f.

Частые проблемы и их решение

Ошибка “Mod version mismatch”

Возникает, если версия мода на сервере и у клиента отличается.

Решение: синхронизируй версии. Найди актуальную версию мода в Mod Browser (клиент tModLoader - Mods - Mod Browser), скачай .tmod и замени на сервере.

# Смотрим версию установленного мода
ls -la ~/.local/share/Terraria/tModLoader/Mods/CalamityMod*.tmod

Сервер падает при загрузке мира

Обычно причина - недостаток RAM или несовместимые моды.

# Проверь потребление памяти при старте
journalctl -u tmodloader --since "5 minutes ago" | grep -i "error\|exception\|out of memory"

Попробуй отключить по одному последние добавленные моды (через enabled.json) и найди виновника.

Порт 7777 недоступен снаружи

# Проверяем, слушает ли сервер порт
ss -tlnp | grep 7777

# Проверяем firewall (ufw)
ufw status
ufw allow 7777/tcp

# Проверяем iptables
iptables -L -n | grep 7777

На VPS дополнительно проверь правила в панели управления хостинга (security groups / firewall rules).

Мир не создаётся автоматически

Если в serverconfig.txt стоит autocreate=3, но мир не создаётся - убедись, что путь в параметре world указывает на несуществующий файл с расширением .wld (а не на директорию).

# Путь должен заканчиваться на .wld
world=/home/terraria/.local/share/Terraria/tModLoader/Worlds/MyWorld.wld

tModLoader не видит .tmod-файлы

Убедись, что:

  • Файлы лежат именно в папке Mods, не в подпапке.
  • Права на файлы принадлежат пользователю, от которого запущен сервер.
  • Расширение файла .tmod (не .tmod.zip или другое).
# Проверяем права
ls -la ~/.local/share/Terraria/tModLoader/Mods/
chown -R $(whoami) ~/.local/share/Terraria/tModLoader/Mods/

Ошибка “tModLoader requires .NET 6.0”

Установи .NET runtime:

# Debian/Ubuntu
apt-get install -y dotnet-runtime-6.0

# Или используй официальный скрипт Microsoft
wget https://dot.net/v1/dotnet-install.sh
bash dotnet-install.sh --runtime dotnet --version 6.0

tModLoader 1.4.4+ работает на .NET 6, более новые ночные сборки могут требовать .NET 8 или 9.

Обновление сервера и модов

Обновление tModLoader

# Через SteamCMD
steamcmd +force_install_dir /opt/tmodloader \
         +login anonymous \
         +app_update 1281930 validate \
         +quit

# Перезапуск сервиса
systemctl restart tmodloader

После обновления tModLoader часть модов может перестать работать из-за API-изменений. Проверяй совместимость в описании каждого мода.

Обновление модов

Простого механизма обновления всех модов на сервере без Steam-клиента нет. Варианты:

  1. Обновляй моды через клиент на другой машине и копируй .tmod на сервер.
  2. Используй SteamCMD с указанием конкретного Workshop ID для каждого мода.
  3. Следи за обновлениями на страницах модов в Steam Workshop и mod.io.

Связанные материалы

Если ты только начинаешь знакомство с серверами Terraria, прочитай базовый гайд Сервер Terraria: установка и настройка - там разобраны ванильные параметры и первый запуск без модов. Для понимания модификаций на других survival-играх пригодятся статьи Моды для сервера Valheim и Сервер Valheim: установка и настройка.

Заключение

tModLoader-сервер Terraria - это стандартный инструментарий для модного мультиплеера, хорошо задокументированный и стабильно работающий на Linux-серверах. Ключевые моменты: следи за совпадением версий tModLoader и модов у всех участников, управляй активными модами через enabled.json, и следи за потреблением RAM при большом модпаке. Systemd-сервис обеспечивает автозапуск, а SteamCMD - удобное обновление без GUI. При правильной настройке сервер работает стабильно неделями без ручного вмешательства.

Pterohost - хостинг для Terraria с tModLoader, NVMe-дисками и круглосуточной поддержкой, которая поможет настроить любой модпак. Промокод 4START даёт -20% на первый заказ. Заказать сервер Terraria