We are currently updating the articles for 1.09.0. Translated articles will need to be updated by their respective authors.
Dedicated Server Setup
Contents
Overview
This article covers the bare minimum for server setup. Additional guides are recommmended!
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.
Jump to the article: Listen_Server_Setup
What is a "dedicated" server?
A dedicated server is technicaly a server that is availiable 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. However, since it's just another piece of software you could use a spare computer.
Jump to the article: Dedicated_Server_Setup
Connectivity
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.
If your friend wanted to connect to your NMRiH server, they may see it having the ip 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
Dedicated servers are preferred if you want to ensure you get the best performance and flexibility. Most of the time, it's installed on a separate machine/computer where both it and the server are made available 24/7 (hence the term dedicated).
Windows
This section will outline setup and administration for the latest generation of Windows. Versions Server 2003, XP and lesser will not directly follow these steps.
You will require the core SteamCMD files. You can find them 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 if required each time it exicuted. Now, login with anonymous to download the base 2013 multiplayer source sdk files.
- login anonymous
- force_install_dir .\nmrih_ds\
- app_update 244310
Now for the key NMRiH files. For the duration of the closed beta, you require a login that is authorized to the NMRiH files.
- login dark_st3alth_rox_my_sox
- force_install_dir .\nmrih_ds\
- app_update 224260
Now you should be able to navigate to the srcds.exe file and use: srcds.exe -console -game nmrih +map nms_deadend
Linux
This section will outline setup and administration for common distros of Linux. Additional dependencies maybe required on your system. Consult your distro's documentation/support if you are unsure.
At the terminal use: wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
Extract the file with tar, tar -xvzf steamcmd_linux.tar.gz
Navigate to the directory, and use ./steamcmd.sh to run the shell script.
SteamCMD will update if required each time it run. Now, login with anonymous to download the base 2013 multiplayer source sdk files.
- login anonymous
- force_install_dir ./nmrih_ds/
- app_update 244310
Now for the key NMRiH files. Durring the closed beta, you were required to login to an account that was authorized to the NMRiH files. This may still be the case, but no reports have been given that this is still true.
- login dark_st3alth_rox_my_sox
- force_install_dir ./nmrih_ds/
- app_update 224260
Now you should be able to navigate to the srcds_run file (./nmrih_ds/srcds_run) and use: ./srcds_run -console -game nmrih +map nms_deadend
ReactOS
While this operating system is in alpha stage, some steps maybe affected as the OS goes through gradual builds.
You will require the core SteamCMD files. You can find them 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 if required each time it exicuted. Now, login with anonymous to download the base 2013 multiplayer source sdk files.
- login anonymous
- force_install_dir .\nmrih_ds\
- app_update 244310
Now for the key NMRiH files. For the duration of the closed beta, you require a login that is authorized to the NMRiH files.
- login dark_st3alth_rox_my_sox
- force_install_dir .\nmrih_ds\
- app_update 224260
Now you should be able to navigate to the srcds.exe file and use: srcds.exe -console -game nmrih +map nms_deadend
Server Commands
You can use these commands on listen servers as well as dedicated servers. Enter the command/cvar you want to use, and the value (if it requires one).
sv_votekick_timer 10
While on a listen server, open the developer console with the ~ key.
Command/Cvar | Description | Example |
---|---|---|
changelevel | Peacefuly change the map to another, and tell clients it's changing. | changelevel nms_northway |
map | Force the server to change the map to another. Used to reload configuaration as it kicks all clients (Server Shutting Down). | map nms_northway |
kick | Kick a player right away. | kick dark_st3alth |