Challenge Mode data

*This article is a stub. You can help Overload Wiki by expanding it.*

The **Challenge Mode data** file is a text file containing gameplay information for a Challenge Mode level, including a localized level description, and what kind and how many Autonomous Operators should appear.
The Challenge Mode data file should be named `challenge_mode_<levelname>.txt`. For example, a level called `caverns.cm` would have a Challenge Mode data file called `challenge_mode_caverns.txt`

## Syntax

The first line of the file must always be `CHALLENGE_DATA`. The last line must be `CHALLENGE_DATA_END`.

Comments start with `//` and continue to the end of the line.

## Default Challenge Mode Data

The Overload Level Editor can create a **default Challenge Mode data file**. Use the `File -> Create CM data file...` menu option to generate a sample Challenge Mode data file in your custom level folder (where `.sp` and `.cm` files should be placed).

## Basic Information

### Level Description

The description text is written on one line, like so:

```
$desc_english Custom Level Description

```

This description is shown just before starting a Challenge Mode session, when choosing a starting loadout. Descriptions can be included in the following languages:

* English (`$desc_english`)
* Spanish (`$desc_spanish`)
* French (`$desc_french`)
* German (`$desc_german`)
* Russian (`$desc_russian`)

### Music

The following line selects a music track to play in the level:

```
$music; trackname

```

where `trackname` is the editor name of a music track. Refer to Music (level editor) for a list.

### Count Boosters

The rate at which robots spawn in the level can be increased with these settings:

```
$robot_count_booster_infinite; 0.0   // affects only Infinite
$robot_count_booster_countdown; 0.0  // affects only Countdown

```

Higher values mean more robots. Both settings default to 0 but can go above 1.

## Robot Groups

The allowed robots in a Challenge Mode level are divided into **groups**. Robots from each group are chosen at the start of each Challenge Mode session to create a pool of robots. For that session, robots are spawned only from that pool.

A group is specified as

```
$group<number>_robots; <count>

```

followed by a list of robots.

Groups are identified by their **number**. Up to 5 groups are allowed.

**Count**: The number of robots to choose from this group.

Each robot is specified on one line as follows:

```
$robot; <type>; <frequency>; <difficulty>

```

**Type**: The editor name of the robot's type. Refer to Enemy (entity type) for a list. Each type can only appear *once* across all groups.

**Frequency**: How often this robot appears relative to others (if chosen).

**Difficulty**:

**Example**

```
$group2_robots; 2
$robot; clawbota; 0.3; 0
$robot; recoila; 0.4; 0
$robot; recoilb; 0.3; 0
$robot; cannonb; 0.2; 0.2

```

## Super Robots

The Super Auto-Ops used in a Challenge Mode session are chosen from a list at the start of that session. The list of allowed Super Auto-Ops is specified as

```
$super_robots; <count>

```

followed by a list of super robot types.

**Count**: The number of super robot types to choose per session.

 Each super robot type is specified as

```
$super_robot; <type>; <frequency>

```

**Type**: Editor name of the robot's type.

**Frequency**: How often this super robot appears relative to others (if chosen)

**Example**

```
$super_robots; 3
$super_robot; hulka; 0.5
$super_robot; recoila; 1.0
$super_robot; gruntb; 1.0
$super_robot; dronea; 1.0
$super_robot; grunta; 1.0

```

## Variants

At the beginning of a Challenge Mode session, robot types are either set to always be a variant or never be a variant. The probability that a robot type will be a variant is specified as follows:

```
$robot_variant; <type>; <probability>

```

**Type**: The editor name of the robot's type.

**Probability**: Chance that this robot type will be a variant, ranging from 0 to 1.

**Example**

```
$robot_variant; dronea; 0.5 // 50% chance of being a variant (for one session)

```

## Secret Levels

Different settings are used when including a Challenge Mode level as a Secret Level in a Single Player mission. The robot groups, super robots, and variants described above are ignored, and the following settings are used instead:

### Robots

The pool of allowed robots in a Secret Level are listed as follows:

```
$robot_secret; <type>; <frequency> [variant]

```

**Type**: The editor name of the robot's type.

**Frequency**: How often the robot appears relative to others.

**Variant** (optional): Include a value of `true` to make this robot always spawn as a variant.

**Example**

```
$robot_secret; grunta; 1.0; true // always a variant
$robot_secret; dronea; 1.0       // never a variant
$robot_secret; recoila; 0.3

```

### Super Robots

Allowed Super Auto-Ops are specified in the same way as in Challenge Mode but with `$super_robots_secret` and `$robot_secret_super` instead of `$super_robots` and `$super_robot`, respectively.

### Weapon Unlocks

The types of missiles which can appear in a Secret Level are restricted. Each type of missile can be allowed into the level individually. For example, to allow Time Bombs, include the following line:

```
$missile_unlock_secret;timebomb

```

### Spawn Offset

**Example**

```
$secret_spawn_offset;3

```

### Timer Offset

**Example**

```
$secret_timer_offset;80

```

## Miscellaneous

### Headlights

Include the following line to make robots spawn with their headlights on:

```
$headlight_always_on

```

## Notes

* Official Challenge Mode level descriptions are written in UPPER CASE, even though lower case text is supported.
* If the Challenge Mode data file contains errors, a Challenge Mode session can still be started but with odd effects such as no HUD or no robots appearing.