No More Room in Hell

No More Room in Hell

Not enough ratings
NMRIH Full Server Guide | No Port forward
By Ixertifyz
This Guide will teach you how to set up a public nmrih server, so your friends can join and play with you without Port-Forwarding. It will also explain how to make achievements grinding easier (We got this) by the use of server config files as well as how to add plugins to the Server and on how to set up custom workshop maps.
   
Award
Favorite
Favorited
Unfavorite
Requirements
First step
To get the whole server running with all its extras and additions you need to have these things installed:
  • Python3.x for the custom maps: download[www.python.org]
  • Steamcmd to create a gameserver, which is obviously what we want to do: direct download
  • Everything to get Workshop maps: download[www.voidtools.com]
If you have the ability to Port-Forward you don't have to get the following 2 programms. nmrih port forwarding here[www.nomoreroominhell.com] You can check up if you are able to do that by reading this[portforward.com] but if you struggle setting it up and have no real experience, the other 2 programms will make your life easier.
  • ngrok for the custom maps publicly: download[ngrok.com]
    for the usage of ngrok services a free account is required
  • localtonet for the gameserver itself publicly: download[localtonet.com]
    for the usage of the localtonet services a free account is required



NMRIH Developer Console
Enabling access to the Console

We now have to make us beeing able into using the Console for the game, since its the only way to connect to the Server as well as Performing several actions you have to do later on. If you already know how to enable it or have it already on you can skip this chapter.

1. To enable the Console go into your steam library and search the game, from here you have to rightclick it and click on "Properties". Under the "General" Tab you see as a last option "Launchoptions" in there you have to type in:
-console

2. When ingame head to the Settings and the Keyboard Options, scroll down to the bottom and set a key for toggling the console. After that is done click on "Advanced" and enable the toggleable Console.


3. If you don't see it yet a restart will help.

4. To join your Server later you will use the command: assuming you havn't set a Password for it.

Alternatives
If you don't want to do all that
You can use other methods but they are less reliable but there you go
  • Hamachi: With that you can create a virtual private network that makes all members of your hamachi network into thinking you are in one and the same local network. By that you can use the server which we create later in this guide without the steps of localtonet and ngrok the downside is a limited 5 player network if i remember correctly, which makes the Achievement "We got this" unobtainable Hamachi[www.vpn.net]

  • If you are not interested in creating a whole server go straight up to the achievement maps that you can also use without a server, by your own, jump to the Achievement Tab and get what you need
Creating the NMRIH Server
Now we will get straight into it and create our own dedicated server.

1. Decide where you want to store your server it will take around 10 Gb so choose a location that has enough space. In that location you create a folder called nmrihserver.
2. Extract the Steamcmd.zip file in that location and run it, after it processed the setup you might have to restart the steamcmd programm.
3. Now we download the NMRIH Dedicated Server by typing the following commands:
force_install_dir .\nmrih_ds\ login anonymous app_update 317670
4. After the download process is done you have to download Sourcemod[www.sourcemod.net] and Metamod[www.sourcemm.net], the best thing to do is following this installation guide[wiki.alliedmods.net]

If all that succeeded we can go ahead and make it able to be reachable for the public, which means by your friends because the basic server is setup.
Starting the Server for the public
Setup
Now we want to make the server reachable for out friends and not stay locally.

1. The first thing you have to do is getting the downloaded localtonet zip file and extract it in the
root folder of our NMRIH Server which is directly inside of /nmrih_ds in which we have the game installed.
2. The next thing is to do the same with the ngrok zip file.
3. At this point we need to have out API Keys ready which you will get from localtonet as well as ngrok when you have created an account for these services.

Setting up localtonet
1. Go to this website[localtonet.com] and choose under the point "My Tunnels" on the left "TCP-UDP". Now you have to choose as "Protocol Type" the protocol "UDP"
and choose a Server that is closest to your location. In the "Ip" field you have to put in the local ip address of the machine that is hosting the NMRIH Server. On Windows you do that by pressing the Windows button and typing "CMD" followed by the command "ipconfig" then you will see your local ip adress under your used Network Adapter.
For the Port type in: 27015

Starting the Server

2. To start the NMRIH Server you have to go into the File Explorer and navigate it into your installation path. In our case that will be nmrihserver\, in that you can see folders such as bin and nmrih. Now what you want to do is open a Terminal window that is working in that Folder, you do that by pressing on the address bar which is generally then path and then deleting the text and replace it by the word "cmd".
Now you will see a Terminal window that says something like: C:\nmrihserver\nmrih_ds. Type the following line in it to start the server.
.\srcds.exe -game nmrih
.The server window will pop up and you can set basic things up.

