Satisfactory Wiki
Advertisement

Save File Location

As of Patch 0.102, the save file is located here:

%appdata%\..\Local\FactoryGame\Saved\SaveGames\

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.

ObjectProperty

Length (in bytes) Type Description
0x4 Int32 🡇
🡅 String Name
0x4 Int32 🡇
🡅 String Property Type (ObjectProperty)
0x4 Int32 Value Length
0x4 Int32 Index (if object has multiple of the same key)
0x4 Int32 Quantity
🡅 🡅 Data of the property

ArrayProperty

Length (in bytes) Type Description
0x4 Int32 🡇
🡅 String Name
0x4 Int32 🡇
🡅 String Property Type (ArrayProperty)
0x4 Int32 Value Length
0x4 Int32 Index (if object has multiple of the same key)
0x4 Int32 🡇
🡅 String Element Property Type
0x4 Int32 Number of Elements
🡅 🡅 Array of Elements

StructProperty

Length (in bytes) Type Description
0x4 Int32 🡇
🡅 String Name
0x4 Int32 🡇
🡅 String Property Type (StructProperty)
0x4 Int32 Value Length
0x4 Int32 Index (if object has multiple of the same key)
0x4 Int32 🡇
🡅 String Structure (Class) Type
N * ??? Array?
Length (in bytes) Type Description
0x4 Int32 🡇
🡅 String Key Name
0x4 Int32 🡇
🡅 String Value Type
Dynamic 🡅 Value

MapProperty

Length (in bytes) Type Description
0x4 Int32 🡇
🡅 String Name
0x4 Int32 🡇
🡅 String Property Type (MapProperty)
0x4 Int32 Value Length
0x4 Int32 Index (if object has multiple of the same key)
0x4 Int32 🡇
🡅 String Key Property Type?
0x4 Int32 🡇
🡅 String Value Property Type?
0x9 ??? ???
N * ??? Array?
Length (in bytes) Type Description
??? Key
??? Value


Advertisement