xXCrypticNightXx
Terrarian
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:
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.
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).
(Plugin Window Showing Added Plugins)
(Debug Window of All Block Data)
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.
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.
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.
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
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.
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:
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.
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).
(Plugin Window Showing Added Plugins)
(Debug Window of All Block Data)
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.
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.
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.
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
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
Last edited: