How To Downgrade A World From 1.4 Back To 1.3

Trivia
So, why am I here today? I want to share something that I have never seen someone release anything for. The problem is attempting to downgrade the Terraria worlds from 1.4 down to 1.3. From doing research and looking through some files, it appears that 1.4 has redesigned how the world files store their data. People have told me over and over that it's not possible. Looking at the messages from the team/staff:

Quote from an fellow forum administrator by the name of @Tunnel King had previously stated the following:
03.png


And while this is true, lets face it, most of us never actually back our files up or read the patch notes. There are many reasons on why someone would want to do this, mostly due to 1.3 being still the latest version for TML. So if you created a 1.4 world or upgraded your existing one, allow me to help reverse that for anyone whos seeking help.


separator-png-95-images-in-collection-page-3-separator-png-280_150.png


My Personal Solution
(Disclaimer: My solution is rugged and I know better options can be created)

So I had a few options to work with, either reverse engineer the entire world upgrade algorithm and redesign half the world gen code to "down-grade" the world data, or, like any great creator who has existed, use someone else's work and make it do what you want instead. So that's what I did. (Mostly because I'm lazy)

Using an open source mod by the name of TEDIT - Created by BinaryConstruct, I simply created a few plugins. Using tedit, Rather then exporting WORLD data, I'm instead exporting the TEDIT's RAW map data, this way you can export and import the position and block data to and from game versions all the way back to first release (Of TEDIT).

plugins.PNG

(Plugin Window Showing Added Plugins)

test.png

(Debug Window of All Block Data)

separator-png-95-images-in-collection-page-3-separator-png-280_150.png

How To Use This

At the bottom of this thread, I'm including the source code to the two plugins I created. ExportPlugin.cs & ImportPlugin.cs. I also included ViewModelLocator.cs.

:red:k.PNG


Step0. Download the required framework for compiling C# projects.
.NET 5.0 SDK: Download .NET 5.0 (Linux, macOS, and Windows)

Step1. Download the source code for the two versions of tedit you want. For mine, I'm using these two. Extract the source code directories to a location of your choice.
4.5.1:
https://github.com/TEdit/Terraria-Map-Editor/releases/tag/4.5.1
3.11: https://github.com/TEdit/Terraria-Map-Editor/releases/tag/3.10.18105.218

Step2. Inside Tedit 4, Drop ExportPlugin.cs & ImportPlugin.cs into this directory: \src\TEdit\Editor\Plugins
Drop ViewModelLocator.cs into this directory: \src\TEdit\ViewModel
Run build.ps1 with powershell. Output: \release

Step3. Inside Tedit 3, Drop ExportPlugin.cs & ImportPlugin.cs into this directory:
\TEditXna\Editor\Plugins
Drop ViewModelLocator.cs into this directory: \TEditXna\ViewModel
Run build_beta.bat with command prompt. Output: \build

Now open your 1.4 TEdit and open the world your wish to downgrade. After it loads, navigate to plugins and click Export. This process may take up to 3 hours. TEdit may seem frozen however it's not. By default, it will start creating files to C:\temp\T-DOWNGRADE. TEdit will display a task completed prompt when this process is done.

2021-09-06-19-06-20-1094x950.gif


After the export portion is completed, launch 1.3 Tedit and create a new world of the same size. Then navigate to plugins and click import. This process may take up to 30 seconds. A completion prompt will be displayed. Click Save world icon through TEdit and save it to your terraria documents folder C:\Users\%username%\Documents\My Games\Terraria\Worlds or where ever you wish.

2021-09-06-16-26-49-1094x968.gif


separator-png-95-images-in-collection-page-3-separator-png-280_150.png

Update 1!
Quick next day update to a solution I found for quicker export times. The previous version would export ALL data including data the is unused, empty positions within the editor. For the bool strings (True & False) I have changes these to 1 & 0's. This cuts the the export time by x500%. I have included the updated source code down bellow.

Update 2!
I have recently joined the official T-EDIT discord upon some suggestions from some friends, I'm now happy to inform everyone that I have now added an official downgrade world mod to the TEDIT client it's self! Same super fast save times as the original save option!

View attachment 2021-09-08-18-06-30-1920x1030.gif

Maybe my GitHub feature request / fork will be accepted and others can enjoy the easy method! This method allows for all > 238 world versions downgrades!

Update 3!
Looks like this will be cannon soon!
GitHub PullRequest

separator-png-95-images-in-collection-page-3-separator-png-280_150.png


Huge thanks! Hope I helped you! I will respond to comments.
Please keep in mind, this is the first method of downgrading worlds for 1.4 to 1.3. I'm sure this post may spark others to come.
If this concept gets enough support, I may create a real reverse engineered world gen converter for instant conversions.​
 

Attachments

  • Tedit 1.3 Plugins.zip
    3.8 KB · Views: 558
  • Tedit 1.4 Plugins.zip
    3.7 KB · Views: 308
  • v2 Plugin Files.zip
    7.6 KB · Views: 272
Last edited:
in game,i loading the world(1.4.2.3→1.3.5.3tml world),but it tell me cant find bak,do you know What's wrong?
(sorry,my English not very good)
 
in game,i loading the world(1.4.2.3→1.3.5.3tml world),but it tell me cant find bak,do you know What's wrong?
(sorry,my English not very good)

These thread is now obsolete. Thanks to this threads work, TEdit now has an official world downgrade option.
 
Back
Top Bottom