NMRiH Map Rotation and mapcycle.txt
Create and configure mapcycle.txt for NMRiH map rotation, understand changelevel vs map commands, and add custom maps to the rotation.
NMRiH Map Rotation
NMRiH uses a plain-text mapcycle.txt file to define the server's map rotation. The server advances to the next map in the file when mp_timelimit expires.
Creating mapcycle.txt
The file is not created automatically. Create it at:
nmrih/cfg/mapcycle.txt
One map name per line, no file extension, no quotes:
nmo_broadway
nmo_cabin
nms_northway
nmo_chinatown
nms_flooded
nmo_quarantine
nms_hershels_farm
nmo_junction
You can freely mix objective (nmo_) and survival (nms_) maps in the same rotation. The game mode switches automatically based on the map loaded.
Pointing server.cfg at the File
Ensure server.cfg references your mapcycle file:
mapcyclefile "mapcycle.txt"
This is the default value. If you want a separate mapcycle for a different server instance, point this cvar at a different filename.
Time Limit
The cvar that triggers map rotation:
mp_timelimit 45
Value is in minutes. After 45 minutes on a map, the server loads the next map in mapcycle.txt. Set to 0 to disable time-based rotation — maps will only change via manual commands or SourceMod vote plugins.
Map Change Commands
| Command | Behavior |
|---|---|
changelevel nmo_broadway |
Changes map; players stay connected |
map nmo_broadway |
Changes map; disconnects all players |
Use changelevel for mid-session map changes to avoid disrupting player connections. Use map when you need a completely clean state (e.g. after a server config change that requires a fresh map load).
Example mapcycle.txt — Mixed Rotation
A balanced rotation mixing objective and survival maps:
nmo_broadway
nmo_cabin
nms_northway
nmo_chinatown
nms_flooded
nmo_quarantine
nms_townsquare_v2
nmo_fema
nms_ransack
nmo_brooklyn
nms_hershels_farm
nmo_shelter
nms_isolated
Custom Maps
To add a community-made map to rotation:
- Download the
.bspfile for the map. - Place it in
nmrih/maps/:
nmrih/maps/nmo_custommap.bsp
- Add the map name to
mapcycle.txt:
nmo_custommap
- If the map has custom assets (models, materials, sounds), those files must also be placed in the appropriate subdirectories under
nmrih/.
Distributing Custom Maps to Players
Without extra setup, players download custom maps through the game at approximately 30 KB/s — slow enough that most players disconnect. To speed up downloads, configure FastDL:
// in server.cfg
sv_downloadurl "http://yourcdn.example.com/nmrih/"
sv_allowdownload 1
The FastDL server must mirror your nmrih/ directory structure so clients can fetch files via HTTP at full speed.