• Labor of Love is here! Visit our Labor of Love thread for a special message from the team, a look at brand new Labor of Love merch, and the changelog (minus a few surprises 😉)

Running different versions

Thorfinn

Terrarian
I game with one set of people using 1.3.1.1, and another set with 1.3.0.8. All was well until I screwed up and accidentally took my 1.3.0.8 character into a 1.3.1.1 world. I exited out immediately, but the damage was done. He is now evidently associated with 1.3.1.1, and can no longer join 1.3.0.8 worlds. However, the real problem happened when I opened the world with that character. Evidently, even though I was running 1.3.0.8 at the time, the world seems now to also have been associated with 1.3.1.1. Even if I create a completely new character in 1.3.0.8, the world name is now in red, and won't load.

Please don't tell me the only way we can play that world again is to make everyone update to 1.3.1.1. Though I personally like the new version, some of the others prefer the older one.
 

critcodedtuna

Terrarian
World and player files are signed with the current version when they get saved. Unfortunately, this makes them inaccessible to earlier versions.

If you only tried to load it once, you might be able to recover the old player. Open your Players folder, locate your character file, e.g. MyPlayer.plr, and rename it to something like "MyPlayer.bad". There should be a corresponding file there named something like MyPlayer.plr.bak. Rename that to MyPlayer.plr and see if you can load it in 1.3.0.8. You should be able to do something similar with a world that got resaved in the latest format.
 

Thorfinn

Terrarian
Thanks. I'll check. Maybe the character is salvageable, though without being able to open the world in 1.3.0.8, I'm not sure what good that will do.

For future reference, is there a way to have the world and player files in different locations for each install, just as I have with c:\GOG Games\Terraria1311 and c:\GOG Games\Terraria1308? Or do they all HAVE to exist in the users\documents whatever subdirectory?

Incidentally, is the signature just a few bytes of hex, or did it actually convert the data to some new format?

[EDIT]
Back from checking. The world.wld and world.bak have the same exact timestamp, and verify as identical files. A new small world I just generated did the same thing when I opened it ONCE ONLY by a 1.3.1.1 character -- both the .wld and the .bak are identical. I would have expected the .bak to have reflected it being opened by the 1.3.0.8 character, and the .wld to be from the 1.3.1.1 character, but that seems not to be the case.

Looks like backward compatibility from just copying is not possible. Unfortunately, I backed up the worlds the day before yesterday, just before we had our LAN party, so before that world had even been generated...
[/EDIT]
 
Last edited:

critcodedtuna

Terrarian
For future reference, is there a way to have the world and player files in different locations for each install, just as I have with c:\GOG Games\Terraria1311 and c:\GOG Games\Terraria1308? Or do they all HAVE to exist in the users\documents whatever subdirectory?

I'm not aware of any command line parameters in the Windows version to do this, though you could probably set up batch scripts to swap out data to keep them separate.

Incidentally, is the signature just a few bytes of hex, or did it actually convert the data to some new format?

It depends. Both files have expected data structures the game needs to load, and these tend to vary from version to version. I don't really know what offhand is changed between 1.3.0.8 and 1.3.1.1 at the data level. With a world file it might be possible to revert the world using a hex editor to change the first byte from A9 (1.3.1.1) to 9C (1.3.0.8) as long as the internal structures (tiles, chests, NPCs, signs, entities, etc.) are still the same, but I can't confirm that. You could back up the world and try it but I can't guarantee it.

Player files are a bit more complicated. The data stream is structured similarly, but it's encapsulated in encryption for no reason that's terribly apparent to me (other than maybe to make data harder to access by the casual observer). You'd need to decrypt the player data, modify the signature in the decrypted stream, re-encrypt the modified stream, then try to load it and hope that it works. No guarantees, and I haven't compared 1.3.0.8 and 1.3.1.1 to determine if this is feasible.
 

Thorfinn

Terrarian
My mistake. The worlds are quite different. A lot of it appears to be the movement of the guide, but there's more to it than that. My guess is it also includes the grass that grew in the meantime.

Anyway, I was using FC at the command prompt and inadvertently typoed it and so tested a file to the copy of itself. Turns out the copy command worked properly. ;)
 
Top Bottom