Burnout Game Data (Takedown-Dominator)

From Burnout Wiki

The Burnout Game Data format contains configuration data and settings for a given track, such as traffic density levels, whether the track is forward or reverse, spawn coordinates for player and traffic vehicles, the start/end location of a lap, signature takedown data, and much more. It uses the extension .BGD.

This page documents the BGD version used by the Takedown-era Burnout games; see the Burnout 2 Game Data page for documentation of the rather different and much older version of the format used by Burnout 2: Point of Impact.

Versions

BGD uses a single number at the very start of the file to indicate its version.

Version
0x07 0x08 0x09 0x10 0x11 0x13 0x0B
Date Apr 2004 Jun 2004 Jul 2004 May 2005 Jul 2005 Jan 2007 Feb 2007
Games Takedown (Early Demo) Takedown (Preview Build) Takedown
Legends
Revenge (2005, Early Demo) Revenge (2005) Dominator(PS2) Dominator(PSP)

Layout (Version 0x11)

Game Data

Offset Name Type Value Notes
0x00 Version number uint 0x11
0x08 Stage data IDs GtID[]
0x648 Stage data offsets Stage Data*[]
0x968 Stage count int
0x96C Single race data offset Single Race Data*
0x970 Track data offset Track Data*
0x974 Traffic data offset Traffic Data*
0x978 Traffic lanes data offset Traffic Lanes Data*
0x97C AI lanes data offset AI Lanes Data*
0x980 Camera data offset Camera Data*
0x984 Detour data offset Detour Data*

Stage Data

Offset Name Type Value Notes
0x00 Drivers AI Driver[6] Array of 6 driver data blocks; each block is 0x98 in length.
0x390 Track ID GtID
0x398 Stage ID GtID
0x3A0 Gold medal threshold float
0x3A4 Silver medal threshold float
0x3A8 Bronze medal threshold float
0x3AC Time limit float
0x3B0 Driver count int 0x06
0x3B4 Lap count int
0x3B8 Track data size int32
0x3BC Track data offset Track Data*
0x3C0 Traffic data size int32
0x3C4 Traffic data offset Traffic Data*
0x3C8 Traffic lanes size int32
0x3CC Traffic lanes offset Traffic Lanes Data*
0x3D0 AI lanes size int32
0x3D4 AI lanes offset AI Lanes Data*
0x3D8 Camera data size int32
0x3DC Camera data offset Camera Data*
0x3E0 Hard start uint8
0x3E1 Crash golf par int8
0x3E4 Pad uint8[]
0x3E8 Crash golf target int

AI Driver

Offset Name Type Value Notes
0x00 Vehicle class ID GtID
0x08 Vehicle ID GtID
0x10 Minimum split values float[16]
0x50 Maximum split values float[16]
0x90 Aggression uint8
0x91 Maximum aggression uint8
0x92 Delta aggression uint8
0x93 Catchup tailoff uint8
0x94 Vehicle color int8
0x95 Takedown difficulty int8
0x96 Flags int8
0x97 Difficulty uint8

Single Race Data

Offset Name Type Value Notes
0x00 Driver arrays AI Driver[9][6]
0x2010 Driver count int[9]

Track Data

Offset Name Type Value Notes
0x00 Start positions Start Position[6]
0x1E0 Start lines Start Line
0x2E0 Finish lines Finish Line
0x470 Signature takedowns offset Signature Takedown*[]
0x474 Crash Mode pickups offset Crash Pickup*[]
0x478 Crash Mode ramps offset Crash Ramp*[]
0x47C Version number uint 0x08
0x480 Intro sequences int[]
0x488 Start line count int
0x48C Finish line count int
0x490 Split time checkpoint count int
0x494 Signature takedown count int
0x498 Crash Mode pickup count int
0x49C Crash Mode ramp count int

Start Position

Offset Name Type Value Notes
0x00 Matrix Matrix3x4
0x40 Stream unit index int
0x44 AI lane index int
0x48 AI lane segment index int
0x4C Pad int

Signature Takedown

Offset Name Type Value Notes
0x00 Box Matrix3x4 Start and end coordinates of the zone into which a rival must be taken down.
0x40 Type ESignatureTakedownType

AI Lanes Data

Offset Name Type Value Notes
0x00 Lane data version number int 0x07
0x04 Lane count int
0x08 Slice count int
0x0C Environment slice count int
0x10 Corner count int
0x14 Checkpoint count int
0x18 Crossover slice count int
0x1C Lanes offset AI Lane*[] Pointer to an array of AI Lanes
0x20 Slices offset Slice*[] Pointer to an array of Slices
0x24 Environment slices offset Environment Slice*[] Pointer to an array of Environment Slices
0x28 Corners offset Corner*[] Pointer to an array of Corners
0x2C Crossover slices offset Crossover Slice*[] Pointer to an array of Crossover Slices
0x30 Nodes offset Node*[] Pointer to an array of Nodes
0x34 Checkpoints AI Checkpoint[]
0xB4 Color occluded int
0xB4 Color visible int

AI Checkpoint

Offset Name Type Value Notes
0x00 Distance float
0x04 Minimum time float
0x08 Maximum time float
0x0C Slice uint16
0x0E Pad uint16

AI Lane

Offset Name Type Value Notes
0x00 Data word*
0x04 Index int

Slice

Offset Name Type Value Notes
0x00 Cumulative length float
0x04 Indicator uint8
0x05 Weather intensity uint8
0x06 Pad 1 int8
0x07 Pad 2 int8

Environment Slice

Not to be confused with Environment Track Data.

Offset Name Type Value Notes
0x00 Slice index int
0x04 Sky bloom color RGB uint8[3]
0x07 Sky color intensity uint8
0x08 Specular color RGB uint8[3]
0x0B Specular intensity uint8
0x0C Cloud color RGB uint8[3]
0x0F World brightness intensity uint8
0x10 Bloom threshold uint8
0x11 World bloom intensity uint8
0x12 Environment map intensity uint8
0x13 Cloud intensity uint8
0x14 Flags int