GTA Wiki

Help required: categories

Hi everyone, please help us by filling out this form!


We are determining how players best define and/or differentiate the terms "game modes", "missions" and "activities". This will be used to help us develop a clear and logical category tree to house articles related to this type of content.


Thank you in advance for help!

READ MORE

GTA Wiki
Advertisement
GTA Wiki
19,871
pages

The following is a detailed analysis of replay files as used in Grand Theft Auto: San Andreas. Due to similar programming, this article may be partially applicable to replay files for Grand Theft Auto III and Grand Theft Auto: Vice City.

Description[]

Replays are the sequence of the scenes and actions recorded and stored in the replay.rep file. In GTA San Andreas, this file is located in the User Files directory.

Each .rep file consists of a header string and variable amount of 'scenes' (or 'frames'). A scene is a copy of important game information at given moment of time (actors, vehicles positions, weather, clothes, etc). Following one after another, the scenes create an illusion of a movie when played. The most of scenes contains a same set of blocks and ends with Block 8.

The .rep file itself consist of a header string which is simply the text GtaSA29 and up to 8 parts, size of each one is 100,000 bytes, depending on the replay length. So, the maximum size of a replay file is 800,008 bytes (including 8 bytes of the header string). If the replay length is that it does not match 100,000 bytes boundary being less, the rest of the file is filled with useless data (commonly the previous replay data).

Data blocks[]

Each block consists of a byte denoting its type and some data as described below. A number in a block name is the data type stored in the first byte of the block. Reading this byte, the game detects what block follows.

Block 0: End of file[]

This block denotes the end of replay data. It consists only of a data type. After this block the game stops reading the replay file.

OFFSET  TYPE      DESCRIPTION
0x00    byte      data type (0x00)
0x01              (end)

Block 1: Vehicle1[]

size 52 bytes

Block 2: Vehicle2[]

size 56 bytes

Block 3: Player data[]

Common information about player ped.

OFFSET  TYPE      DESCRIPTION
0x00    byte      data type (0x03)
0x01    byte      index (handle?)
0x02    WORD      modelID
0x04    byte      ped type
0x05    byte[3]   (align)
0x08              (end)

Block 4: Ped[]

size 52 bytes

Block 5: Camera[]

size 88 bytes

Block 6: Day time[]

This block contains information about current day time during a scene.

OFFSET  TYPE      DESCRIPTION
0x00    byte      data type (0x06)
0x01    byte      currentHour
0x02    byte      currentMinute
0x03    byte      (align)
0x04              end

Block 7: Weather[]

size 8 bytes

Block 8: End of scene[]

This block denotes the end of the current scene (frame). It consists only of a data type.

OFFSET  TYPE      DESCRIPTION
0x00    byte      data type (0x00)
0x01              (end)

Block 9: Scene timing[]

This block contains value of the global game timer. The replay play length could be found by using this block.

OFFSET  TYPE      DESCRIPTION
0x00    byte      data type (0x09)
0x01    byte[3]   (align)
0x04    DWORD     timer
0x08              (end)

Block 10: Unknown[]

size 28 bytes

Block 11: Unknown[]

size 20 bytes

Block 12: Unknown[]

size 16 bytes

Block 13: Unknown[]

size 4 bytes; same as Block 8?

Block 14: Unknown[]

size 4 bytes; same as Block 8?

Block 15: Unknown vehicle[]

size 56 bytes; same as Block 2?

Block 16: Unknown vehicle[]

size 56 bytes; same as Block 2?

Block 17: Unknown vehicle[]

size 60 bytes

Block 18: Unknown[]

size 76 bytes

Block 19: Clothes[]

This block contains information on the current clothes of the player. The block structure is identical to the one in the Player structure in a save file.

OFFSET  TYPE      DESCRIPTION
0x00    DWORD[10] modelCRCs
0x28    DWORD[18] textureCRCs
0x70    WORD      Fat
0x72    WORD      Muscle;

Tools[]

There is a template for 010 Editor, made by Seemann. It allows to edit different replay data: http://sannybuilder.com/dev/Replay.rar

Advertisement