Moving character to new world?

Is there a way to move a saved character to a New world, with the stuff they have on them?

Debug it. Debug is life.

You have to manually copy the character over by copy pasting the save file…

I’ve done it before but it’s been a while so I can’t really remember the specifics… I remember also copy and pasting my base + stash to a new world/

That works? But where would the PC end up?

IIRC coordinates are saved as part of the character’s data… you have to be careful that those are valid in the new world though hence copying over your base as well.

1 Like

That’s what I thought… But what if you wind up in a wall?

Edited my response while you were replying… either change the coordinates or make sure the location is going to be valid. Backup everything first!!!

1 Like

Also make a note about what your copying over. While it won’t crash, the game will be very not happy with you if you copy over things that don’t exist in the new world. (i.e. don’t bring mod items into a world without the mod)

ANd how do you carry over your base as well?

There is an import/export utility floating around somewhere that lets you import characters and vehicles between worlds. I used it a few months ago and it worked pretty well for the vehicle, but I do not know if the current version is still compatible.

Find the file with your base and copy it… there is a file per submap (12x12 squares) use the map to figure out the coordinates of your base and use it to find the file.

When I’m trying to figure out coordinates, I just put a unique word or name on an item or vehicle, then grep the files for it. That way it only turns up the one map file where that item is located.

Stolen from the discord (thanks Shard), pinned in cataclysm-general:

Transferring character and vehicle (plus contents) between worlds in CDDA
Terms used:
SourceChar (character in old world, to be transferred to new world)
TargetChar (character in new world, sacrifice to be converted into SourceChar, all equipment, skills, and stats, etc will be lost)
SourceCar (car in old world, must have a unique name, if in doubt name it sourcecar before saving your game and doing the transfer)
TargetCar (car in new world that is unimportant, will be removed from reality and replaced with old vehicle, must have a unique name, if in doubt name it targetcar)

Pre-transfer instructions:
First off, go to your vehicle and make sure it has a unique name with the e key, SourceCar is the default used in this guide. After making sure of that, stand outside in open space on the surface (not above or below ground or in a vehicle) and save your game.
Second, create a new world with the same mods (or a compatible modlist, you can also add mods) and create a character in that world. Go find a car in a large open space such as in between cities on a road and rename it to a unique name - TargetCar will be used in this guide.

Transfer step one: Backup old save and prune, or copy needed files to new directory
The majority of the files in your old save will not be used, so you can either backup the save into an archive then prune it down, or just copy the few files you need to edit. Pick either method, as long as you end up with the files in a new folder. Inside your save folder, you will find a number of files with a large ‘gibberish’ name including .log, .apu.json, .sav – these are your character data files, and need to be saved. If you are interested, the ‘gibberish’ is your character name in base-64, and can be edited using something such as https://www.base64decode.org/ to change to/from readable text. In addition, if you have artifacts you need to copy artifacts.gsav over. If you would like to save your filter settings, also copy over uistate.json.

Transfer step two: locate final important files
Next you need to find the specific map file your vehicle is in. This can be made much easier to locate by not playing for a while (such as work/sleep time) then loading the game, dropping or picking something up, and saving again – this will save just nearby areas, leading to a much more recent ‘modified’ time - you can then delete everything that was not modified recently and have much less to check. You will see a large number of folders in the map directory, but you can also cut it down further by deleting any that do not end in .0 – these are ground level, and your vehicle is most likely on the surface. Locate the proper map file (open recently saved ones and search for ‘TargetCar’ or whatever the name you have your vehicle named - the file you find it in is the only file you need) and once you have it found, locate your vehicle data inside of it. Do this for both old and new worlds, as we need to access both vehicles.

Transfer step three: vehicle transfer
Once you have your vehicle’s name located in a .map file, find the full data from the start. This will look something like the following at the start:
{“type”:“car”,“posx”:0,“posy”:10,“om_id”:0,“faceDir”:180,“moveDir”:0,“turn_dir”:180,“velocity”:0,“falling”:false,“cruise_velocity”:0,“vertical_velocity”:0,“cruise_on”:true,“engine_on”:false,“tracking_on”:false,“skidding”:false,“of_turn_carry”:0.000000,“name”:“SourceCar”,“parts”:[{
To fully select the vehicle, it is easiest to use something that highlights brackets, such as Notepad++ - we need to copy the entire vehicle data to a empty location to verify it as well as swap out some basic values. For Notepad++, put the cursor before the {“type”:" and hit enter to split it onto a new line, then ctrl+b to go to the matching bracket, and once behind it, hit enter again to split the vehicle completely out of the mess. For reference, the last bit of the vehicle data should be something similar to pivot[-3.1]} with either more vehicle data after that for other vehicles, or ]} for the end of the local area. After that, you can easily copy it to a new notepad sheet to work on easier, and it is easy to undo the steps to put it back if you have not made a backup.

Repeat this process to locate your TargetCar in the new save and split it out of the save into its own notepad sheet as well. Once this is done, you need to transfer the values from posx to just before the name from the TargetCar to the SourceCar - this makes sure that when you put the vehicle into the new save that it will be facing the same way, same speed, etc. After that is done, place the entire chunk of SourceCar into the map file in the new save where TargetCar came from, and ensure it is back in proper shape (all one line, not missing any brackets) and then save the file. This should place your vehicle from the old save into the new save where the sacrificial TargetCar was sitting.

Transfer step four: character transfer
Once that is done, all the remains is the character. In this case, open the ‘gibberish’.sav from both your new and old worlds. The following needs to be copied from the TargetChar to SourceChar before moving it:
mostseen, levx, levy, levz, om_x, om_y, grscent, active_monsters, stair_monsters
When those have been replaced, search for active_mission and set the value to -1, then you need to delete everything from the following sections (everything between the brackets beside them): active_missions, completed_missions, failed_missions, known_traps
After deleting all those, copy your entire SourceChar and replace TargetChar with it. The changes you have made will prevent any issues with missions by clearing mission data, prevent potential ghost traps by removing remembered trap data, and place your character where the sacrificial character was previously located.

Transfer step five: final transfer
Next we simply need to copy over the .log, .apu.json, artifacts.gsav, and uistat.json (last is optional, artifacts.gsav only needed if you or your vehicle have artifacts) – keep in mind the .log and .apu.json need the same name as the .sav to be properly used, in case you have changed the character name between the worlds.

#KnowledgeBomb

3 Likes