3. Now you start the localtonet.exe file and provide it the api key (check the website for more informations). After it loaded up successfully it will say something like:
UDP: de1.localtonet.com:xxxxx ---> 192.x.x.x
this means the public address from localtonet forwards all its connections to your local NMRIH Server IP address

4. You can now try out to join by typing the full localtonet.com address with the port into your console. If you don't know how that works check out the NMRIH Developer Console Chapter.
This is the IP you give your friends to join you.

Now we get a simple NMRIH Server working that can be accessed from the outside.
Plugins
If you don't want any Plugins on the server you can skip this chapter, altrought i recommend it so you and your friends can get way easier achievements.

You can add plugins you found from the Internet, a great place that offers some is Sourcemod[www.sourcemod.net] from which i also got some that i use.

1. Assuming you want to have a plugin called Infinity[forums.alliedmods.net] that makes you have unlimited ammo and stamina which is really usefull. Download the plugin file which will be either uncompiled (.sp file) or a finished plugin (.smx file). If it requires you to do something else you have to follow the installation tutorial of the plugin.

2. You will move the plugin into the directory
nmrihserver\nmrih\addons\sourcemod\plugins

If you don't have this folder "plugins" you either failed the installation of Sourcemod or havn't done it. For more informations check the chapter NMRIH Server Creation, point 4.

If you have a currently running server while adding the plugin to the folder it will most likely not work. It will work after you restarted or changed the level or totally restarted the server.
Custom / Workshop maps
To Host Custom Maps you have to download them from the Steam workshop or if you can get them from somewhere else its also fine.

In this example we have nmrih installed on our pc.

Get a map

1. After you found a map that you want to have on your server you subscribe to it in the workshop

Now we need to somehow get the .bsp map file (optionally if available also the .nav and .nmo). Since steam decided to label all the workshop related folders with numbers we need a method that doesn't make us search for the correct one for hours.

2. Open up the programm Everything which is listed in the Requirements chapter. In there you want to input the map name in the search bar. After you wait a bit since its scanning your whole pc for all files it will give you the matching files with that name.


If you can't find the workshop folder try a different name since workshop map name and the file name aren't always 100% the same. But otherwise i can't help you :( try searching for it online then.

Installing the map

3. Rightclicking on the files name and open it in Explorer from there you can copy all the workshop files and put it in the server directory:
\nmrih_ds\nmrih\maps

4. Go to
nmrih_ds\nmrih\cfg
and open the file mapcycle_default.txt. In there you want to type the exact workshop map file name, so that players or you can ingame "call vote" and see the custom map listed and vote for playing on it.


As an example we have the map nms_hell.bsp added into the maps folder and therefore type: nms_hell somewhere in a new line in the mapcycle_default.txt


Faster Map downloads

When adding a map to \nmrih\maps a player that joins will have to download a map that is currently active from that directory. This Process is super slow and could take around 3 minutes which is absolutely absurd, therefore i will now introduce you into a method that makes the download time go down to like 5 seconds.

1. Extract the downloaded ngrok.zip file into
nmrihserver\nmrih_ds

Assuming that you already created a account and gathered your API Key

2. Here we will use our installed python3. Head to the folder
nmrihserver\nmrih_ds\nmrih\maps
. Again, replace the addressbar with "cmd" so that a Terminal window opens up. To verify that python installed correctly type "python3" in it, if it now responses with the version informations and not an error you did everything correct. Close the Terminal and open a new one or type in
exit()

3. Type the following in the Terminal:
python3 -m http.server 80


This will create a webservice on the Port 80 so everyone that opens it can access all files within \maps. Now again we have to make it accessable from the outside

4. Open ngrok.exe, assuming you have it setup correctly

5. Type in it
ngrok.exe http 80

This will show up:


6. Copy the long link it says under "Forwarding", the one that ends with .ngrok.io
Note that you can't Strg+C to copy from a Terminal, don't do it it will kill the process

Copy highlighted text with Strg+Shift+C

7. Now head to
nmrihserver\nmrih_ds\nmrih\cfg
and open server.cfg. Search the line in what it says sv_downloadurl and put the copied link in the bracets. If the sv_downloadurl starts with a "//" delete those.

Note that every time you close/start the ngrok.exe Terminal you will get a new url that you have to apply in the server.cfg file !!!!!
Achievements
Since we have Sourcemod installed we can use several server variables that would normally require sv_cheats 1 to be enabled but now we don't and can still use them. You can use it to setup a server in that its super easy to get achievements like "We got this" or others like "Bare Knuckle" and several Time related ones.

