Terraria Руководство

Terraria: как исправить несовпадение версии сервера и клиента

Сверьте версию PC-клиента Terraria и запущенного сервера, отделите vanilla от модификаций и сохраните мир перед обновлением.

Terraria: как исправить несовпадение версии сервера и клиента

Если Terraria сообщает о другой версии сервера, сравните полный номер клиента со строкой версии при запуске самого сервера. Замена архива на диске не обновляет уже работающий процесс. Сначала выясните, какой экземпляр принимает игроков, и только потом выбирайте пакет для обновления.

Речь о vanilla Terraria для PC и Linux-установке 1.4.5.8 из инструкции по запуску: пользователь terraria, конфигурация /srv/terraria/serverconfig.txt, консоль в tmux. Для консолей, мобильной версии, tModLoader и TShock совместимость проверяют отдельно. Похожий номер у разных продуктов сам по себе ничего не гарантирует.

Сверьте клиент, работающий процесс и путь запуска#

Запишите полный номер версии каждого PC-клиента, включая последнюю цифру. Затем прочитайте версию в консоли dedicated-сервера. В старом обсуждении Steam описан такой сбой после небольшого патча. Указанная там историческая версия сегодня не является рекомендацией для установки.

Из административной SSH-сессии проверьте экземпляр:

bash
sudo ss -ltnp 'sport = :7777'
pgrep -a -u terraria -f 'TerrariaServer'
sudo -iu terraria tmux list-sessions
sudo -iu terraria tmux attach-session -t terraria

Если сессия называется иначе, подключитесь к имени из проверенного списка. Не запускайте второй сервер ради получения номера версии. В существующей консоли найдите стартовый вывод в истории tmux. Если история уже потеряна, сохраните вывод следующего контролируемого запуска.

Командная строка процесса помогает определить каталог релиза. Для неожиданного исполняемого файла проверьте фактический путь по подтверждённому PID:

bash
read -r -p "Verified server PID: " terraria_pid
sudo readlink -f "/proc/$terraria_pid/exe"

Каталог 1458 подсказывает ожидаемый релиз, но название папки можно оставить от другой установки. Ориентируйтесь также на версию, которую показывает сам сервер. Если порт 7777 занят другим процессом, сначала установите, куда на самом деле попадают игроки. Иначе обновление соседнего экземпляра никак не повлияет на ошибку.

Сохраните мир перед выравниванием версий#

Обновление заканчивается запуском нужного бинарника. Распакованный архив ещё не меняет работающий сервер.

Предупредите игроков об остановке. В консоли Terraria выполните save, дождитесь завершения записи, затем exit и завершения процесса. Это команды игровой консоли. Не вводите их в Bash и не заменяйте непроверенным способом остановки службы.

Сохраните выбранный мир, конфигурацию и текущий релиз. Для остановленной копии вне VPS используйте процедуру резервного копирования. Старый каталог бинарников оставьте на месте. Мир, который новый релиз уже открыл и перезаписал, нельзя проверять старой программой вместо отдельной копии, сделанной до обновления.

Выведите только параметры выбора мира и порта, чтобы пароль не попал в общий диагностический лог:

bash
sudo -u terraria sed -n '/^world=/p; /^worldpath=/p; /^port=/p' \
  /srv/terraria/serverconfig.txt

Проверьте, что world= указывает на существующий нужный .wld. Для ремонта уже созданного мира уберите активный autocreate: опечатка в имени не должна незаметно породить новый мир. Также проверьте регистр имени файла — перенос с Windows нередко скрывает именно эту разницу.

Запустите один выбранный совместимый релиз#

Нужный dedicated-server скачивайте через официальный сайт Terraria. В этой инструкции используется пакет 1.4.5.8. Это конкретный пример, а не требование навсегда оставить все клиенты на этой версии. Сохраняйте весь каталог Linux: официальный launcher использует соседние файлы из комплекта.

Если обе стороны подтверждённо используют 1.4.5.8, после завершения старого процесса вернитесь в оболочку пользователя terraria внутри существующей tmux-сессии и запустите выбранный каталог:

bash
cd /opt/terraria-release/1458/Linux
./TerrariaServer -config /srv/terraria/serverconfig.txt

Прочитайте стартовый номер и название загружаемого мира. Если вместо загрузки предлагается генерация, остановитесь и исправьте путь. Не создавайте мир только ради продолжения запуска. Когда нужный мир загрузился, отсоединитесь от tmux сочетанием Ctrl+B, затем D.

Для другого релиза меняют и проверенный каталог установки, и архив. Если скрипт всё ещё смотрит в старую папку, обычный перезапуск повторит прежнюю ошибку. Отдельно исправьте автоматический или служебный launcher, если добавляли его после базовой инструкции.

Проверьте вход и отделите следующую неисправность#

Откройте Multiplayer → Join via IP в согласованном PC-клиенте. Найдите знакомую постройку или сундук, затем сохраните мир и выполните контролируемый перезапуск. Повторный вход проверит совместимость и сохранение правильного пути запуска.

Если сообщение о версии исчезло, но осталось ожидание соединения, переходите к диагностике подключения. Если сервер не может загрузить мир ещё до появления сокета, сохраните ошибку загрузки и исходную копию до обновления. Такие симптомы не требуют генерации замены. Сначала проверьте существование выбранного файла, права пользователя terraria и полный вывод загрузки. Если ошибка появилась именно после обновления, пробуйте сохранённую исходную копию только в отдельном каталоге и с соответствующим ей релизом.

Для дальнейшего разбора соберите версию клиента, стартовый номер сервера, путь бинарника, выбранный мир и точный текст ошибки. Перед передачей удалите пароль и приватные адреса. Этого достаточно, чтобы обсуждать конкретный сбой, а не начинать очередную переустановку вслепую.