Gaming
 

FOS file format

From Vault-Tec Labs

The Fallout 3 Savegame format (*.fos), shows some similarities with the Oblivion format. Discoveries about the FO3 format will be posted on this page. In addition, the Xbox 360 file format for the Fallout 3 Savegame format (*.fxs) closely resembles the PC format from offset 0000D000 on, however currently the two are not interchangeable like it was for Oblivion. Most of the information found here is derived/abstracted from this page.

[edit] General Information

If there's a Byte Offset value in the table, it means it's fixed (i.e. for every save file).

Each row in the table represents a Byte-Block, separated by a 7C byte (ANSII: "|").

Example:

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   46 4F 33 53 41 56 45 47  41 4D 45 56 00 00 00 30   FO3SAVEGAMEV...0
00000010   00 00 00 7C 00 02 00 00  7C 40 01 00 00 7C 05 00   ...|....|@...|..
00000020   00 00 7C 07 00 7C 41 68  6C 65 65 6E 61 7C 0C 00   ..|..|Ahleena|..
00000030   7C 56 61 75 6C 74 20 4D  61 72 74 79 72 7C 02 00   |Vault Martyr|..
00000040   00 00 7C 11 00 7C 4D 6F  72 69 61 72 74 79 27 73   ..|..|Moriarty's
00000050   20 53 61 6C 6F 6F 6E 7C  09 00 7C 30 30 31 2E 34    Saloon|..|001.4
00000060   35 2E 32 38 7C                                     5.28|

[edit] File Header

Name Type/Size Info
fileId char[11] Constant: "FO3SAVEGAME"
fileId char[1] This can be any letter. Use unknown.
 ?byte 6x ubyte Unknown
ScreenShotDataWidth long The width of the embedded screen shot
ScreenShotDataHeight long The height of the embedded screen shot
SaveIndex long Save game number as seen in your save game list. The file name also has this number.

[edit] Preview

Name Type/Size Info
pcNameSize short Indicating the length of the pcName value. E.g. if the name is "TEST", the pcNameSize is 4.
pcName bzstring The Player Character's Name.
pcKarmaSize short Indicating the length of the pcKarma value. E.g. if the string is "Vault Martyr", the pcKarmaSize is 12.
pcKarma bzstring A string indicating the PC's Karma Rank (e.g. "Vault Martyr").
pcLevel long A long (4 bytes) indicating the PC's level.
pcLocationSize short Indicating the length of the pcLocation value. E.g. if the string is "The Capital Wasteland", the pcLocationSize is 21.
pcLocation bzstring A string showing the PC's current location (e.g. "Moriarty's Saloon").
PlaytimeSize short Length of the Playtime bzstring
Playtime ###.##.## A value indicating the amount of time the PC has played (e.g. "001.40.12", 1 hour, 40 minutes, 12 seconds)
ScreenShotData ScreenShotDataHeight*ScreenShotDataWidth*3 ubytes Contains interlaced rgb screenshot data.
 ? bytes 5 ubytes Unknown data. (Not preceded by the delimiter).
PlugInCount ubyte Number of active esm/esp files
PlugInNameSize short Size of the plug-in name.
PlugInName bzstring Name of active plug-in. (Repeated for each active plug-in).