Difference between revisions of "Saves (GTA 4)"
(→Block 0: SAVE/Miscellaneous) |
(→Block 0: SAVE) |
||
| Line 22: | Line 22: | ||
!DESCRIPTION | !DESCRIPTION | ||
|- | |- | ||
| − | |0x00 ||dword ||savegame version number | + | |0x00 ||dword ||savegame version number |
|- | |- | ||
|0x04 ||dword ||savegame size in bytes | |0x04 ||dword ||savegame size in bytes | ||
| Line 34: | Line 34: | ||
|0x110 ||end || | |0x110 ||end || | ||
|} | |} | ||
| − | + | ||
| − | * | + | Notes: |
| + | * Savegame version number value is set under the [SAVEGAME_VERSION_NUMBER] section in the GTA IV/common/data/version.txt file | ||
| + | * Last mission name is prefixed with either "TLAD - " or "TBoGT - " for Episodes From Liberty City saves | ||
====Block 2==== | ====Block 2==== | ||
Revision as of 22:15, 9 March 2015
This article deals with the format of a save game file for the PC version of GTA 4.
Location
By default, the game places its save game files into the "%LocalAppData%\Rockstar Games\GTA IV\savegames\user_XXXXXXXXXXXXXXXX\" folder where XXXXXXXXXXXXXXXX is a 16-character string tied to the user's Games for Windows Live account.
The save files themselves are named in the format SGTA4XX where XX represents the in-game slot number. There are 12 slots available in the game (1-12) plus an additional auto-save slot (SGTA400).
Format Details
- Save file size varies but is typically just under 2 megabytes.
- Byte order is little endian. For example, the number 3452 (0x0D7C) is represented as as 0x7C 0x0D.
Data Blocks
With the exception of Block 0 and Block 33, each data block consists of the 5 characters BLOCK followed by a variable amount of data; in general, each block has its own unique internal format. Following the BLOCK character is always a dword specifying the size of the block, starting at the beginning of BLOCK characters.
Block 0: SAVE
This block has a constant length of 0x110 bytes and does not start with the characters BLOCK like blocks 1 through 32.
| OFFSET | TYPE | DESCRIPTION |
|---|---|---|
| 0x00 | dword | savegame version number |
| 0x04 | dword | savegame size in bytes |
| 0x08 | dword | global variables size (?) |
| 0x0C | char[4] | "SAVE" |
| 0x10 | wchar_t[128] | Name of last mission passed |
| 0x110 | end |
Notes:
- Savegame version number value is set under the [SAVEGAME_VERSION_NUMBER] section in the GTA IV/common/data/version.txt file
- Last mission name is prefixed with either "TLAD - " or "TBoGT - " for Episodes From Liberty City saves
Block 2
This block has a constant length of 0xD4 bytes.
| OFFSET | TYPE | DESCRIPTION |
|---|---|---|
| 0x00 | dword | Size of block |
| 0x04 | byte[18] | unknown |
| 0x1C | dword | Player money |
| 0x20 | byte[4] | unknown |
| 0x24 | dword | Player money (Again. Perhaps one is amount shown on screen.) |
| 0x28 | byte[172] | unknown |
| 0xD4 | end |
Block 14: Stats
This block has a constant length of 0x1724 bytes and stores various statistics; most of which can be viewed the game's Stats menu.
| OFFSET | TYPE | DESCRIPTION |
|---|---|---|
| 0x00 | dword | Size of block |
| 0x04 | byte[80] | unknown stats |
| 0x54 | float | game_progress (GTA IV main story only. TLAD and TBoGT variables are below.) |
| 0x58 | float | roman_like |
| 0x5C | float | roman_respect |
| 0x60 | float | roman_mission_progress |
| 0x64 | float | vlad_mission_progress |
| 0x65 | float | jacob_like |
| 0x6C | float | jacob_respect |
| 0x70 | float | jacob_mission_progress |
| 0x74 | float | faustin_mission_progress |
| 0x78 | float | manny_mission_progress |
| 0x7C | float | elizabeta_mission_progress |
| 0x80 | float | dwayne_like |
| 0x84 | float | dwayne_respect |
| 0x88 | float | dwayne_mission_progress |
| 0x8C | float | brucie_like |
| 0x90 | float | brucie_respect |
| 0x94 | float | brucie_mission_progress |
| 0x98 | float | playboy_mission_progress |
| 0x9C | float | francis_mission_progress |
| 0xA0 | float | ulpc_mission_progress |
| 0xA4 | float | packie_like |
| 0xA8 | float | packie_respect |
| 0xAC | float | packie_mission_progress |
| 0xB0 | float | ray_mission_progress |
| 0xB4 | float | gerry_mission_progress |
| 0xB8 | float | derrick_mission_progress |
| 0xBC | float | bernie_mission_progress |
| 0xC0 | float | bell_mission_progress |
| 0xC4 | float | gambetti_mission_progress |
| 0xC8 | float | jimmy_mission_progress |
| 0xCC | float | carmen_ortiz_fondness |
| 0xD0 | float | carmen_trust |
| 0xD4 | float | alex_chilton_fondness |
| 0xD8 | float | alex_trust |
| 0xDC | float | kiki_jenkins_fondness |
| 0xE0 | float | kiki_trust |
| 0xE4 | float | michelle_fondness |
| 0xE8 | float | michelle_trust |
| 0xEC | float | kate_fondness |
| 0xF0 | float | kate_trust |
| 0xF4 | byte[93] | unknown stats |
| 0x268 | float | tlad_game_progress |
| 0x26C | byte[53] | unknown stats |
| 0x340 | float | tbogt_game_progress |
| 0x344 | byte[65] | unknown stats |
| 0x448 | dword | DWORD missions_passed |
| 0x44C | dword | missions_failed |
| 0x450 | dword | missions_attempted |
| 0x454 | dword | replays_used |
| 0x458 | dword | people_killed |
| 0x45C | dword | taxi_fares_completed |
| 0x460 | dword | times_cheated |
| 0x464 | dword | days_passed |
| 0x468 | dword | times_died |
| 0x46C | dword | people_run_down |
| 0x470 | dword | vehicles_exploded |
| 0x474 | dword | flips_done_in_vehicle |
| 0x478 | dword | most_vehicle_air_spins |
| 0x47C | dword | air_launches |
| 0x480 | dword | helicopter_tours_taken |
| 0x484 | dword | taxis_hailed |
| 0x488 | dword | stunt_jumps_found |
| 0x48C | dword | stunt_jumps_completed |
| 0x490 | dword | kills_since_last_save |
| 0x494 | dword | fires_started |
| 0x498 | dword | criminals_killed |
| 0x49C | dword | cars_stolen |
| 0x4A0 | dword | bikes_stolen |
| 0x4A4 | dword | boats_stolen |
| 0x4A8 | dword | helicopters_stolen |
| 0x4AC | dword | stars_attained |
| 0x4B0 | dword | stars_evaded |
| 0x4B4 | dword | vehicles_exported |
| 0x4B8 | dword | bridges_flown_under |
| 0x4BC | dword | paynspray_visits |
| 0x4C0 | dword | times_got_drunk |
| 0x4C4 | dword | drug_packages_delivered |
| 0x4C8 | dword | cars_sold_to_stevie |
| 0x4CC | dword | random_characters_met |
| 0x4D0 | dword | bullets_fired |
| 0x4D4 | dword | bullets_hit |
| 0x4D8 | dword | kills_by_headshot |
| 0x4DC | dword | melee_kills |
| 0x4E0 | dword | armed_kills |
| 0x4E4 | dword | __stat |
| 0x4E8 | dword | __stat |
| 0x4EC | dword | cars_exploded |
| 0x4F0 | dword | bikes_exploded |
| 0x4F4 | dword | boats_exploded |
| 0x4F8 | dword | helicopters_exploded |
| 0x4FC | dword | tires_popped_by_gunshot |
| 0x500 | dword | weapons_pickedup |
| 0x504 | dword | texts_received |
| 0x508 | dword | calls_made_on_phone |
| 0x50C | dword | calls_received_on_phone |
| 0x510 | dword | prostitute_visits |
| 0x514 | dword | tramps_given_money_to |
| 0x518 | dword | emails_sent |
| 0x51C | dword | meals_eaten |
| 0x520 | dword | hotdogs_eaten |
| 0x524 | dword | burgers_eaten |
| 0x528 | dword | nuts_eaten |
| 0x52C | dword | binoculars_used |
| 0x530 | dword | player_died_by_melee |
| 0x534 | dword | player_shot_to_death |
| 0x538 | dword | player_was_blown_up |
| 0x53C | dword | player_was_roadkill |
| 0x540 | dword | scored_with_girl |
| 0x544 | dword | pool_wins |
| 0x548 | dword | pool_defeats |
| 0x54C | dword | pool_clearances_from_break |
| 0x550 | dword | darts_wins |
| 0x554 | dword | darts_defeats |
| 0x558 | dword | darts_180s_hit |
| 0x55C | dword | darts_bullseyes |
| 0x560 | dword | darts_shortest_checkout |
| 0x564 | dword | bowling_high_score |
| 0x568 | dword | bowling_wins |
| 0x56C | dword | bowling_draws |
| 0x570 | dword | bowling_defeats |
| 0x574 | dword | bowling_spares |
| 0x578 | dword | bowling_perfects |
| 0x57C | dword | bowling_strikes |
| 0x580 | dword | total_races_lost |
| 0x584 | dword | total_races_won |
| 0x588 | dword | south_broken_wins |
| 0x58C | dword | south_broker_races |
| 0x590 | dword | airport_run_wins |
| 0x594 | dword | airport_run_races |
| 0x598 | dword | dukes_blvd_wins |
| 0x59C | dword | dukes_blvd_races |
| 0x5A0 | dword | south_algonquin_wins |
| 0x5A4 | dword | south_algonquin_races |
| 0x5A8 | dword | star_junction_wins |
| 0x5AC | dword | star_junction_races |
| 0x5B0 | dword | road_to_bohan_wins |
| 0x5B4 | dword | road_to_bohan_races |
| 0x5B8 | dword | north_alderny_wins |
| 0x5BC | dword | north_alderny_races |
| 0x5C0 | dword | elevated_wins |
| 0x5C4 | dword | elevated_races |
| 0x5C8 | dword | south_alderny_wins |
| 0x5CC | dword | south_alderny_races |
| 0x5D0 | dword | qub3d_high_score |
| 0x5D4 | dword | boating_destinations |
| 0x5D8 | dword | heli_ride_destinations |
| 0x5DC | dword | activities_with_roman |
| 0x5E0 | dword | activities_with_jacob |
| 0x5E4 | dword | activities_with_brucie |
| 0x5E8 | dword | activities_with_dwayne |
| 0x5EC | dword | activities_with_packie |
| 0x5F0 | dword | vigilante_levels_done |
| 0x5F4 | dword | most_wanted_completed |
| 0x5F8 | dword | pigeons_exterminated |
| 0x5FC | dword | first_aid_collected |
| 0x600 | dword | islands_unlocked |
| 0x604 | dword | total_dates |
| 0x608 | dword | successful_dates |
| 0x60C | dword | bad_dates |
| 0x610 | dword | girls_dumped |
| 0x614 | dword | emails_received |
| 0x618 | dword | photos_taken |
| 0x61C | dword | mocap_cutscenes_skipped |
| 0x620 | dword | mocap_cutscenes_watched |
| 0x624 | dword | cutscenes_skipped |
| 0x628 | dword | cutscenes_watched |
| 0x62C | dword | sodas_drunk |
| 0x630 | dword | kills_with_unarmed |
| 0x634 | dword | kills_with_baseball_bat |
| 0x638 | dword | kills_with_poolcue |
| 0x63C | dword | kills_with_knife |
| 0x640 | dword | kills_with_grenade |
| 0x644 | dword | kills_with_molotov |
| 0x648 | dword | kills_with_rocket |
| 0x64C | dword | kills_with_pistol |
| 0x650 | dword | kills_with_combat_pistol |
| 0x654 | dword | kills_with_pump_shotgun |
| 0x658 | dword | kills_with_combat_shotgun |
| 0x65C | dword | kills_with_micro_smg |
| 0x660 | dword | kills_with_smg |
| 0x664 | dword | kills_with_assault_rifle |
| 0x668 | dword | kills_with_carbine_rifle |
| 0x66C | dword | kills_with_combat_sniper |
| 0x670 | dword | kills_with_sniper_rifle |
| 0x674 | dword | kills_with_rpg |
| 0x678 | dword | kills_with_flame_thrower |
| 0x67C | dword | kills_with_minigun |
| 0x680 | dword | kills_with_episodic_1 |
| 0x684 | dword | kills_with_episodic_2 |
| 0x688 | dword | kills_with_episodic_3 |
| 0x68C | dword | kills_with_episodic_4 |
| 0x690 | dword | kills_with_episodic_5 |
| 0x694 | dword | kills_with_episodic_6 |
| 0x698 | dword | kills_with_episodic_7 |
| 0x69C | dword | kills_with_episodic_8 |
| 0x6A0 | dword | kills_with_episodic_9 |
| 0x6A4 | dword | kills_with_episodic_10 |
| 0x6A8 | dword | kills_with_episodic_11 |
| 0x6AC | dword | kills_with_episodic_12 |
| 0x6B0 | dword | kills_with_episodic_13 |
| 0x6B4 | dword | kills_with_episodic_14 |
| 0x6B8 | dword | kills_with_episodic_15 |
| 0x6BC | dword | kills_with_episodic_16 |
| 0x6C0 | dword | kills_with_episodic_17 |
| 0x6C4 | dword | kills_with_episodic_18 |
| 0x6C8 | dword | kills_with_episodic_19 |
| 0x6CC | dword | kills_with_episodic_20 |
| 0x6D0 | dword | kills_with_episodic_21 |
| 0x6D4 | dword | kills_with_episodic_22 |
| 0x6D8 | dword | kills_with_episodic_23 |
| 0x6DC | dword | kills_with_episodic_24 |
| 0x6E0 | dword | times_busted |
| 0x6E4 | dword | saves_made |
| 0x6E8 | byte[4156] | unknown stats |
| 0x1724 | end |
Block 32: Checksum
This block has a constant length of 0x08 bytes. The checksum appears to be the sum of most of the bytes preceding it, however, which bytes exactly is unknown (See discussion).
| OFFSET | TYPE | DESCRIPTION |
|---|---|---|
| 0x00 | dword | Size of block |
| 0x04 | dword | Checksum |
| 0x08 | end |
Block 33: END
This block has a constant length of 0x16C bytes and does not begin with BLOCK like blocks 1 through 32. Data in this block appears to relate to Games For Windows Live data.
| OFFSET | TYPE | DESCRIPTION |
|---|---|---|
| 0x00 | char[4] | END\0 |
| 0x04 | dword | Unknown, appears to always be 0x128 |
| 0x08 | byte[292] | Unknown, appears to always be a mix of 0x0, 0x1, 0x2 and 0x3 bytes |
| 0x12C | byte[64] | Unknown |
| 0x16C | end |
| Savegame | |
|---|---|
| Formats | |
| Tools | GTASnP - Save File Sharing • |
| Resources | |
| File Formats | .dat • .gxt • .ide • .img • .ipl • .nod • .sco • .rpf • .rrr • .wad • .wbd/.wbn • .wdd • .wdr • .wft • .whm • .wpl • .wtd |
| Documentation | Audio • Bink Video • Cryptography • Cutscenes • GXT Text • Image listing • Keycodes • Map Listing • Native functions • Paths • Radar Blips • Radio Stations • Saves • Scenarios • VTable • Weapons |
| Tools | ASI Loader • ENBSeries • SCO Toolbox • G-Texture • GIMS IV • Ingame WPL Editor • IV Needle • OpenIV • SparkIV • XLiveLess • WPL Manager • X Mod Installer Alice • C++ Script Hook • .NET Script Hook • SC-CL • Scocl |
| Tutorials | Importing Textures with OpenIV • Importing Textures with SparkIV |
| Multiplayer | GTA Connected • CitizenMP:IV Reloaded • IV Multiplayer • Four Multiplayer • Gostown IV |
| Useful links | Community portal • Discussion forums • Modding forums • Mods on GTAGarage.com |