RACES.TXT

From Carmageddon Wiki

RACES.TXT is a data file in Carmageddon, Carmageddon II and Carmageddon TDR 2000. This file holds some of the races' data, such as their names, laps, description, etc. The file's general layout differs from game to game. Luckily, almost all levels have comments next to each value, which helps understand the format.

In the first two games, this file is located inside the DATA folder. In the third game, inside ASSETS/CARMA.pak, and is named with lowercase letters.

Carmageddon

The general format for each level is as follows:

<name>
<files>
<text file>
<number of text chunks>
<x offset of first line>,<y offset of first line>
<frame start (incl)>,<frame end (excl)>
<number of lines>
<text>
[<more chunks of text>]

Legend

  • Name: The name of the level.
  • Files: This is a list of files. There is little documentation about this subject, so not much is known about this line.
  • Text file: As with the previous line, this one is about the level's TXT file.
  • Number of text chunks: How many parts there are to the level's description text.
  • Offset: This is the first line of each chunk. This specifies the coordinates where the text's first line will be.
  • Frames: Probably the frame numbers at which this piece of text appears and disappears.
  • Number of lines: The next X lines contain the text for this chunk.

Example

Maim Street:

Maim Street
CITYA1M.FLI,CTY1MAP.FLI,INFOBACK.FLI
CITYA1.TXT
5					// Number of text chunks
5,3				// x,y offset of first line
5,99			// Frame start (incl), end (excl)
2				// Number of lines
LOCATION: BLEAK CITY
BUSINESS DISTRICT
5,24				// x,y offset of first line
15,99			// Frame start (incl), end (excl)
1				// Number of lines
PEDESTRIAN COUNT: 527
5,35				// x,y offset of first line
25,99			// Frame start (incl), end (excl)
1				// Number of lines
1 LAP: 2.87 MILES
5,46				// x,y offset of first line
35,99			// Frame start (incl), end (excl)
1				// Number of lines
NUMBER OF LAPS: 3
5,64				// x,y offset of first line
45,99			// Frame start (incl), end (excl)
7				// Number of lines
TONIGHT'S THE NIGHT OF
THE BIG GAME - SO YOU 
MAY WANT TO CHECK OUT 
THE STADIUM AS YOU'RE
PASSING. DON'T WORRY,
BLOOD WASHES OUT OF
ASTROTURF REAL EASY.

Carmageddon II

The file starts with a number. This number indicates what's the first race the game starts on, which is normally 0.

After that come 6 values, one in each line:

  • Default number of opponents in first race
  • Default number of opponents in last race
  • Softness, hardest rank of opponents in first race
  • Softness, hardest rank of opponents in last race
  • Opponent nastiness influencer for first race
  • Opponent nastiness influencer for last race

The general format for each level is as follows:

<name>
<text file>
<interface element>
<number of opponents>
<number of explicit opponents>
[<explicit opponents>]
<opponent nastiness>
<powerup exclusions>
<disable time awards>
<boundary race>
<race type>
<timer count>
<laps>
<bonus for all laps raced>
<bonus for all peds killed>
<bonus for all opponents wasted>
<description>
<expansion>

Legend

  • Name: The level's name.
  • Text file: The TXT file for this level.
  • Name of interface element: Unknown. Seems to always be "NotDoneYet".
  • Number of opponents: -1 uses the default number, calculated according to the current group and level.
  • Explicit opponents: This line is the number of opponents that must be included in the race. The X lines below this one are the opponents' code number.
  • Opponent nastiness: -1 uses the default number, calculated according to the current group.
  • Powerup exclusions: -1 makes all powerups valid. The code number for the powerups that must be excluded are in this line, separated by a comma and without spaces.
  • Disable time awards: 0 or 1. If disabled (1), doing actions that increase the timer will no longer increase it, something common in missions.
  • Boundary race (mission): 0 or 1. If enabled (1), the game will act like this level's a mission. The effects of that are unknown.
  • Race type: 0 = Carma1, 1 = Cars, 2 = Peds, 3 = Checkpoints, 4 = Smash. Normally, this is 0, but if the level can only be completed with a certain goal, it must be specified here.
  • Timer count: The starting time, in seconds. Commas separate the difficulty levels.
  • Laps: The number of laps needed to complete the race.
  • Bonuses: How much money is earned after winning a race with a certain goal. Difficulties separated by commas.
  • Description: The track's description on the choose race screen. @R breaks a new line, @L writes the number of laps, and @O writes the number of opponents.
  • Expansion: Unknown. Only Trucking Hell has this as 1, all other tracks have this value as 0.

