Progression Data/Burnout Paradise
The Progression resource stores the events, ranks, and opponents seen throughout Burnout Paradise, along with much of the related data. It is dependent on the Traffic Data resource for certain elements, such as event starts.
Previous versions Information on the Progression resource versions used in prior retail versions of Burnout Paradise. |
Development Information on the Progression resource versions used during development. |
Structures
BrnProgression::ProgressionData
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muVersionNumber | File version | 44 |
0x4 | 0x4 | uint32_t | muSize | Resource size | |
0x8 | 0x4 | CgsID* | mpaPlayerCarIds | Cars the player starts the game with | Leftover, actually hardcoded to the Hunter Cavalry |
0xC | 0x4 | uint32_t | muPlayerCarIdCount | Number of starter cars | Leftover, actually hardcoded to 1 |
0x10 | 0x4 | ProgressionRankData* | mpaProgressionRanks | Rank details | |
0x14 | 0x4 | uint32_t | muProgressionRankCount | Number of ranks | |
0x18 | 0x4 | EventJunction* | mpaEventJunctions | Junctions | |
0x1C | 0x4 | uint32_t | muEventJunctionCount | Number of junctions | |
0x20 | 0x4 | RaceEventData* | mpaEvents | Events | |
0x24 | 0x4 | uint32_t | muEventCount | Number of events | |
0x28 | 0x4 | Rival* | mpaRivals | Rivals | |
0x2C | 0x4 | int32_t | miRivalCount | Number of rivals | |
0x30 | 0x4 | OpponentBalanceData* | mpaAIBalances | AI opponent balancing data | |
0x34 | 0x4 | uint32_t | muAIBalanceCount | Number of balancing data entries | |
0x38 | 0x4 | EventRacerPersonality* | mpaPersonalities | AI personalities | |
0x3C | 0x4 | uint32_t | muPersonalityCount | Number of personalities | |
0x40 | 0x4 | TrophyUnlockData* | mpaTrophyUnlocks | Trophy car unlocks | Carbon cars |
0x44 | 0x4 | uint32_t | muTrophyUnlockCount | Number of trophy cars | |
0x48 | 0x4 | CarOpponentSet* | mpaCarOpponentSet | Per-vehicle opponent vehicle sets | |
0x4C | 0x4 | uint32_t | muCarOpponentsCount | Number of opponent sets | |
0x50 | 0x4 | uint32_t | ? | Number of event junctions (excluding BSI) | Remastered only, set to 120. Used in save validation |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muVersionNumber | File version | 44 |
0x4 | 0x4 | uint32_t | muSize | Resource size | |
0x8 | 0x8 | CgsID* | mpaPlayerCarIds | Cars the player starts the game with | Leftover, actually hardcoded to the Hunter Cavalry |
0x10 | 0x4 | uint32_t | muPlayerCarIdCount | Number of starter cars | Leftover, actually hardcoded to 1 |
0x14 | 0x4 | padding | |||
0x18 | 0x8 | ProgressionRankData* | mpaProgressionRanks | Rank details | |
0x20 | 0x4 | uint32_t | muProgressionRankCount | Number of ranks | |
0x24 | 0x4 | padding | |||
0x28 | 0x8 | EventJunction* | mpaEventJunctions | Junctions | |
0x30 | 0x4 | uint32_t | muEventJunctionCount | Number of junctions | |
0x34 | 0x4 | padding | |||
0x38 | 0x8 | RaceEventData* | mpaEvents | Events | |
0x40 | 0x4 | uint32_t | muEventCount | Number of events | |
0x44 | 0x4 | padding | |||
0x48 | 0x8 | Rival* | mpaRivals | Rivals | |
0x50 | 0x4 | int32_t | miRivalCount | Number of rivals | |
0x54 | 0x4 | padding | |||
0x58 | 0x8 | OpponentBalanceData* | mpaAIBalances | AI opponent balancing data | |
0x60 | 0x4 | uint32_t | muAIBalanceCount | Number of balancing data entries | |
0x64 | 0x4 | padding | |||
0x68 | 0x8 | EventRacerPersonality* | mpaPersonalities | AI personalities | |
0x70 | 0x4 | uint32_t | muPersonalityCount | Number of personalities | |
0x74 | 0x4 | padding | |||
0x78 | 0x8 | TrophyUnlockData* | mpaTrophyUnlocks | Trophy car unlocks | Carbon cars |
0x80 | 0x4 | uint32_t | muTrophyUnlockCount | Number of trophy cars | |
0x84 | 0x4 | padding | |||
0x88 | 0x8 | CarOpponentSet* | mpaCarOpponentSet | Per-vehicle opponent vehicle sets | |
0x90 | 0x4 | uint32_t | muCarOpponentsCount | Number of opponent sets | |
0x94 | 0x4 | uint32_t | ? | Number of event junctions | Remastered only, set to 120. Used in save validation |
BrnProgression::ProgressionRankData
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | float32_t | mfTrafficDensityRace | ||
0x4 | 0x4 | float32_t | mfBurningRouteTimeScale | ||
0x8 | 0x4 | float32_t | mfTrafficDensityBurningRoute | ||
0xC | 0x4 | float32_t | mfTrafficDensityRoadRage | ||
0x10 | 0x4 | float32_t | mfTrafficDensitySurvival | ||
0x14 | 0x4 | float32_t | mfTrafficDensityPursuit | ||
0x18 | 0x4 | float32_t | mfShuntStrengthRace | ||
0x1C | 0x4 | float32_t | mfShuntStrengthRoadRage | ||
0x20 | 0x4 | float32_t | mfShuntStrengthMarkedMan | ||
0x24 | 0x4 | float32_t | mfLargeVehicleProbability | ||
0x28 | 0x4 | uint32_t | muId | GameDB ID | |
0x2C | 0x20 | float32_t[8] | maOvertakingDifficulty | ||
0x4C | 0x2 | uint16_t | mu16MedalThresholdToNextRank | Number of wins required for a license upgrade | |
0x4E | 0x2 | uint16_t | mu16EventThresholdToNextRank | ||
0x50 | 0x2 | uint16_t | muRoadRageTakedownTarget | ||
0x52 | 0x2 | uint16_t | muRoadRageTime | ||
0x54 | 0x2 | uint16_t | muRoadRageTimeExtensions | ||
0x56 | 0x2 | uint16_t | muRoadRageExtensionTime | ||
0x58 | 0x2 | uint16_t | muRoadRageDamageLimit | ||
0x5A | 0x2 | uint16_t | muRoadRageTriggerExtension | ||
0x5C | 0x1 | uint8_t | muRaceRivalsNumber | ||
0x5D | 0x1 | uint8_t | muGauntletRivalsNumber | ||
0x5E | 0x1 | uint8_t | muRoadRageRivalsNumber | ||
0x5F | 0x1 | uint8_t | muNumGiftCars | ||
0x60 | 0x1 | uint8_t | muNumWinsToRankUpRace | ||
0x61 | 0x1 | uint8_t | muNumWinsToRankUpStunt | ||
0x62 | 0x1 | uint8_t | muNumWinsToRankUpRoadRage | ||
0x63 | 0x1 | uint8_t | muNumWinsToRankUpMarkedMan | ||
0x64 | 0x4 | padding | |||
0x68 | 0x8 | CgsID | mFreeCarForRankUpID | Vehicle unlocked at a given rank |
BrnProgression::EventJunction
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muID | Junction GameDB ID | |
0x4 | 0x4 | RaceEventData* | mpOfflineEvent | Offline event | |
0x8 | 0x4 | RaceEventData* | mpOnlineEvent | Online event | |
0xC | 0x4 | RaceEventData* | Bike event | ||
0x10 | 0x4 | int32_t | miShotGroup | Shot group GameDB ID | Can be -1 |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muID | Junction GameDB ID | |
0x4 | 0x4 | padding | |||
0x8 | 0x8 | RaceEventData* | mpOfflineEvent | Offline event | |
0x10 | 0x8 | RaceEventData* | mpOnlineEvent | Online event | |
0x18 | 0x8 | RaceEventData* | Bike event | ||
0x20 | 0x4 | int32_t | miShotGroup | Shot group GameDB ID | Can be -1 |
0x24 | 0x4 | padding |
BrnProgression::RaceEventData
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muId | Event GameDB ID | |
0x4 | 0x4 | uint32_t | muFlags | Flags | See EFlags |
0x8 | 0x4 | float32_t | mfTrafficDensity | ||
0xC | 0x4 | float32_t | mfBoostEarning | ||
0x10 | 0x8 | CgsID | mSpecialEventCarId | Limits to specified vehicle ID | Used on Burning Routes |
0x18 | 0x4 | CheckpointData* | mpaCheckpoints | Checkpoints | |
0x1C | 0x4 | int32_t | miCheckpointCount | Number of checkpoints | |
0x20 | 0x4 | float32_t | mfTimeLimitFast | ||
0x24 | 0x4 | float32_t | mfTimeLimitSlow | ||
0x28 | 0x18 | int32_t[6] | miRankScore | ||
0x40 | 0x18 | float32_t[6] | mfRankTime | ||
0x58 | 0x4 | float32_t | mfExtensionTime | ||
0x5C | 0x8C | EventStartGridSlot[7] | maStartGridSlots | ||
0xE8 | 0x4 | uint32_t | muStartGridCount | ||
0xEC | 0x1 | uint8_t | mu8Mode | Event type | See EModeType |
0xED | 0x1 | uint8_t | mu8OnlineMode | Online event type | See EOnlineModeType |
0xEE | 0x1 | uint8_t | mu8StartRivalCount | ||
0xEF | 0x1 | uint8_t | mu8AddRivalCount | ||
0xF0 | 0x1 | uint8_t | mu8TakeDownBronze | ||
0xF1 | 0x1 | uint8_t | mu8TakeDownSilver | ||
0xF2 | 0x1 | uint8_t | mu8TakeDownGold | ||
0xF3 | 0x1 | uint8_t | mu8DamageLimit | ||
0xF4 | 0x1 | uint8_t | mu8ExtensionTimeCount | ||
0xF5 | 0x1 | uint8_t | mu8AStarType | A* Type | See AStarType |
0xF6 | 0x1 | int8_t | mi8UnlockRank | ||
0xF7 | 0x1 | padding |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muId | Event GameDB ID | |
0x4 | 0x4 | uint32_t | muFlags | Flags | See EFlags |
0x8 | 0x4 | float32_t | mfTrafficDensity | ||
0xC | 0x4 | float32_t | mfBoostEarning | ||
0x10 | 0x8 | CgsID | mSpecialEventCarId | Limits to specified vehicle ID | Used on Burning Routes |
0x18 | 0x8 | CheckpointData* | mpaCheckpoints | Checkpoints | |
0x20 | 0x4 | int32_t | miCheckpointCount | Number of checkpoints | |
0x24 | 0x4 | float32_t | mfTimeLimitFast | ||
0x28 | 0x4 | float32_t | mfTimeLimitSlow | ||
0x2C | 0x18 | int32_t[6] | miRankScore | ||
0x44 | 0x18 | float32_t[6] | mfRankTime | ||
0x5C | 0x4 | float32_t | mfExtensionTime | ||
0x60 | 0x8C | EventStartGridSlot[7] | maStartGridSlots | ||
0xEC | 0x4 | uint32_t | muStartGridCount | ||
0xF0 | 0x1 | uint8_t | mu8Mode | Event type | See EModeType |
0xF1 | 0x1 | uint8_t | mu8OnlineMode | Online event type | See EOnlineModeType |
0xF2 | 0x1 | uint8_t | mu8StartRivalCount | ||
0xF3 | 0x1 | uint8_t | mu8AddRivalCount | ||
0xF4 | 0x1 | uint8_t | mu8TakeDownBronze | ||
0xF5 | 0x1 | uint8_t | mu8TakeDownSilver | ||
0xF6 | 0x1 | uint8_t | mu8TakeDownGold | ||
0xF7 | 0x1 | uint8_t | mu8DamageLimit | ||
0xF8 | 0x1 | uint8_t | mu8ExtensionTimeCount | ||
0xF9 | 0x1 | uint8_t | mu8AStarType | A* Type | See AStarType |
0xFA | 0x1 | int8_t | mi8UnlockRank | ||
0xFB | 0x5 | padding |
BrnProgression::CheckpointData
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muLandmarkId | Landmark GameDB ID | |
0x4 | 0x4 | int32_t | miBlockSectionCount | Number of block sections | |
0x8 | 0x20 | uint32_t[8] | mauBlockSectionIds | Block section GameDB IDs |
BrnProgression::EventStartGridSlot
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muOpponentIndex | ||
0x4 | 0x4 | uint32_t | muPersonalityIndex | ||
0x8 | 0x4 | int32_t | miFastAIBalanceGraphIndex | ||
0xC | 0x4 | int32_t | miSlowAIBalanceGraphIndex | ||
0x10 | 0x1 | uint8_t | muColourIndex | ||
0x11 | 0x1 | uint8_t | muFlags | Flags | See EFlags |
0x12 | 0x2 | padding |
BrnProgression::Rival
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | CgsID | mId | GameDB ID | |
0x8 | 0x8 | CgsID | mCarId | Vehicle to use | |
0x10 | 0x2 | int16_t | miPersonalityIndex | ||
0x12 | 0x2 | int16_t | miPursuitTarget | ||
0x14 | 0x1 | int8_t | miDistrictIndex | ||
0x15 | 0x1 | int8_t | miUnlockRank | ||
0x16 | 0x1 | uint8_t | mu8NumMedalsToUnlock | ||
0x17 | 0x1 | bool | mbIsUsedForRankUpGiftCar | ||
0x18 | 0x20 | char[32] | macName | Rival name |
BrnProgression::OpponentBalanceData
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x20 | float32_t[8] | mafAheadGraphPoints | ||
0x20 | 0x20 | float32_t[8] | mafBehindGraphPoints | ||
0x40 | 0x4 | float32_t | mfCatchUpCutOffRatio |
BrnProgression::EventRacerPersonality
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | float32_t | mfMinAggression | ||
0x4 | 0x4 | float32_t | mfMaxAggression | ||
0x8 | 0x4 | float32_t | mfSkill | ||
0xC | 0x4 | float32_t | mfSpeed |
BrnProgression::TrophyUnlockData
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muNumberTrophyUnlock | Always 0 | |
0x4 | 0x2 | uint16_t | mu16UnlockType | See UnlockType | |
0x6 | 0x2 | padding | |||
0x8 | 0x8 | CgsID | mCarUnlockId | ID of vehicle to unlock |
BrnProgression::CarOpponentSet
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x80 | CarOpponent[8] | maCarOpponents | ||
0x80 | 0x8 | CgsID | mPlayerCarId | ||
0x88 | 0x4 | int32_t | miRank | ||
0x8C | 0x4 | int32_t | miOpponentCount |
BrnProgression::CarOpponent
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | CgsID | mCarId | ||
0x8 | 0x4 | int32_t | miPersonalityIndex | ||
0xC | 0x4 | padding |
Enumerations
BrnProgression::RaceEventData::EFlags
Name | Value | Comments |
---|---|---|
E_FLAG_CRASHBREAKER | 0x1 | Unused in final game |
? | 0x2 | Midnight ride? |
BrnProgression::RaceEventData::EModeType
Name | Value | Comments |
---|---|---|
E_MODE_INVALID | -1 | |
E_MODE_RACE | 0 | |
E_MODE_ROAD_RAGE | 1 | |
E_MODE_STUNT_ATTACK | 2 | |
E_MODE_SURVIVOR | 3 | |
E_MODE_BURNING_ROUTE | 4 | |
E_MODE_PURSUIT | 5 | |
E_MODE_COUNT | 6 |
BrnProgression::RaceEventData::EOnlineModeType
Name | Value | Comments |
---|---|---|
E_ONLINE_MODE_RACE | 0 | |
E_ONLINE_MODE_ROAD_RAGE | 1 | |
E_ONLINE_MODE_BURNING_HOME_RUN | 2 | |
E_ONLINE_MODE_COUNT | 3 |
BrnProgression::RaceEventData::AStarType
Name | Value | Comments |
---|---|---|
E_ASTAR_TYPE_EUCLIDEAN | 0 | |
E_ASTAR_TYPE_EUCLIDEAN_X_BIASED | 1 | |
E_ASTAR_TYPE_EUCLIDEAN_Y_BIASED | 2 |
BrnProgression::EventStartGridSlot::EFlags
Name | Value | Comments |
---|---|---|
E_FLAG_CAN_DEVIATE_FROM_ROUTE | 0x1 | |
E_FLAG_CAN_TAKE_SHORTCUTS | 0x2 |
BrnProgression::TrophyUnlockData::UnlockType
Name | Value | Comments |
---|---|---|
E_UNLOCKTYPE_NONE | 0 | |
E_UNLOCKTYPE_COMPLETE_ALL_STUNTS | 1 | |
E_UNLOCKTYPE_COMPLETE_ALL_JUMPS | 2 | |
E_UNLOCKTYPE_COMPLETE_ALL_SMASHES | 3 | |
E_UNLOCKTYPE_COMPLETE_ALL_TAKEDOWNS | 4 | |
E_UNLOCKTYPE_COMPLETE_ALL_CRASHES | 5 | |
E_UNLOCKTYPE_COMPLETE_ALL_TIMEROADRULES | 6 | |
E_UNLOCKTYPE_COMPLETE_ALL_CRASHROADRULES | 7 | |
E_UNLOCKTYPE_COMPLETE_ALL_ROADRULES | 8 | |
E_UNLOCKTYPE_COMPLETE_ALL_JUNCTIONEVENTS | 9 | |
E_UNLOCKTYPE_COMPLETE_ALL_ONLINECHALLENGE | 10 | |
E_UNLOCKTYPE_COMPLETE_ALL_RACES | 11 | |
E_UNLOCKTYPE_COMPLETE_ALL_ROADRAGES | 12 | |
E_UNLOCKTYPE_COMPLETE_ALL_BURNINGROUTES | 13 | |
E_UNLOCKTYPE_COMPLETE_ALL_ELIMINATORS | 14 | |
E_UNLOCKTYPE_COMPLETE_ALL_SURVIVORS | 15 | |
E_UNLOCKTYPE_COMPLETE_ALL_STUNTATTACK | 16 | |
E_UNLOCKTYPE_FIND_ALL_GASSTATIONS | 17 | |
E_UNLOCKTYPE_FIND_ALL_JUNKYARDS | 18 | |
E_UNLOCKTYPE_FIND_ALL_PAINTSHOPS | 19 | |
E_UNLOCKTYPE_FIND_ALL_BODYSHOPS | 20 | |
E_UNLOCKTYPE_FIND_ALL_DRIVE_THRUS | 21 | |
E_UNLOCKTYPE_NUM_MEDELS | 22 | |
E_UNLOCKTYPE_NUM_ROADRULES | 23 | |
E_UNLOCKTYPE_NUM_TIME_ROADRULES | 24 | |
E_UNLOCKTYPE_NUM_CRASH_ROADRULES | 25 | |
E_UNLOCKTYPE_NUM_NORMALTAKEDOWNS | 26 | |
E_UNLOCKTYPE_NUM_SIGNATURETAKEDOWNS | 27 | |
E_UNLOCKTYPE_NUM_JUMPS | 28 | |
E_UNLOCKTYPE_NUM_SMASHES | 29 | |
E_UNLOCKTYPE_NUM_STUNTS | 30 | |
E_UNLOCKTYPE_NUM_ONLINE_VERTICLE_TAKEDOWNS | 31 | |
E_UNLOCKTYPE_NUM_PERCENTAGE_PARALLELPARK_ONLINE | 32 | |
E_UNLOCKTYPE_NUM_OF_EACH_ONLINE_EVENT_COMPLETE | 33 | |
E_UNLOCKTYPE_NUM_MUG_SHOTS_COLLECTED | 34 | |
E_UNLOCKTYPE_COUNT | 35 |