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.
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, generally separated by a 7C byte (ASCII: "|").
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|
File Header[]
Name | Type/Size | Info |
---|---|---|
fileId | char[11] | Constant: "FO3SAVEGAME" |
saveHeaderSize | long | Size in bytes of File Header (not including this size variable) |
?unknown1 | long | Unknown, possibly file version number, always 0x30 |
divider | char | | |
screenshotWidth | long | The width of the embedded screenshot, min. 1 |
divider | char | | |
screenshotHeight | long | The height of the embedded screenshot, min. 1 |
divider | char | | |
saveIndex | long | Save game number as seen in your save game list |
divider | char | | |
pcNameSize | short | Indicating the length of the pcName value. e.g. if the name is "TEST", the pcNameSize is 4, can be 0 |
divider | char | | |
pcName | bzstring | The Player Character's Name |
divider | char | | |
pcKarmaSize | short | Indicating the length of the pcKarma value. e.g. if the string is "Vault Martyr", the pcKarmaSize is 12, can be 0 |
divider | char | | |
pcKarma | bzstring | A string indicating the PC's Karma Rank (e.g. "Vault Martyr") |
divider | char | | |
pcLevel | long | A long (4 bytes) indicating the PC's level |
divider | char | | |
pcLocationSize | short | Indicating the length of the pcLocation value. e.g. if the string is "The Capital Wasteland", the pcLocationSize is 21, min. 1 (cannot be 0) |
divider | char | | |
pcLocation | bzstring | A string showing the PC's current location (e.g. "Moriarty's Saloon") |
divider | char | | |
playtimeSize | short | Length of the playtime bzstring, can be 0 |
divider | char | | |
playtime | ###.##.## | A value indicating the amount of time the PC has played (e.g. "001.40.12", 1 hour, 40 minutes, 12 seconds) |
divider | char | | |
Preview[]
Name | Type/Size | Info |
---|---|---|
screenshotData | screenshotHeight*screenshotWidth*3 ubytes | Contains interlaced RGB screenshot data |
?unknown2 | byte | Unknown, always 0x15 |
pluginStructSize | long | Size in bytes of Plugins structures plus 2 (for the following pluginCount and divider) |
pluginCount | ubyte | Number of active ESM/ESP files |
divider | char | | |
Plugins[]
The following is repeated for each active plugin (see pluginCount, above):
Name | Type/Size | Info |
---|---|---|
pluginNameSize | short | Size of the following pluginName |
divider | char | | |
pluginName | bzstring | Name of active plugin (e.g. Fallout3.esm, RandomMod.esp) |
divider | char | | |
Stats[]
Name | Type/Size | Info |
---|---|---|
?unknown3 | ubyte[114] | Unknown, important |
statStructSize | long | Size of statNum plus following stats structure (0x87 for 26 stats) |
statNum | long | Number of stat entries in structure (26 for Fallout 3) |
divider | char | | |
stat1 | DWORD | Quests completed |
divider | char | | |
stat2 | DWORD | Locations discovered |
divider | char | | |
stat3 | DWORD | People killed |
divider | char | | |
stat4 | DWORD | Creatures killed |
divider | char | | |
stat5 | DWORD | Locks picked |
divider | char | | |
stat6 | DWORD | Computers hacked |
divider | char | | |
stat7 | DWORD | Stimpacks Taken |
divider | char | | |
stat8 | DWORD | Rad-X Taken |
divider | char | | |
stat9 | DWORD | RadAway Taken |
divider | char | | |
stat10 | DWORD | Chems Taken |
divider | char | | |
stat11 | DWORD | Times Addicted |
divider | char | | |
stat12 | DWORD | Mines Disarmed |
divider | char | | |
stat13 | DWORD | Speech Successes |
divider | char | | |
stat14 | DWORD | Pockets Picked |
divider | char | | |
stat15 | DWORD | Pants Exploded |
divider | char | | |
stat16 | DWORD | Books Read |
divider | char | | |
stat17 | DWORD | Bobbleheads Found |
divider | char | | |
stat18 | DWORD | Weapons Created |
divider | char | | |
stat19 | DWORD | People Mezzed |
divider | char | | |
stat20 | DWORD | Captives Rescued |
divider | char | | |
stat21 | DWORD | Sandman Kills |
divider | char | | |
stat22 | DWORD | Paralyzing Punches |
divider | char | | |
stat23 | DWORD | Robots Disabled |
divider | char | | |
stat24 | DWORD | Contracts Completed |
divider | char | | |
stat25 | DWORD | Corpses Eaten |
divider | char | | |
stat26 | DWORD | Mysterious Stranger Visits |
divider | char | | |