Okiedokie, here goes …
When you open up the editor (top most tab ‘Edit’ > ‘Edit Raw JSON’), you will see a folder structure, full of data from your selected save file.
All your bases, including the freighter are listed within the following folder:
‘PlayerStateData’ > ‘PersistentPlayerBases’
Within the above folder, you will find numbered folders ([0]
to [X]
), depending on how many bases you have. Each of these numbered folders, contains all the required data for a specific base. This includes exact location of the base and all the base parts relative to the Base Computer (^BASE_FLAG).
Below you will see an example listing of raw JSON data that resembles a base.
Simplified Base Data example
{
"BaseVersion":4,
"OriginalBaseVersion":4,
"GalacticAddress":"0x364203BD8FD00D",
"Position":[
-5809.71240234375,
-12952.1416015625,
-5919.873046875
],
"Forward":[
0.8580593466758728,
-0.4546518921852112,
0.23880067467689515
],
"UserData":0,
"LastUpdateTimestamp":1568132923,
"Objects":[
{
"Timestamp":1566592905,
"ObjectID":"^BASE_FLAG",
"UserData":0,
"Position":[
0.0,
0.0,
0.0
],
"Up":[
0.0,
1.0000001192092896,
0.0
],
"At":[
2.2351741790771486e-8,
0.0,
1.0
]
},
{
base part data...
},
{
base part data...
},
{
last base part data...
} <---- NOTE: No comma!
],
"RID":"",
"Owner":{
"LID":"<SteamID>",
"UID":"<SteamID>",
"USN":"",
"PTK":"",
"TS":1567148463
},
"Name":"<BaseName>",
"BaseType":{
"PersistentBaseTypes":"HomePlanetBase"
},
"LastEditedById":"0",
"LastEditedByUsername":""
}
As you can see, it starts with the following:
- BaseVersion: Current version for the base data
- OriginalBaseVersion: Assuming the original base version
- GalacticAddress: Hexadecimal representation of the planet
- Position: Position on the planet in x/y/z coordinates
- Forward: A vector representing the forward direction
- UserData: Unknown, but always 0, so likely unused for this main data base entry.
- LastUpdateTimestamp: Time/Date in UNIX format (decimal, which can be easily converted if wanted)
- Objects: An array of building parts for this specific base.
Each ‘object’ (base part data) listed has the following data:
- Timestamp: Once again, UNIX format for time/date
- ObjectID: The name of the base part
- UserData: Used to determine the material/color for this specific object, 0 by default
- Position: Position in x/y/z coordinates, relative to the Base Computer (^BASE_FLAG)
- Up: A vector representation of the ‘up’ direction.
- At: A vector representation of the ‘origin’ location.
Lastly the base data closes with the following:
- RID: Appears to not be used (empty)
- Owner: Contains a list of data:
- LID: The player’s Steam ID
- UID: The player’s Steam ID
- USN: Username associated with the Steam ID, only used when base is uploaded.
- PTK: Appears to not be used (empty)
- TS: Once again, time/date in UNIX format
- Name: Name of the base
- BaseType: Contains a single listing for the type of base:
- PersistentBaseTypes: A variable to distinguish a planet base from a Freighter base. This will either be ‘HomePlanetBase’ or ‘FreighterBase’.
- LastEditedById: Either ‘0’ when not uploaded, or the Steam ID when base has been uploaded.
- LastEditedByUsername: Either empty when not uploaded, or the username associated with the Steam ID when base has been uploaded.
Now as you can see, the object ^BASE_FLAG, is the main part of your base of course. It is your Base Computer, which will always be at 0,0,0. All other parts that follow, are parts belonging to your base, which are positioned relative to this Base Computer.
Now if you were to relocate a base from your current save, all you have to do is the following:
- Find a new location (anywhere!)
- Place a Base Computer and activate it
- Save and quit
- Open the Save Editor
- Find the folder that contains this new base
- Copy ONLY all the base parts from the base (folder) you wish to relocate (copy), minus the Base Computer (^BASE_FLAG).
- Paste these parts into the new base folder, leaving the START and END of the folder data intact, while also keeping the Base Computer part for this new base. So basically all your copied base parts, go after the Base Computer.
- Do keep in mind, that the last base part in the list, can not end with a comma (
,
).
Each base part’s data entries, start with a curly bracket ({
) and end with a curly bracket (}
), only if another base part follows, will the previous end with a comma (,
).
The last entry in a list or array, never ends with a comma (,
). This is a general rule!
- Save the changes made
- Load the game
- Enjoy the copied base in its new location.
Of course you could then go back into the editor to remove the base you just relocated, simply by deleting the full base folder you no longer need.
Things to keep in mind:
- The ‘copy’ will be an exact duplicate, just in a new location. It does not care about terrain and no edits will be made to the terrain. So if there is now a mountain, that was not there before, your copied/relocated base may end up inside. So placement of the new base computer for the copy, has to be taken into account. This goes for location, as well as orientation.
- Reason for placing a new Base Computer for where the copy needs to go, is the position, but mainly the orientation. If you just alter the coordinates, it’s hard to get the rotation done right. Position would be guesswork as well.
- Terrain will not be edited! So to edit terrain afterwards, you’ll have to either use the Terrain Manipulator, or replace base parts that do alter the terrain. A floor that has been moved will not alter the terrain, but deleting it, to then replace it again, will have the desired effect (unless the Terrain Edit Limit has been reached).
This is my attempt at explaining, but if you understood this reasonably well, you can imagine what all can be done. Most useful however, if anything goes wrong and you have a backup. You can easily get your most important data back into the save. Of course a lot more is possible, as you can likely imagine