SirTony
1/5/2016 - 11:56 AM

The binary format for Fallout 4 PC save files.

The binary format for Fallout 4 PC save files.

Fallout 4 Save File Format

The binary format for Fallout 4 PC save files. This document was created by reverse-engineering files from version 1.2.37.0 of the game.

Note: This document is incomplete!

Table of Contents

Format

Field NameTypeRemarks
Magic IDchar[12]Always FO4_SAVEGAME
Header Sizeuint32The total size (in bytes) of the header
HeaderheaderSee: Header
Snapshotuint8[Width * Height * 4]An array containing raw pixel data for the thumbnail. The array is stored as 32-bits-per-pixel ARGB.
Format Versionuint8The save file format version (?). Current value is 61
Game VersionwstringThe game's patch version when the save was created in dot-notation (ex 1.2.37.0)
Plugin Info Sizeuint32The total size (in bytes) of the plugin information
Plugins Countuint8The number of plugins used by this save
Pluginswstring[Plugins Count]Each string is a file name for a .esm or .esp file in the Data directory.

Header

Field NameTypeRemarks
Engine Versionuint32The version of Creation Engine that created this file (?). Current value is 11
Save Numberuint32Incremented by 1 each time a game is saved
Character Namewstring
Character Leveluint32
Character LocationwstringName of the player's current location
Play TimewstringThe amount of time played. Stored as xd.yh.zm.x days.y hours.z minutes where x, y, and z are any arbitrary integers. An example of for a character that has played 2 days, 2 hours, and 3 minutes would be 2d.2h.3m.2 days.2 hours.3 minutes
Character RacewstringThe internal editor ID of the player's race. Probably always HumanRace
Character Sexuint16The sex (gender) of the player character. 0 = male, 1 = female
Current Character Experiencefloat32The current amount of experience the player has attained for progressing to the next level
Required Experiencefloat32The amount of experience needed to progress to the next level
FiletimeFILETIMEThe real-world time the save file was created
Snapshot Widthuint32The width (in pixels) of the save thumbnail
Snapshot Heightuint32The height (in pixels) of the save thumbnail

Types

Type NameSize (in bytes)Remarks
char1An 8-bit character
wstringVariableA wstring is a string prefixed with a uint16 denoting the length, followed by exactly that many characters
uint81An unsigned 8-bit integer
uint162An unsigned 16-bit integer
uint324An unsigned 32-bit integer
float324A single-precision, 32-bit, floating-point number
FILETIME8See: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724284(v=vs.85).aspx