No More Room in Hell

No More Room in Hell

208 ratings
No More Room in Hell Official Server Manual
By Bubka3 and 1 collaborators
The official manual for server operators! This guide covers the basics of hosting a No More Room in Hell Dedicated Server. Both listen and dedicated servers are explained in detailed.
Rate  
Favorite
Favorited
Unfavorite
Introduction
This article covers the bare minimum for server setup.

What is a "listen" server?
A listen server is run through the game's software, it's functionality that's built in. This is ideal if you need to host a temporary server for friends to join within your city or province/state. Please be aware you need at least 10-25Mbps of upload speed to properly host a NMRiH server. Your computer should also at least be a quad core with 8GB of RAM and a modern graphics card.

What is a "dedicated" server?
A dedicated server is technically a server that is available all the time, day or night, 24/7, 365. To do this it has a dedicated machine to use. Special hardware should be used to run a dedicated server the right way. Most users prefer to host these from a datacenter. However, since it's just another piece of software you could use a spare computer.
At a Glance for hosting pros
Note: This section is intended for hosting professionals. Very little details are provided. If you are a member of the general public, please scroll down.

SRCDS, the dedicated server powering NMRiH was specifically designed for multi-tenant installations, which makes offering NMRiH to your customers a breeze.
  • Operators are able to bind the server software to specific IPs and ports. This maybe set on the command line to prevent user tampering.
  • Configuration is done through files, and the server files maybe kept anywhere on the machine.
  • Operators are able to run as many as servers as they please on on the same machine -- each instance will have no conflicts with another one.
  • The server software does NOT need administrative privileges, and may be run under a limited account.
  • When the server is idle minimal system resources are used.
  • The server software is freely available through SteamPipe distribution.

Our SteamPipe distribution app ID is: 317670.

Windows
  • Windows Server 2008 or later is supported.
  • VS C+ 2013 Redistributable is recommended.

Linux
  • CentOS; Debian; and Ubuntu Server is supported (except EOL versions).
  • GLIBC_2.15 or higher is required for SRCDS.
  • 32-bit libraries are required for SteamCMD to function on a 64-bit host.
Connectivity
Note: This section details port forwarding in a basic manor. If you are’ familiar with port forwarding and networking, feel free to skip this section.

To get things started, we should talk about what these "external" and "internal" IP addresses are, and how they affect you.

You will probably have a DHCP server in your house/apartment. Most of the time this will be your router, but in some cases it could be something else. DHCP is a system that allows the router (or other device) to pass out internal IP addresses to other devices (such as your computer, laptop or tablet) that connect to it. Inside your network, all the devices talk to each other by using these internal addresses. Only devices inside your network can talk to others with these addresses - as they are reserved for use in LAN networks.

Note: You can tell a internal IP from an external one because all of them start with non-routable addresses. These special IPs are in the ranges listed below:
  • 10.0.0.0 - 10.255.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255

If your friend wanted to connect to your NMRiH server, they may see it as having the IP of 192.168.1.2. This is what you see too, but your friend will scream and kick at not being able to connect. Just like you, your friend will be using these internal addresses as well. The problem here is that they correspond to computers/devices on their network, so when they try to connect, their router will only search on their network for a device that has the 192.168.1.2 address. In order to solve this problem, this is where external ip addresses come in.

Your router is assigned a public (external) IP address by your ISP's modem so it can communicate to computers around the word. This public address is also used when someone wants to give you data (websites, game servers, etc.). You can tell your router to pass on information it gets on a port to a computer inside the network. This is done by specifying the IP of the machine on the network, and what port to send it to. The common term for this is called "Port Forwarding", as it forwards the port(s) to another computer/device. This article won't go into detail about how to do that, but a great place to start is http://www.portforward.com, which will show you how to port forward.

To play on the server you only need to have 27015 (UDP) open/forwarded. The server doesn't use TCP traffic on this port for gameplay and thus is recommended that you do not forward it.

