Skip to content

Commit b2b2bc3

Browse files
committed
United the instructions into one large section
1 parent f442f21 commit b2b2bc3

File tree

2 files changed

+77
-116
lines changed

2 files changed

+77
-116
lines changed

README.md

Lines changed: 76 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,27 @@ For setting up the Steam mod:
139139
https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
140140

141141
## Server instructions
142-
### Steam Networking
142+
143+
### Hosting from the client - Steam Networking
143144
Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
144145
as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
145146
alter the relevant configurations.
146147

147-
### Server Ops
148-
#### Dedicated Server on Linux
149-
These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
150-
1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
151-
2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
152-
3. Run SteamCMD: `steamcmd`
148+
### Dedicated server hosting
149+
150+
These instructions have been written for and tested on Debian 12 and Arch for Linux, and Windows Server 2016 and Windows 11 for Windows, but should work with a fairly up to date Linux and Windows systems as well.
151+
152+
#### Downloading server files - SteamCMD
153+
154+
> [!TIP]
155+
> Server operators should always use the SteamCMD setup, otherwise if doing quick tests or developing and have Steam installed, you can just install "Source SDK Base 2013 Dedicated Server" (appid 244310) from Steam and assuming you've already have NT;RE client setup can skip the SteamCMD steps. Any instructions referring to `<YOUR_LOCATION>/ntrebuild` will instead use: `<PATH_TO_STEAM>/common/Source SDK Base 2013 Dedicated Server`.
156+
157+
> [!WARNING]
158+
> As of the TF2-SDK update, if trying to use the dedicated server downloaded from Steam but not through the detailed SteamCMD instructions, Linux will fail to find the files necessary to startup a working server. Just follow the SteamCMD server setup instructions for now.
159+
160+
1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD)
161+
2. Choose a location you'd like to install the server to, for example on Linux: `/home/<username>/neoserver` or on Windows: `C:\NeotokyoServer\`, and create it. **This will be referred as `<YOUR_LOCATION>` in the later steps, and the forward-slash directory separation replaced with back-slash for Windows.** (Also in this case SteamCMD is also installed in this location)
162+
3. Run SteamCMD: `steamcmd`/`steamcmd.exe`
153163
4. Enter the following commands in SteamCMD (Note that you need to use an absolute path for the install dir):
154164
```
155165
force_install_dir <YOUR_LOCATION>/ognt/
@@ -166,16 +176,23 @@ These instructions have been written with a Debian 12 machine in mind, but they
166176
(wait for it to install)
167177
quit
168178
```
169-
6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Linux:
170-
```
171-
srcds_linux64
172-
srcds_run_64
173-
bin/linux64/libsteam_api.so
174-
```
175-
You may either fetch them from the Linux Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
179+
6. The distribution of the dedicated servers currently misplaced a few files:
180+
* Linux:
181+
```
182+
srcds_linux64
183+
srcds_run_64 # NOTE - Only TF2's dedicated server have this script
184+
bin/linux64/libsteam_api.so
185+
```
186+
* Windows:
187+
```
188+
srcds_win64.exe
189+
```
190+
191+
You may either fetch them from the Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
176192
Once they're fetched, place them in the `<YOUR_LOCATION>/ntrebuild` directory.
177193
178-
7. Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
194+
#### Linux-only additional instructions
195+
7. **Linux only:** Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
179196
180197
Run the following command as root:
181198
```
@@ -184,19 +201,13 @@ These instructions have been written with a Debian 12 machine in mind, but they
184201
It should now be possible to access `/usr/share/neotokyo/NeotokyoSource`.
185202
186203
This is the only command that needs root, so you can logout from root.
187-
8. Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
204+
8. **Linux only:** Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
188205
189206
(NOTE: I'm NOT sure if this is how it is on other systems other than Debian 12, so please, check first if you have `~/.steam/sdk64` before running these! If you have Desktop Steam installed, then you should have this directory, but it doesn't seem to be the case with SteamCMD, which is why we need to do this.)
190207
```
191208
ln -s ~/.steam/steam/steamcmd/linux64 ~/.steam/sdk64
192209
```
193-
9. For firewall, open the following ports:
194-
* 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
195-
* 27020 UDP
196-
* 27005 UDP
197-
* 26900 UDP
198-
10. `cd` into `<YOUR_LOCATION>/ntrebuild/bin/linux64`.
199-
11. Run these commands to make symlinks for needed files:
210+
10. **Linux only:** Change directory into `<YOUR_LOCATION>/ntrebuild/bin/linux64` then run these commands to make symlinks for needed files:
200211
```
201212
ln -s datacache_srv.so datacache.so;
202213
ln -s dedicated_srv.so dedicated.so;
@@ -212,109 +223,59 @@ These instructions have been written with a Debian 12 machine in mind, but they
212223
ln -s vphysics_srv.so vphysics.so;
213224
ln -s vscript_srv.so vscript.so;
214225
```
215-
12. `cd` up directories twice, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
216-
13. Extract the latest release of NT;RE into `<YOUR_LOCATION>/ntrebuild`, so you will have a directory `<YOUR_LOCATION>/ntrebuild/neo` with a `gameinfo.txt` inside.
226+
11. `cd` up directories twice, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
217227
218-
Now you have a dedicated server setup for NT;RE. To run it, you will need to be in the `<YOUR_LOCATION>/ntrebuild` directory and run `srcds_run` with whatever arguments. You can adapt the following command to your own liking:
219-
```
220-
./srcds_run_64 +sv_lan 0 -insecure -console -game neo +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
221-
```
222-
#### Dedicated Server on Windows
223-
These instructions were tested on Windows Server 2016 and Windows 11 machines, they will probably work in all Windows versions.
224-
1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Windows)
225-
2. Choose a location for your server to be installed into, for example, `C:\NeotokyoServer\`, and create it. (In this case SteamCMD is also installed in this location)
226-
3. Run SteamCMD: `steamcmd.exe`
227-
4. Enter the following commands in SteamCMD:
228-
```
229-
force_install_dir .\ognt\
230-
login anonymous
231-
app_update 313600 validate
232-
(wait for it to install)
233-
quit
234-
```
235-
5. Run SteamCMD again, and enter these commands:
236-
```
237-
force_install_dir .\ntrebuild\
238-
(this will be the main directory of your server)
239-
login anonymous
240-
app_update 244310 validate
241-
(wait for it to install)
242-
quit
243-
```
244-
6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Windows:
245-
```
246-
srcds_win64.exe
247-
```
248-
You may either fetch them from the Windows Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
249-
Once they're fetched, place them in the `<YOUR_LOCATION>\ntrebuild` directory.
228+
#### Extracting NT;RE
229+
Extract the latest release of NT;RE into `<YOUR_LOCATION>/ntrebuild`, so you will have a directory `<YOUR_LOCATION>/ntrebuild/neo` with a `gameinfo.txt` inside.
250230
251-
7. Extract the latest release of NT;RE into `<YOUR_LOCATION>\ntrebuild`, so you will have a directory `<YOUR_LOCATION>\ntrebuild\neo` with a `gameinfo.txt` inside.
252-
8. Allow all Inbound and Outbound TCP and UDP requests for the following ports via Windows Firewall. [See how](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/configure#create-an-inbound-port-rule)
253-
* 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
254-
* 27020 UDP
255-
* 27005 UDP
256-
* 26900 UDP
257-
9. Your server should be ready to go, launch it inside your main directory (`(...)\ntrebuild\`) with the following command: (You can alter any argument to your liking, except `-game` and `-neopath`)
258-
```
259-
srcds_win64.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
260-
```
231+
##### Developer-only: Mounting NT;RE
232+
If you're developing and just testing the server, it may be more useful to mount it to your `game/neo` from the git checkout.
261233
262-
### Testers/Devs
234+
* Windows: `mklink /J neo "<path_to_source>/game/neo"`
235+
* Linux: Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
263236
264-
> [!WARNING]
265-
> As of the TF2-SDK update, Linux will fail to find the files necessary to startup a working server. Just follow the normal dedicated server instruction for now.
237+
Or just use the directory directly when passing to the srcds command line arguments: `-game <path_to_source>/game/neo`.
238+
239+
#### Exposing the server to the wider internet
240+
241+
There are two ways on exposing your dedicated server to the wider internet: Port forwarding and Steam Networking.
266242
267-
1. To run a server, install "Source SDK Base 2013 Dedicated Server" (appid 244310).
268-
2. For firewall, open the following ports:
243+
##### Firewall - Port forwarding
244+
* Open the following ports:
269245
* 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
270246
* 27020 UDP
271247
* 27005 UDP
272248
* 26900 UDP
273-
3. The distribution of the dedicated servers currently misplaced some few files:
274-
* Linux:
275-
```
276-
srcds_linux64
277-
srcds_run_64
278-
bin/linux64/libsteam_api.so
279-
```
280-
* Windows:
281-
```
282-
srcds_win64.exe
283-
```
284-
You may either fetch them from the Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
285-
Once they're fetched, place them in the `<PATH_TO_STEAM>/common/Source SDK Base 2013 Dedicated Server` directory.
286-
4. After it installed, go to the install directory in CMD, should see:
287-
* Windows: `srcds_win64.exe`
288-
* Linux: `srcds_linux64`
289-
5. Optional: Link or copy over neo, otherwise `-game <path_to_source>/game/neo` can be used also:
290-
* Windows: `mklink /J neo "<path_to_source>/game/neo"`
291-
* Linux:
292-
* Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
293-
* Or just copy over or use the directory directly
294-
6. Linux-only: Symlink the names in `<PATH_TO_STEAM>/common/Source SDK Base 2013 Dedicated Server/bin/linux64` directory:
249+
* **Windows-only:** Allow all Inbound and Outbound TCP and UDP requests for the given ports via Windows Firewall. [See how](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/configure#create-an-inbound-port-rule)
250+
251+
##### Steam Networking
252+
253+
Since the TF2-SDK update, NT;RE gained the ability to use "Steam Networking" which can be useful in situations where:
254+
255+
* You cannot setup port forwarding or/and altering firewall settings
256+
* You don't want to expose the server's IP address and device directly
257+
258+
Just add `+sv_use_steam_networking 1` to the `srcds` command line arguments to use Steam Networking for your dedicated server.
259+
260+
#### Running the server
261+
You will need to be in the `<YOUR_LOCATION>/ntrebuild` directory and run `srcds_win64`/`srcds_run_64`/`srcds_linux64` with whatever arguments. You can adapt the following command to your own liking:
262+
263+
* Windows:
295264
```
296-
ln -s datacache_srv.so datacache.so;
297-
ln -s dedicated_srv.so dedicated.so;
298-
ln -s engine_srv.so engine.so;
299-
ln -s libtier0_srv.so libtier0.so;
300-
ln -s libvstdlib_srv.so libvstdlib.so;
301-
ln -s materialsystem_srv.so materialsystem.so;
302-
ln -s replay_srv.so replay.so;
303-
ln -s scenefilecache_srv.so scenefilecache.so;
304-
ln -s shaderapiempty_srv.so shaderapiempty.so;
305-
ln -s soundemittersystem_srv.so soundemittersystem.so;
306-
ln -s studiorender_srv.so studiorender.so;
307-
ln -s vphysics_srv.so vphysics.so;
308-
ln -s vscript_srv.so vscript.so;
265+
srcds_win64.exe -game neo -neopath "<YOUR_LOCATION>\ognt\NeotokyoSource" +sv_lan 0 -insecure +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
266+
```
267+
* Linux with `srcds_run_64` script:
268+
```
269+
./srcds_run_64 -game neo +sv_lan 0 -insecure -console +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
309270
```
310-
6. Linux-only: Before running `srcds_linux64`, some few environment variables need to setup:
311-
* `SteamEnv=1`
312-
* `LD_LIBRARY_PATH=$(<STEAM-RUNTIME-DIR>/run.sh printenv LD_LIBRARY_PATH):/home/YOUR_USER/.steam/steam/steamapps/Source SDK Base 2013 Dedicated Server/bin`
313-
* Where `<STEAM-RUNTIME-DIR>` can be found from: `$ find "$HOME" -type d -name 'steam-runtime' 2> /dev/null`
314-
* **Note, this should be the 64-bit variant**
315-
7. Run: `<srcds_win64.exe|srcds_linux64> +sv_lan 0 -insecure -game neo +map <some map> +maxplayers 24 -autoupdate -console`
316-
* Double check on the log that VAC is disabled before continuing
317-
7. In-game on Windows it'll showup in the server list, on Linux it probably won't and you'll have to use `connect` command directly (EX: `connect 192.168.1.###` for LAN server)
271+
* Linux with `srcds_linux64` directly:
272+
1. Before running `srcds_linux64`, some few environment variables need to setup:
273+
* `SteamEnv=1`
274+
* `LD_LIBRARY_PATH="<YOUR_LOCATION>/ntrebuild/bin/linux64"` - So it can find the server libraries
275+
2. Run: `srcds_linux64 -game neo +sv_lan 0 -insecure -console +map <some map> +maxplayers 24`
276+
* In-game it probably won't showup in the server list and you'll have to use `connect` command directly (EX: `connect 192.168.1.###` for LAN server)
277+
278+
If using `-insecure` and intend to playtest without VAC for debugging purposes, double check on the log that VAC is disabled before continuing.
318279
319280
### SourceMod server modification plugins
320281
[SourceMod](https://www.sourcemod.net/) plugins should generally work with NT;RE, however they have to be added to the `ShowMenu` whitelist to make the menu display properly. To do this:

src/game/shared/neo/neo_gamerules.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ enum
3737
#define TEAM_STR_NSF "NSF"
3838
#define TEAM_STR_SPEC "Spectator"
3939

40-
#define NEO_GAME_NAME "Neotokyo: Rebuild"
40+
#define NEO_GAME_NAME "Neotokyo; Rebuild"
4141

4242
#ifdef CLIENT_DLL
4343
#define CNEORules C_NEORules

0 commit comments

Comments
 (0)