Experimental Patch 0.1.5 lists this location as the following, but they resolve to the same location in default windows installations:
%localappdata%\FactoryGame\Saved\SaveGames\
Photo mode
Pressing P will bring up the photo mode, which removes the HUD elements, allows changing the field of view, and toggling of a Hi-Res mode.
Screenshots can be found in AppData\Local\FactoryGame\Saved\Screenshots\WindowsNoEditor or Documents\My Games\FactoryGame\Screenshots.
Save File Format
This page is a work in progress.
This page describes the save file format. These values and structures were determined by opening save files using a hex editor such as HxD.
If the length is specified as 🡅 that means it is the length of previous Int32. A description of 🡇 means 'see below.'
For example, the below table states, "The string that represents the world type is prefaced by an Int32 (4 bytes long). The length of the string is the value stored in the Int32."
Length (in bytes)
Type
Description
0x4
Int32
🡇
🡅
String
World type
Multiple times throughout the file you will see templates like {1} used, that means it uses the value of that field for its size or other math.
Note that all strings are null-terminated, so you almost always want to read all strings of their length - 1.
General Save Structure
Length (in bytes)
Type
Description
0x4
Int32
Save Header Version
0x4
Int32
Save Version
0x4
Int32
Build Version
0x4
Int32
🡇
🡅
String
World type
0x4
Int32
🡇
🡅
String
World properties
0x4
Int32
🡇
🡅
String
Session Name
0x4
Int32
Play Time (seconds)
0x8
Int64
Save Date (Number of Ticks, See Microsoft Docs for details)
0x1
Byte
Session Visibility
0x4
Int32
World Object Count {1}
{1} * N
Array
Length (in bytes)
Type
Description
0x4
Int32
World Object Type
N - 0x4
World Object Data (Look Below)
0x4
Int32
World Object Property Count {2}
{2} * N
Array
Length (in bytes)
Type
Description
N
World Object Property Data (Look Below)
World Object Data
Length (in bytes)
Type
Description
0x4
Int32
🡇
🡅
String
Name
0x4
Int32
🡇
🡅
String
Property Type
0x4
Int32
Value Length
0x4
Int32
Index (if object has multiple of the same key)
🡅🡅
🡅🡅🡅
Data of the property
Here is a generic property type format, each property then has a descendant with extras.
Property
Length (in bytes)
Type
Description
0x4
Int32
🡇
🡅
String
Name
0x4
Int32
🡇
🡅
String
Property Type
0x4
Int32
Value Length
0x4
Int32
Index (if object has multiple of the same key)
🡅🡅
🡅🡅🡅
Data of the property
This generic property type is used for primitive types like integers, floats, strings, booleans, etc.