Now remember reading before about DHCP? It will come back to haunt you sadly. Since there is a limited amount of internal IP addresses, the router will try free up internal IP address for use. It will do this by removing unused addresses. These include computers/devices that are not on. So if you happen to turn the computer off that hosts the server and another device connects, it is likely to take that address your computer had and thus breaking the port forwarding you did. In order to prevent this from happening, you will have to set a static IP for the machine (technically the machine's ethernet interface).

That should now all be clear, you may be wondering where to get your external/public IP from. There are many sites that show you it - even Google "What is my IP address". After obtaining it, send it to your friends.

Now, many will argue at why you only need 27015 (UDP) open. Why not 27015 (TCP) with all those other ports as well? The remote console (RCON) for the server runs on 27015 (TCP) and can lead to security issues and Denial of Service attacks (DoS). ''You should only allow the TCP traffic in if you know what you're doing.'' Other ports shown in other guides are not needed, and thus don't need to be opened.
Setting up a Dedicated Server (Windows)
This section will outline basic setup and administration for the latest generations of Windows. Older versions of Windows may vary.

You will require the console based steam client. You can find that here: http://media.steampowered.com/client/steamcmd_win32.zip

Extract the files to a directory other then the steam client. Now open a command prompt to that directory and run steamcmd.

SteamCMD will update the files if required each time it is executed. Simply run these commands after each update we announce:
login anonymous
force_install_dir .\nmrih_ds\
app_update 317670 validate
exit

Now you should be able to navigate to the srcds.exe file and use:
srcds.exe -console -game nmrih -maxplayers 8 +map nmo_broadway
This is the most basic command line that can be used to start a working server. More command line parameters are in another section.
Setting up a Dedicated Server (Linux)
Note: We only support the following flavors of Linux at this time: CentOS; Debian; and Ubuntu Server. Use of all other flavors is at your own discretion.

We recommend running a NMRiH server under a dedicated user in it's home directory. A list of commands to achieve this is supplied below. Your setup may differ.
adduser nmrihserver
cd /home/nmrihserver
mkdir steamcmd
cd steamcmd
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
mkdir /home/nmrihserver/server[unique specifier]

After you have selected the directory, simply run this command with the unique specifier you made in the steps before:
./steamcmd.sh +login anonymous +force_install_dir "/home/nmrihserver/serverfiles" +app_update 317670 validate +quit

64-bit Distributions
SteamCMD will require 32-bit libraries to properly run on a 64-bit host. The instructions for installing this on supported flavors are below. For all other flavors, please consult their documentation.

CentOS (64-bit only)
yum install glibc.i686 libstdc++.i686

Debian (64-bit only
dpkg --add-architecture i386
apt-get update && apt-get install lib32gcc1

Ubuntu Server (64-bit only)
apt-get install lib32gcc1

GLIBC Errors
SRCDS requires a relatively new version of GLIBC to properly function. This is commonly an issue on CentOS stemming from their long product life cycles.

./srcds_nmrih: /lib/i386-linux-gnu/i686/cmov/libm.so.6: version `GLIBC_2.15' not found
If you get this error please install a newer version of GLIBC on the host.

Now you should be able to navigate to the srcds_run file and use:
./srcds_run -game nmrih -maxplayers 8 +map nmo_broadway
This is the most basic command line that can be used to start a working server. More command line parameters are in another section.
Other Links & Resources
Server Announcements & Support
All server announcements & support is handled on an exclusive server group:
http://steamcommunity.com/groups/nmrihservers

Please "Join" this group to directly receive server-related announcements in your steam feeds.

< >
12 Comments
lalds321 7 hours ago 
plz rus
dudeimlonely May 19 @ 1:40pm 
I JUST WANT TOO UPDATE NAT
jUG05 May 6 @ 8:32pm 
please someone fucking help me I can tfucking do this please I jsut want to play wit my fucking freind
noahwillbee May 1 @ 4:52pm 
how do you set up a server for inf. ammo and such? (with cheats)
Untimately Apr 14 @ 6:08am 
согласен с комментом ниже, ничего на англ не понятно
UnderKun Apr 3 @ 1:19pm 
Можно кратко, и на русском?
BlickViro Mar 31 @ 11:54am 
What is this NAT Warning? My friend cant join through Hamachi because somehow we have NAT on our routers and if he tries joining through the game the server doesnt even show up for him. Can someone explain?
Ţђe Қĭll $ţeaļeŕ Mar 29 @ 6:30am 
i agree
CD意识. Mar 29 @ 2:12am 
make play online simple like l4d2 will let the game be better
Han_E_T Mar 18 @ 2:49pm 
why cant joining a friends game just be simple...