No More Room in Hell Guide

No-RNG Speedrunning for No More Room in Hell

No-RNG Speedrunning

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:

“Challenges” { // This is a comment “mychallenge” { “Name” “No RNG” “Objectives” { “0” “24” “1” “21” “2” “26” “3” “30” “4” “27” “5” “32” “6” “33” } } }

This tells the game to play the following objective sequence every time:

Objective ID
Description
24
Break out of the attic
21
Find keys to unlock door
26
Release stair gate
30
Blast through cabin wall
27
Weld through the kitchen door
32
Reconnect the telegraph line
33
Find car battery, power up the generator and call for help!

These seemingly random objective IDs can be obtained on any map by bringing up the developer console and doing sv_cheats 1; dump_objectives.

sv_cheats 1 dump_objectives 24: objStart – Break out of the attic. 21: ObjA – Find keys to unlock door. 23: ObjB – Break planks to proceed. 25: ObjC – Family is the answer, find the secret book. 26: ObjD – Release stair gate. 30: ObjE – Blast through cabin wall. 28: ObjF – Enter the book into the shelf. 27: ObjG – Weld through the kitchen door. 32: ObjH – Reconnect the telegraph line. 33: ObjI – Find the car battery, power up the generator and call for help! 40: ObjG2 – Proceed through the underground.

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.

SteamSolo.com