Examples

Nice Beaver:

NICE BEAVER
NEWCITY1.TXT		// Text file name
NotDoneYet			// Name of interface element
-1					// Number of opponents (-1 = use default)
0					// Number of explicit opponents
-1					// Opponent nastiness level (-1 = use default)
-1					// Powerup exclusions
0					// Disable time awards
0					// Boundary race (mission)
0					// Race type (0 = Carma1, 1 = Cars, 2 = Peds, 3 = Checkpoints, 4 = Smash)
120,90,60			// Initial timer count for each skill level
4					// # laps
20000,10000,5000	// Race completed bonus (all laps raced) for each skill level
75000,50000,30000	// Race completed bonus (all peds killed) for each skill level
20000,10000,5000	// Race completed bonus (all oppos wasted) for each skill level
// Race description
LOCATION: BEAVER CITY @R LAPS: @L  @R CHECKPOINTS: 4 @R OPPONENTS: @O @R RACE, WRECK OR WREAK HAVOC AMONGST THE ZOMBIE HORDES... THE CHOICE IS YOURS.
0					// Expansion

Trucking Hell:

MISSION: TRUCKING HELL
JUNKYARD_MISSION.TXT// Text file name
NotDoneYet			// Name of interface element
1					// Number of opponents (-1 = use default)
1					// Number of explicit opponents
38
10					// Opponent nastiness level (-1 = use default)
-1 // Powerup exclusions:
1					// Disable time awards
1					// Boundary race (mission)
1					// Race type (0 = Carma1, 1 = Cars, 2 = Peds, 3 = Checkpoints, 4 = Smash)
900,600,300			// Initial timer count for each skill level
1					// Number of opponents that must be killed (-1 means all)
38
150000,100000,50000	// Race completed bonus for each skill level
// Race description
LOCATION: MAX'S JUNKYARD @R A truck has escaped from the quarry and followed you home. You must destroy it!
1					// Expansion

Carmageddon TDR 2000

The general format for each race is as follows:

RACE
  TRACK "<track folder>"
  NAME "<track name>"
  TYPE <race type number>
  TIMER <time (easy)> <time (medium)> <time (hard)>
  [LAPS <number of laps>]
  [CHECKPOINT_BONUS <credits (easy)> <credits (medium)> <credits (hard)>]
  [BONUS_LAPS <lap completion bonus (easy)> <lap completion bonus (medium)> <lap completion bonus (hard)>]
  [BONUS_PEDS <ped completion bonus (easy)> <ped completion bonus (medium)> <ped completion bonus (hard)>]
  [BONUS_CARS <waste completion bonus (easy)> <waste completion bonus (medium)> <waste completion bonus (hard)>]
  [NUM_OPPONENTS <number of opponents>]
  [OPPONENT_NASTINESS <opponent nastiness number>]
  [MAX_OPPONENT_VALUE <thousands of AIs>]
  [OPPONENT_PATHS <file name>]
  POWERUPS <file name>
  POWERUPS_SAVENAME <file name>
  [DRONE_PATHS <file name>]
  [MISSION_DESC <file name>]
  [NUM_CHECKPOINTS <number of checkpoints>]
  RACE_ID <id number>
  RACE_DEPENDENCY <dependency number>
  [MISSION <is this a mission?>]
  [CAMERA_PATH <file name>]
  [CAMERA_INTEREST_PATH <file name>]
END

