Overview
A guide on how to force fixed objective chains on maps
Description
The 1.10.0 update introduces a native way to control objective RNG called ‘Challenge mode’.
Challenge mode implements a countdown timer and forces the map to play out a specific objective chain. This is extremely helpful while speedrunning and the approved approach for the no-RNG category in [link].
Files and syntax
Challenges take the form of text files in the maps folder. They are named after the target map plus a “_challenges” suffix (e.g. nmo_cabin_challenges.txt).
The contents follow a basic key-value structure:
This tells the game to play the following objective sequence every time:
These seemingly random objective IDs can be obtained on any map by bringing up the developer console and doing sv_cheats 1; dump_objectives.
To actually enforce this sequence in-game, we do:
– sv_challenge 1 (Or simply ‘Challenge Mode’ in the server creation settings)
– sv_challenge_name “mychallenge” (note that this takes the challenge header as its parameter, not ‘Name’)
That’s it! The map will now only play the specified objectives.
Speedrun pack
Challenges can be tedious to make. That’s why I’ve compiled a collection of all mathematically possible objective chains, sorted by objective count.
It is highly suggested that you use this pack, rather than trying to come up with your own. It saves everyone’s time by ensuring that all submitted routes are valid.
To get the pack:
- Head over to this GitHub repository[github.com]
- Under the repository name, click Clone or download and Download as ZIP
- Copy the contents of the “challenges” folder into your “nmrih/maps” directory
- Restart your client
You’re now able to select any route for a map in-game, using the aforementioned console commands
Note: The “raw” folder isn’t required nor used, it is simply a “minified” version of all objective chains for a map, mostly used for development.
Notes
- You may notice some of the existing challenges also include a “Maphacks” section.
These make use of a more advanced new feature which dynamically modifies entities among other cool stuff. Maphacks are not allowed in speedrun.com though, so we shall ignore them for now. They deserve a guide of their own. - You must be careful to respect natural objective flow: You may not skip objectives or play them in the wrong order (e.g. playing “Blast through cabin wall.” before “Release stair gate” for Cabin). This will mess up the map and mark the run as invalid.
If you have any questions, let me know in the comments.