Мир Terraria - это один файл с расширением .wld плюс .wld.bak с предыдущим сохранением. Перенос мира на выделенный сервер - это загрузка этого файла в папку миров сервера, пока сервер остановлен, и указание на него в строке world файла serverconfig.txt. Перенос обратно - скачивание того же файла. tModLoader добавляет второй файл, .twld, который всегда должен путешествовать вместе со своим .wld; TShock добавляет базу данных, защищённые регионы в которой привязаны к миру. Персонажи - это отдельные файлы .plr на ПК каждого игрока, и переносить их не нужно никогда. Единственный распространённый способ потерять мир Terraria - считать файл .bak бэкапом: он перезаписывается при каждом сохранении и лежит на том же диске. В этом руководстве разобрано, где лежат миры на каждой платформе, перенос в каждую сторону, случаи с модами и TShock и порядок бэкапов, которые действительно восстанавливаются.
Про сам serverconfig.txt и консольные команды читайте в статье конфиг и команды сервера Terraria; про модифицированные серверы в целом - в статье настройка сервера Terraria и tModLoader.
Из чего состоит мир Terraria#
| Файл | Что это |
|---|---|
Name.wld | Мир: тайлы, сундуки, NPC, флаги прогресса, сид карты |
Name.wld.bak | Предыдущее сохранение того же мира, пишется при каждом сохранении |
Name.twld | Только tModLoader: данные, принадлежащие модам |
Name.twld.bak | Только tModLoader: предыдущее сохранение данных модов |
Name.plr | Персонаж, на ПК самого игрока, не часть мира |
Name.map | Исследованная игроком карта мира, тоже на его ПК |
Отсюда два следствия. Мир самодостаточен: скопировали один .wld - скопировали всё, что к нему относится, поэтому переносить и бэкапить его проще простого. А на ванильном сервере сервер никогда не хранит персонажей, так что перенос мира никогда не трогает ничей инвентарь - каждый игрок приносит персонажа со своей машины, и поэтому же нельзя запретить кому-то прийти с эндгейм-снаряжением.
Имя файла и отображаемое имя мира - разные вещи. Отображаемое имя хранится внутри файла и показывается в списке миров игры; имя файла - это то, на что ссылается строка world на сервере. Мир под названием «Land of Slime» может быть сохранён как Land_of_Slime.wld. Когда сервер не находит мир, почти всегда неправильно именно имя файла.
Где лежат миры#
| Платформа | Ванильные миры | Миры tModLoader |
|---|---|---|
| Windows | Documents\My Games\Terraria\Worlds\ | Documents\My Games\Terraria\tModLoader\Worlds\ |
| Linux | ~/.local/share/Terraria/Worlds/ | ~/.local/share/Terraria/tModLoader/Worlds/ |
| macOS | ~/Library/Application Support/Terraria/Worlds/ | .../Terraria/tModLoader/Worlds/ |
| Сервер | Там, куда указывает worldpath | То же, для сервера tModLoader |
В Steam мир может храниться и в Steam Cloud, а не локально. Облачный мир не появляется в папке Worlds - он лежит в собственной папке Steam userdata для app id Terraria 105600, - и копировать его оттуда вручную ненадёжно. Чистый выход - через игру: на экране выбора мира у каждого мира есть переключатель облака. Переключите мир на локальное хранение, и он появится в вашей папке Worlds как обычный .wld.
Если не уверены, какой мир какой, отсортируйте папку по дате изменения и поиграйте в мир минуту - изменится тот файл, в котором вы находитесь.
Перенос мира с ПК на сервер#
- Закройте Terraria на ПК или хотя бы вернитесь в главное меню, чтобы мир полностью сохранился.
- Найдите файл в своей папке
Worlds. Возьмите.wld; если прихватить и.wld.bak, это ничего не стоит и даёт второй шанс. - Остановите сервер командой
exitв консоли - она сохраняет мир и выключает сервер. Никогда не загружайте файл при работающем сервере: следующее сохранение сервера перезапишет ваш файл его собственным миром. - Загрузите файл в папку миров сервера по SFTP или через файловый менеджер. Подробности - в статье SFTP и файловый менеджер.
- Укажите его в конфиге. В
serverconfig.txtзадайте вworldполный путь к файлу - точно, с учётом заглавных букв:
world=/home/container/worlds/Land_of_Slime.wldworldpath=/home/container/worlds/autocreate=0- Запустите сервер и прочитайте лог. Вы должны увидеть, как загружается мир с нужным именем; если видите генерацию мира, путь был неверным.
Следить нужно за настройкой autocreate. Если в ней задан размер, а путь в world не совпадает с существующим файлом, сервер вместо ошибки сгенерирует совершенно новый мир с этим именем файла. При первом запуске это удобно, а при переносе - ловушка: сервер выглядит совершенно здоровым, но крутит не тот мир. Пока переносите миры, ставьте 0, чтобы неверный путь был ошибкой, а не сюрпризом. В панели имя и размер мира часто задаются переменными на вкладке Startup, которые и формируют эти строки, так что проверяйте и там, и в файле.
Перенос мира с сервера на ПК#
Выполните save в консоли сервера и дождитесь окончания или остановите сервер через exit. Скачайте .wld и положите его в локальную папку Worlds. Он сразу появится в списке миров, и в него можно играть в одиночку или хостить из игры. Это та копия, которую нужно сделать перед отменой сервера, перед переездом к другому хостеру и перед чем-то рискованным. Мир, который вы можете открыть дома, - это мир, который у вас не отнимет никакая проблема с хостингом.
Совместимость по сложности и режим Journey#
Сложность мира задаётся при создании и переезжает вместе с файлом. Миры Classic, Expert и Master принимают персонажей classic, mediumcore и hardcore. Миры Journey принимают только персонажей journey, а персонажи journey могут заходить только в миры Journey. Если кто-то не может зайти в только что перенесённый мир, проверьте тип персонажа, прежде чем проверять сеть.
Настройка difficulty на сервере влияет только на миры, которые он создаёт. На уже существующий мир, загруженный или нет, её изменение никак не действует. Права режима Journey - это настройка сервера, а не часть мира; они разобраны в статье конфиг и команды сервера Terraria.
Миры tModLoader#
Мир tModLoader - это пара: Name.wld и Name.twld. В .twld хранятся все модовые тайлы, предметы, NPC и данные модов. Загрузите .wld без его .twld, и мир загрузится без всего модового. Всегда переносите их вместе и бэкапьте вместе.
Серверу также нужны те же моды, с которыми играли в этот мир. tModLoader хранит список включённых модов в enabled.json в папке Mods; скопировать этот файл и файлы модов на сервер - надёжный способ повторить локальную конфигурацию. Если мир загружается без мода, который в нём использовался, tModLoader, как правило, сохраняет контент этого мода в виде выгруженных заглушек, а не удаляет его, так что повторное добавление мода его восстановит, - но не полагайтесь на это ни в чём, о чём будете жалеть. Большие контентные моды - отдельная тема; память и синхронизация модов разобраны в статье Terraria Calamity и модифицированные серверы.
Миры TShock#
TShock загружает обычные файлы .wld, так что перенос самого мира ничем не отличается. TShock добавляет базу данных в своей папке tshock - по умолчанию tshock.sqlite, - где хранятся аккаунты, группы, баны, защищённые регионы и, если включены, серверные персонажи.
Две вещи, которые нужно знать при переносе мира TShock:
- Регионы принадлежат ID мира - числу, хранящемуся внутри
.wld. Перенесите тот же мир на новый сервер TShock со старой базой данных, и его регионы переедут вместе с ним. Перенесите на сервер другой мир, и старые регионы к нему не применятся - они по-прежнему в базе, но привязаны к ID старого мира. - Серверные персонажи живут в базе данных, а не в файлах `.plr`. На сервере с SSC база данных так же важна, как мир. Всегда бэкапьте папку
tshockвместе с мирами.
У TShock есть и собственные автоматические бэкапы мира - они настраиваются в его конфиге интервалом и сроком хранения и пишутся в папку бэкапов внутри tshock. Они полезны, но лежат на том же диске, что и мир. Остальная настройка разобрана в руководстве по серверу TShock.
Бэкапы, которые работают#
Файл .wld.bak - это предыдущее сохранение, которое перезаписывается при каждом сохранении мира. Он защищает от сохранения, прерванного на полпути, - именно для этого его и придумали. От мира, который загриферили, от боя с боссом, пошедшего не так час назад, от удалённого сервера или проблемы с диском он не защищает. Как и скользящие копии, которые в актуальных сборках хранит worldrollbackstokeep, - они лежат в той же папке.
Порядок, покрывающий реальные риски:
- Ночная копия папки миров, хранящаяся где-то, кроме сервера, пока люди играют.
- Ручная копия перед всем необратимым. Разрушение первого алтаря после Wall of Flesh, призыв босса, который может разнести базу, включение нового мода.
- Сохраняйтесь перед копированием. Сначала выполните
saveв консоли; копия, снятая посреди сохранения, может быть неполной, а копия без сохранения отражает последнее автосохранение, а не текущий момент. - Одно пробное восстановление. Загрузите бэкап на запасном сервере или дома, пройдитесь, проверьте, что последние постройки на месте. Подробный довод - в статье бэкапы, которые действительно восстанавливаются, версия на десять минут - в статье проверка восстановления до того, как оно понадобится.
На RE:NODE каждый тариф Terraria включает слоты для бэкапов, которые делаются вручную или по расписанию и хранятся вне машины, которую защищают. Запись в Schedules может выполнить save как консольную команду, а затем бэкап - задачами по порядку с задержкой между ними, - чтобы бэкап зафиксировал мир таким, какой он сейчас, а не каким был при последнем автосохранении. Восстановление - одна кнопка, бэкапы можно скачать, чтобы хранить копию дома, а слот бэкапа можно заблокировать, чтобы ротация никогда не удалила копию, сделанную перед алтарём.
Восстановление и откат#
Чтобы откатить мир из бэкапа:
- Остановите сервер командой
exit. - Переместите текущий
.wld(и.twld) в сторону, а не удаляйте - вдруг из него что-то понадобится. - Положите на его место копию из бэкапа с тем же именем файла.
- Запустите сервер, проверьте лог, зайдите и убедитесь.
Чтобы спасти мир, который не загружается, сначала попробуйте .bak: остановите сервер, уберите сломанный Name.wld в сторону, скопируйте Name.wld.bak в Name.wld и запустите. Если и это не помогло, переходите к последнему настоящему бэкапу. Инструменты вроде TEdit умеют открывать и иногда чинить повреждённые файлы миров, но это крайняя мера, и работать нужно с копией.
Объявите об откате до того, как его делать. Игроки теряют всё построенное с момента бэкапа, а их персонажи сохраняют всё собранное, так что некоторые предметы могут оказаться в двух экземплярах. После гриферства это обычно правильная цена, а ради потерянного часа копания - неправильная.
Решение проблем#
Сервер сгенерировал новый мир вместо загрузки моего. Путь в world не совпадает с файлом в точности, а autocreate включён. Исправьте путь, поставьте autocreate=0, при желании удалите случайно созданный мир и перезапустите.
Моего мира нет в папке Worlds. Это мир в Steam Cloud. Переключите его на локальный на экране выбора мира.
Мир загрузился, но все модовые предметы пропали. Не загружен .twld, или на сервере нет модов, которые использовал мир.
Игрок не может зайти в перенесённый мир. Персонажи journey заходят только в миры Journey, и наоборот. Проверьте также, что клиент и сервер одной версии.
Загруженный файл пропал после перезапуска. Во время загрузки сервер работал и сохранил поверх вашего свой мир. Сначала остановите, потом загружайте.
После переноса регионы перестали что-либо защищать. Регионы TShock привязаны к ID мира, в котором они созданы. Загруженный вами мир - другой.
FAQ#
Где сохраняются файлы миров Terraria?
В Windows - в Documents\My Games\Terraria\Worlds, в Linux - в ~/.local/share/Terraria/Worlds, в macOS - в ~/Library/Application Support/Terraria/Worlds. tModLoader использует папку tModLoader\Worlds в том же корне. Миры в Steam Cloud лежат в другом месте, пока вы не переключите их на локальные.
Как загрузить мир Terraria на выделенный сервер?
Остановите сервер, загрузите файл .wld в его папку миров, укажите в world файла serverconfig.txt точный путь к этому файлу и запустите. Для tModLoader загрузите рядом и .twld.
Нужно ли переносить персонажей на сервер?
Нет. На ванильном сервере персонажи - это файлы .plr на ПК каждого игрока, и они приходят вместе с игроками. Серверы TShock с серверными персонажами хранят их вместо этого в базе данных TShock.
Является ли файл .wld.bak бэкапом?
Только предыдущего сохранения. Он перезаписывается при каждом сохранении и лежит на том же диске, так что защищает от прерванного сохранения, но не от гриферства, ошибок или потери сервера.
Можно ли скачать мир с сервера, чтобы играть офлайн?
Да. Сохраните или остановите сервер, скачайте .wld (и .twld для tModLoader) и положите в локальную папку Worlds. Мир появится в списке миров.
Можно ли изменить сложность мира после переноса?
Нет. Сложность и режим Journey задаются при создании мира и являются частью файла. Настройка сложности на сервере влияет только на новые миры.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.