Legend

  • Track folder: The name of the folder that contains the race's info, in the ASSETS/Tracks folder.
  • Track name: Same as track folder.
  • Race type: The type of race. 31 is a normal race, 32 is a mission, 64 is a multiplayer level.
  • Time: Starting time for each difficulty, in seconds. These should have at least one decimal place, to indicate it's a floating point.
  • Laps: Number of laps needed to finish the race.
  • Checkpoint bonus: Time bonus when a checkpoint is crossed.
  • Lap completion bonus: Bonus credits for when the race is completed by finishing all laps.
  • Ped completion bonus: Bonus for when it's completed by killing all pedestrians.
  • Waste completion bonus: Bonus for when it's completed by wasting all opponents.
  • Number of opponents: Number of opponents that appear in this race.
  • Opponent nastiness: Opponent nastiness number. Seems to always be 6.
  • Max opponent value: The comments say this is the "suggested max value of AI's that can appear in this race, in thousands". What this means is unknown.
  • Opponent paths: Name of the file containing the opponents' paths.
  • Powerups: Name of the file containing powerup data.
  • Powerups savename: Unknown.
  • Drone paths: Name of the file containing drone paths.
  • Mission descripton: Name of the file containing the mission's description script.
  • Number of checkpoints: Number of checkpoints.
  • Race ID: Race ID number.
  • Race dependency: Unknown.
  • Mission: If this is a mission, this value should be 1. Otherwise, it can be 0, or the line can be missing altogether.
  • Camera path: Name of the file containing the camera's path for cutscenes.
  • Camera interest path: Unknown.

Examples

Boulevard:

RACE
  TRACK "Hollowood_Race1"
  NAME "Hollowood_Race1"
  TYPE 31					// Type of race
  TIMER 150.0 120.0 70.0			// Seconds
  LAPS 4
  CHECKPOINT_BONUS 12 12 12
  BONUS_LAPS 20000 10000 5000
  BONUS_PEDS 20000 10000 5000
  BONUS_CARS 20000 10000 5000
  NUM_OPPONENTS 6
  OPPONENT_NASTINESS 6				// Valid Range ?
  MAX_OPPONENT_VALUE 350			// suggested max value of AI's that can appear in this race, in thousands
  OPPONENT_PATHS "FilmStudioRace1.hie"
  POWERUPS "Hollowood_Race1.pup"
  POWERUPS_SAVENAME "assets\tracks\Hollowood_Race1\Hollowood_Race1.pup"
  DRONE_PATHS "FilmStudioTraffic_Paths_1.hie"
  NUM_CHECKPOINTS 5
  RACE_ID 1
  RACE_DEPENDENCY 0
END

Clear the Decks:

RACE
  TRACK "DocksMD_Mission2"
  NAME "DocksMD_Mission2"
  TYPE 32					// Type of race
  TIMER 200.0 160.0 140.0			// Seconds
  CHECKPOINT_BONUS 25 20 18
  BONUS_LAPS 20000 10000 5000
  BONUS_PEDS 20000 10000 5000
  BONUS_CARS 20000 10000 5000
  POWERUPS "DocksMD_Race1.pup"
  POWERUPS_SAVENAME "assets\tracks\DocksMD_Race1\DocksMD_Race1.pup"
  DRONE_PATHS "New_DOCKSDrone_Paths.hie"
  MISSION_DESC "DocksMD_Mission2_Script.txt"
  OPPONENT_PATHS "New_DOCKSRace_1_AI.hie"
  MISSION 1
  RACE_ID 16
  RACE_DEPENDENCY 11
  CAMERA_PATH "DocksM2cam_paths.hie"
  CAMERA_INTEREST_PATH "DocksM2int_paths.hie"
END

Bulldogs:

RACE
  TRACK "Bulldogs"
  NAME "Bulldogs"
  TYPE 64				// Type of race
  TIMER 200.0 160.0 140.0			// Seconds
  POWERUPS "Bulldogs_Race1.pup"
  POWERUPS_SAVENAME "assets\tracks\Bulldogs\Bulldogs_Race1.pup"
  RACE_ID 32
  RACE_DEPENDENCY 0
  MISSION 0
END

See also