We got this

Changes that will make it easier

  • No AFK Kick
  • No Safe Zone Damage
  • Zombies are 1 Shot (1 hp)
  • Zombie Count Wave skip at 20000 or less zombies
  • Zombies deal no damage
  • No Runners and Kids
  • No bleed, infections


1. Download the following server config file[github.com] and map cycle file[github.com]

2. Put the .cfg into
nmrihserver\nmrih_ds\cfg
and the .txt into
nmrihserver\nmrih_ds\nmrih\cfg

If you want to start the grind for the achievement

1. Load config file by typing
exec WeGotThis.cfg

2. Load the mapcycle file by typing
mapcyclefile WeGotThis.txt

Restart Server or Change the Map for changes to apply !!!!

How to get the achievement as fast as possible ???

Since The Wave skips when 20000 zombies or less are alive you have to only kill 1 Zombie each wave and then wait for it to skip, you can hear that the wave will skip by a "beep" sound. Tell this your friends because when sb. keeps killing zombies the wave won't skip since the skip cooldown refreshes.

How to get other Achievements

You can get other achievement easier, you can always change the config file by yourself and remove for eg. the sm_cvar sv_wave_skip_count and set it back to 5, so you can grind weapon kills. I Introduced in the beginning a plugin for infinite stamina, with that you can do Achievements like "Finish Broadway in under 5.5 Minutes".

I don't want to grind so long for achievements

For achievements like get x Kills with this Weapon or also The Manhattan Project for which you have to kill 1.6 million zombies i have something for you :)

  • Easy Weapon kills and The Manhattan Project: download map[github.com]

If you want to play on it with friends remeber updating your mapcycle.txt file or type in the Server Console changelevel aachievementmapp.
Fully Starting it
Start with all extras

Now after you got everything set up and you want to start the server, i am going to list on what you have to do now

With workshop maps

  • Start the python3 http server by opening a Terminal in the directory \nmrih\maps and type in:
    python3 -m http.server 80
  • Start up ngrok.exe followed by:
    ngrok.exe http 80
  • Open manually the server.cfg file or the one you use and replace sv_downloadurl with the ngrok link
  • Launch the srcds.exe file by opening a Terminal in the directory and type in it
    .\srcds.exe -game nmrih
  • Run in the server console
    exec server.cfg
    or whatever config file you want to load
  • Optionally change the mapcycle file with:
    mapcyclefile <filename>.txt
  • Start the localtonet.exe like a normal programm by double clicking it

    The link you get now from localtonet is the one you need to give to your friends. Use it with the connect command ingame in the console

Without workshop maps

  • Launch the srcds.exe file by opening a Terminal in the directory and type in it
    .\srcds.exe -game nmrih
  • Run in the server console
    exec server.cfg
    or whatever config file you want to load
  • Optionally change the mapcycle file with:
    mapcyclefile <filename>.txt
  • Start the localtonet.exe like a normal programm by double clicking it

The link you get now from localtonet is the one you need to give to your friends. Use it with the connect command ingame in the console
15 Comments
Ixertifyz  [author] Jul 6, 2023 @ 3:32pm 
playit.gg is best way now, i think at the time of me writing this playit.gg didnt even existed or was very new
Senjay Apr 7, 2023 @ 11:57am 
just use playit.gg
localtonet has bandwidth limit but playit doesn't
󠀡 Apr 2, 2023 @ 7:06am 
can you share more plugins ? i don't know how use the web, have so many l4d2 and csgo plugins
Sociedad Mar 24, 2023 @ 4:16pm 
Nice guide,i wanted to beware people of Firewall,i dont know if i choose Public or Private only and that brought me problems of the server not showing up on the Srv Browser
Ixertifyz  [author] Feb 10, 2023 @ 12:54pm 
thats weird, i sadly cant help you with that since i never encountered that issue, you gotta google around :pttrpimp:
supra07 Feb 10, 2023 @ 11:37am 
Nobody can hear each other, for example you're with someone on the server and that person is shooting, you can't hear
Ixertifyz  [author] Feb 10, 2023 @ 10:51am 
what do you mean with the sounds
supra07 Feb 10, 2023 @ 10:31am 
Hey man, the sounds on my server does not work, you know how to fix that?
supra07 Feb 6, 2023 @ 10:00am 
ok thanks
Ixertifyz  [author] Feb 6, 2023 @ 8:10am 
server browser also didnt worked for me i cant help you with that i tried everything and it didnt got listed. the cfg folder is in nmrih_ds/nmrih/cfg