Repository: NeotokyoRebuild/neo
Pull request #959: Update server instructions for 64-bits NT;RE
Author: login: nullsystem
Labels: name: Documentation
description: Improvements or additions to documentation
Created: 2025-03-01T14:29:05Z | Merged: 2025-03-16T18:29:15Z

<!--
Before submitting a pull request, ensure the following has been done:
* The branch has been tested with the latest master changes rebased in
* Fill in the descriptions, link the issues, and put in tags appropriate to the PR
* Update any documentation and comments if needed
* For WIP/Work in Progress PRs, use the Draft PR feature
-->

## Description
<!--
Put in description here...
-->
* Updated instructions for 64-bits NT;RE
* Note about missing files from dedicated servers
* Added section about Steam networking
* Website release note should be updated to say that Linux dedicated actually works after all
* Also removed `-multilib` package instructions for Linux

## Toolchain
<!--
If this is documentation only update, just remove the whole Toolchain section
NOTE: It's not needed for all to be filled in, just keep the toolchain/OS lines this PR been worked on
-->
- Windows MSVC VS2022
- Linux GCC Distro Native [Specify distro + GCC version]

## Linked Issues
<!--
Applying issues here will auto-link the PR to its related issues if starting with "resolves".
If there's a related PR but don't want to resolve/close the issue, mark them with "related".

See: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword
-->
* fixes #931



Linked issue #931: [2025-TF2-SDK Update] Update server setup documentation (for 64-bits Source-1)
Since the update moved from 32-bits to 64-bits and have lots of fixes, the server setup documentation for both Windows and Linux need to be updated. Likewise I think the jank workarounds can be omitted now in the instructions, but also you'll need to bare in mind the extra `x64` and `linux64` directories for libraries/bins as well as `_x64` and `_linux64` postfixed executables.
Linked issue comments: user: login: nullsystem
created_at: 2025-02-23T17:01:39Z
body: https://github.com/ValveSoftware/source-sdk-2013/issues/713
`srcds_linux64` and `srcds_win64.exe` has been misplaced in the client depot instead.
`bin/linux64/libsteam_api.so` also missing.
author_association: COLLABORATOR
user: login: nullsystem
created_at: 2025-03-01T14:19:36Z
body: NOTE: Dedicated servers on Linux actually works without code change, just need to update instructions properly. Will also update the 12.0-prealpha release note to reflect that.
author_association: COLLABORATOR

Diff:
diff --git a/README.md b/README.md
index 9f63ea58c..c3c3b1c48 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ To see the Table of Contents, please use the "Outline" feature on GitHub by clic
 * Linux: [Steam Runtime 3 "Sniper"](https://gitlab.steamos.cloud/steamrt/sniper/sdk)
     * GCC/G++ 10 toolchain
     * Compiled in the sniper's Docker/Podman/Toolbx container, schroot, or systemd-nspawn
-    * This can also work on native (as long as it supports C++20) even with newer GCC/G++, mostly for development setup. At least install GCC and G++ multilib from your distro's package manager.
+    * This can also work on native (as long as it supports C++20) even with newer GCC/G++, mostly for development setup. At least install GCC and G++ from your distro's package manager.
     * `mimalloc` - To run with a debugger
 * Both:
     * [CMake](https://cmake.org/)
@@ -46,7 +46,7 @@ Make sure the "x64 Native Tools Command Prompt for VS2022" is used instead of th
 
 ##### Linux prerequisite - Steam Runtime 3 "Sniper" Container
 Your system must include the following packages:
-`gcc-multilib g++-multilib cmake ninja-build docker-ce docker-ce-cli containerd.io apt-transport-https ca-certificates curl gnupg gnupg-utils cmake build-essential`
+`gcc g++ cmake ninja-build docker-ce docker-ce-cli containerd.io apt-transport-https ca-certificates curl gnupg gnupg-utils cmake build-essential`
 
 **Note:** Depending on your operating system, the package names may vary, please consult google or your package manager for correct package names. The listed are for debian `apt`. (Includes Ubuntu, Linux Mint, etc)
 
@@ -139,12 +139,27 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
-### Server Ops
-#### Dedicated Server on Linux
-These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
-2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
-3. Run SteamCMD: `steamcmd`
+
+### Hosting from the client - Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
+as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
+alter the relevant configurations.
+
+### Dedicated server hosting
+
+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.
+
+#### Downloading server files - SteamCMD
+
+> [!TIP]
+> 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`.
+
+> [!WARNING]
+> 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.
+
+1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD)
+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 instructions. Also for Windows, replace `/` with `\` as directories separators.**
+3. Run SteamCMD: `steamcmd`/`steamcmd.exe`
 4. Enter the following commands in SteamCMD (Note that you need to use an absolute path for the install dir):
     ```
     force_install_dir <YOUR_LOCATION>/ognt/
@@ -161,7 +176,23 @@ These instructions have been written with a Debian 12 machine in mind, but they
     (wait for it to install)
     quit
     ```
-6. Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
+6. The distribution of the dedicated servers currently misplaced a few files:
+    * Linux:
+      ```
+      srcds_linux64
+      srcds_run_64 # NOTE - Only TF2's dedicated server have this script
+      bin/linux64/libsteam_api.so
+      ```
+    * Windows:
+      ```
+      srcds_win64.exe
+      ```
+
+    You may either fetch them from the Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
+    Once they're fetched, place them in the `<YOUR_LOCATION>/ntrebuild` directory.
+
+#### Linux-only additional instructions
+1. **Linux only:** Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
 
     Run the following command as root:
     ```
@@ -170,107 +201,88 @@ These instructions have been written with a Debian 12 machine in mind, but they
     It should now be possible to access `/usr/share/neotokyo/NeotokyoSource`.
    
     This is the only command that needs root, so you can logout from root.
-8. Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
+2. **Linux only:** Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
 
-    (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/sdk32` 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.)
+    (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.)
     ```
-    ln -s ~/.steam/steam/steamcmd/linux32 ~/.steam/sdk32
+    ln -s ~/.steam/steam/steamcmd/linux64 ~/.steam/sdk64
+    ```
+3. **Linux only:** Change directory into `<YOUR_LOCATION>/ntrebuild/bin/linux64` then run these commands to make symlinks for needed files:
+    ```
+    ln -s datacache_srv.so datacache.so;
+    ln -s dedicated_srv.so dedicated.so;
+    ln -s engine_srv.so engine.so;
+    ln -s libtier0_srv.so libtier0.so;
+    ln -s libvstdlib_srv.so libvstdlib.so;
+    ln -s materialsystem_srv.so materialsystem.so;
+    ln -s replay_srv.so replay.so;
+    ln -s scenefilecache_srv.so scenefilecache.so;
+    ln -s shaderapiempty_srv.so shaderapiempty.so;
+    ln -s soundemittersystem_srv.so soundemittersystem.so;
+    ln -s studiorender_srv.so studiorender.so;
+    ln -s vphysics_srv.so vphysics.so;
+    ln -s vscript_srv.so vscript.so;
     ```
-9. For firewall, open the following ports:
+4. `cd` up directories twice, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
+
+#### Extracting NT;RE
+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.
+
+##### Developer-only: Mounting NT;RE
+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.
+
+* Windows: `mklink /J neo "<path_to_source>/game/neo"`
+* Linux: Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
+
+Or just use the directory directly when passing to the srcds command line arguments: `-game <path_to_source>/game/neo`.
+
+#### Exposing the server to the wider internet
+
+There are two ways on exposing your dedicated server to the wider internet: Steam Networking and Port forwarding.
+Steam Networking is recommended as it doesn't expose your server directly, however if you need a persistent IP address,
+OK with showing public IP address and ports, or/and don't want to route through Valve's servers, then port forwarding is still available.
+
+##### Steam Networking
+
+Since the TF2-SDK update, NT;RE gained the ability to use "Steam Networking" which can be useful in situations where:
+
+* You cannot setup port forwarding or/and altering firewall settings
+* You don't want to expose the server's IP address and device directly
+
+Just add `+sv_use_steam_networking 1` to the `srcds` command line arguments to use Steam Networking for your dedicated server.
+
+##### Firewall - Port forwarding
+* Open the following ports:
     * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
     * 27020 UDP
     * 27005 UDP
     * 26900 UDP
-10. `cd` into `<YOUR_LOCATION>/ntrebuild/bin`.
-11. Run these commands to make symlinks for needed files:
-    ```
-    ln -s vphysics_srv.so vphysics.so;
-    ln -s studiorender_srv.so studiorender.so;
-    ln -s soundemittersystem_srv.so soundemittersystem.so;
-    ln -s shaderapiempty_srv.so shaderapiempty.so;
-    ln -s scenefilecache_srv.so scenefilecache.so;
-    ln -s replay_srv.so replay.so;
-    ln -s materialsystem_srv.so materialsystem.so;
-    ```
-12. Run the following command to rename a file that is incompatible with NT;RE:
-     ```
-     mv libstdc++.so.6 libstdc++.so.6.bak
-     ```
-13. `cd` up a folder, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
-14. 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.
-
-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:
-```
-./srcds_run +sv_lan 0 -insecure -console -game neo +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
-```
-#### Dedicated Server on Windows
-These instructions were tested on Windows Server 2016 and Windows 11 machines, they will probably work in all Windows versions.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Windows)
-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)
-3. Run SteamCMD: `steamcmd.exe`
-4. Enter the following commands in SteamCMD:
+* **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)
+
+#### Running the server
+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:
+
+* Windows:
     ```
-    force_install_dir .\ognt\
-    login anonymous
-    app_update 313600 validate
-    (wait for it to install)
-    quit
+    srcds_win64.exe -game neo -neopath "<YOUR_LOCATION>\ognt\NeotokyoSource" +sv_lan 0 -insecure +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
     ```
-5. Run SteamCMD again, and enter these commands:
+* Linux with `srcds_run_64` script:
     ```
-    force_install_dir .\ntrebuild\
-    (this will be the main directory of your server)
-    login anonymous
-    app_update 244310 validate
-    (wait for it to install)
-    quit
+    ./srcds_run_64 -game neo +sv_lan 0 -insecure -console +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
     ```
-6. 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.
-7. 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)
-    * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
-    * 27020 UDP
-    * 27005 UDP
-    * 26900 UDP
-8. 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`) 
-```
-srcds.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
-```
+* Linux with `srcds_linux64` directly:
+    1. Before running `srcds_linux64`, some few environment variables need to setup:
+        * `SteamEnv=1`
+        * `LD_LIBRARY_PATH="<YOUR_LOCATION>/ntrebuild/bin/linux64"` - So it can find the server libraries
+    2. Run: `srcds_linux64 -game neo +sv_lan 0 -insecure -console +map <some map> +maxplayers 24`
+        * 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)
 
-### Testers/Devs
-1. To run a server, install "Source SDK Base 2013 Dedicated Server" (appid 244310).
-2. For firewall, open the following ports:
-    * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
-    * 27020 UDP
-    * 27005 UDP
-    * 26900 UDP
-3. After it installed, go to the install directory in CMD, should see:
-    * Windows: `srcds.exe`
-    * Linux: `srcds_linux`
-        * You'll also see `srcds_run` but that doesn't work properly with NT;RE so ignore it
-4. Optional: Link or copy over neo, otherwise `-game <path_to_source>/game/neo` can be used also:
-    * Windows: `mklink /J neo "<path_to_source>/game/neo"`
-    * Linux:
-        * Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
-        * Or just copy over or use the directory directly
-5. Linux-only: Symlink the names in `<PATH_TO_STEAM>/common/Source SDK Base 2013 Dedicated Server/bin` directory:
-```
-ln -s vphysics_srv.so vphysics.so;
-ln -s studiorender_srv.so studiorender.so;
-ln -s soundemittersystem_srv.so soundemittersystem.so;
-ln -s shaderapiempty_srv.so shaderapiempty.so;
-ln -s scenefilecache_srv.so scenefilecache.so;
-ln -s replay_srv.so replay.so;
-ln -s materialsystem_srv.so materialsystem.so;
-```
-6. Linux-only: Before running `srcds_linux`, some few environment variables need to setup:
-    * `SteamEnv=1`
-    * `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`
-        * Where `<STEAM-RUNTIME-DIR>` can be found from: `$ find "$HOME" -type d -name 'steam-runtime' 2> /dev/null`
-7. Run: `<srcds.exe|srcds_linux> +sv_lan 0 -insecure -game neo +map <some map> +maxplayers 24 -autoupdate -console`
-    * Double check on the log that VAC is disabled before continuing
-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)
+If using `-insecure` and intend to playtest without VAC for debugging purposes, double check on the log that VAC is disabled before continuing.
 
 ### SourceMod server modification plugins
+> [!WARNING]
+> As of the TF2-SDK update, sourcemod is broken until metamod patches and updated for the 64-bit SDK update
+
 [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:
 1. Go to directory `addons/sourcemod/gamedata/core.games` where you should find `common.games.txt`
 2. Create the directory `custom` and make a copy of `common.games.txt` into it
diff --git a/game/neo/steam.inf b/game/neo/steam.inf
index 3e5da25aa..41b79c838 100644
--- a/game/neo/steam.inf
+++ b/game/neo/steam.inf
@@ -1,6 +1,6 @@
 PatchVersion=2000
 ClientVersion=2000
 ServerVersion=2000
-ProductName=mod_hl2mp
+ProductName=neo
 appID=243750
 ServerAppID=244310
diff --git a/src/game/shared/neo/neo_gamerules.h b/src/game/shared/neo/neo_gamerules.h
index 5c8a38488..93a85ed3c 100644
--- a/src/game/shared/neo/neo_gamerules.h
+++ b/src/game/shared/neo/neo_gamerules.h
@@ -37,7 +37,7 @@ enum
 #define TEAM_STR_NSF "NSF"
 #define TEAM_STR_SPEC "Spectator"
 
-#define NEO_GAME_NAME "Neotokyo: Revamp"
+#define NEO_GAME_NAME "Neotokyo; Rebuild"
 
 #ifdef CLIENT_DLL
 	#define CNEORules C_NEORules


Reviews:
user: login: Rainyan
state: DISMISSED
author_association: MEMBER
submitted_at: 2025-03-01T15:57:45Z
user: login: Rainyan
state: DISMISSED
author_association: MEMBER
submitted_at: 2025-03-01T16:04:35Z
user: login: blaberry
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T20:57:25Z
user: login: blaberry
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T20:57:52Z
user: login: blaberry
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T20:58:19Z
user: login: blaberry
body: LGTM, left some nits
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T21:01:09Z
user: login: blaberry
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T21:02:28Z
user: login: nullsystem
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T21:53:39Z
user: login: nullsystem
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-01T21:56:20Z
user: login: brysondev
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T03:36:32Z
user: login: brysondev
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T04:53:05Z
user: login: brysondev
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T05:21:36Z
user: login: brysondev
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T05:22:32Z
user: login: nullsystem
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-02T12:41:54Z
user: login: nullsystem
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-02T12:42:59Z
user: login: brysondev
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T13:27:53Z
user: login: AdamTadeusz
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-16T13:25:55Z

Review comments:
diff_hunk: @@ -139,6 +139,11 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
+### Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE have Steam Networking supporting, meaning hosting an online server is
path: README.md
user: login: Rainyan
body: Language nit: `NT;RE have Steam Networking supporting` -> `NT;RE has Steam Networking support`
created_at: 2025-03-01T15:26:12Z
author_association: MEMBER
diff_hunk: @@ -225,48 +241,76 @@ These instructions were tested on Windows Server 2016 and Windows 11 machines, t
     (wait for it to install)
     quit
     ```
-6. 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.
-7. 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)
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Windows:
+    ```
+    srcds_win64.exe
+    ```
+    You may either fetch them from the Windows Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
+    Once they're fetched, place them in the `<YOUR_LOCATION>\ntrebuild` directory.
+
+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.
+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)
     * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
     * 27020 UDP
     * 27005 UDP
     * 26900 UDP
-8. 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`) 
+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`) 
 ```
-srcds.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
+srcds_win64.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
 ```
 
 ### Testers/Devs
+**NOTE: 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.**
+
path: README.md
user: login: Rainyan
body: Could use the [alerts syntax](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts) for this note, not that important though
created_at: 2025-03-01T15:35:07Z
author_association: MEMBER
diff_hunk: @@ -139,6 +139,11 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
+### Steam Networking
path: README.md
user: login: blaberry
body: Have we tested it successfully? Otherwise we shouldn't recommend this yet imo
created_at: 2025-03-01T20:57:25Z
author_association: COLLABORATOR
diff_hunk: @@ -161,7 +166,16 @@ These instructions have been written with a Debian 12 machine in mind, but they
     (wait for it to install)
     quit
     ```
-6. Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Linux:
path: README.md
user: login: blaberry
body: some/a few?
created_at: 2025-03-01T20:57:52Z
author_association: COLLABORATOR
diff_hunk: @@ -161,7 +166,16 @@ These instructions have been written with a Debian 12 machine in mind, but they
     (wait for it to install)
     quit
     ```
-6. Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Linux:
+    ```
+    srcds_linux64
+    srcds_run_64
+    bin/linux64/libsteam_api.so
+    ```
+    You may either fetch them from the Linux Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
+    Once they're fetched, place them in the `<YOUR_LOCATION>/ntrebuild` directory.
path: README.md
user: login: blaberry
body: neo/.. ?
created_at: 2025-03-01T20:58:19Z
author_association: COLLABORATOR
diff_hunk: @@ -225,48 +241,78 @@ These instructions were tested on Windows Server 2016 and Windows 11 machines, t
     (wait for it to install)
     quit
     ```
-6. 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.
-7. 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)
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Windows:
+    ```
path: README.md
user: login: blaberry
body: a lotta space, I don't mind tbh but you might :D
created_at: 2025-03-01T20:59:00Z
author_association: COLLABORATOR
diff_hunk: @@ -225,48 +241,78 @@ These instructions were tested on Windows Server 2016 and Windows 11 machines, t
     (wait for it to install)
     quit
     ```
-6. 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.
-7. 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)
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Windows:
+    ```
+    srcds_win64.exe
+    ```
+    You may either fetch them from the Windows Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
+    Once they're fetched, place them in the `<YOUR_LOCATION>\ntrebuild` directory.
+
+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.
+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)
     * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
     * 27020 UDP
     * 27005 UDP
     * 26900 UDP
-8. 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`) 
+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`) 
 ```
-srcds.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
+srcds_win64.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
path: README.md
user: login: blaberry
body: maybe we should template this?
created_at: 2025-03-01T21:00:16Z
author_association: COLLABORATOR
diff_hunk: @@ -37,7 +37,7 @@ enum
 #define TEAM_STR_NSF "NSF"
 #define TEAM_STR_SPEC "Spectator"
 
-#define NEO_GAME_NAME "Neotokyo: Revamp"
+#define NEO_GAME_NAME "Neotokyo: Rebuild"
path: src/game/shared/neo/neo_gamerules.h
user: login: blaberry
body: where da semicolon, eh??
created_at: 2025-03-01T21:00:57Z
author_association: COLLABORATOR
diff_hunk: @@ -225,48 +241,78 @@ These instructions were tested on Windows Server 2016 and Windows 11 machines, t
     (wait for it to install)
     quit
     ```
-6. 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.
-7. 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)
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Windows:
+    ```
+    srcds_win64.exe
+    ```
+    You may either fetch them from the Windows Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
+    Once they're fetched, place them in the `<YOUR_LOCATION>\ntrebuild` directory.
+
+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.
+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)
     * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
     * 27020 UDP
     * 27005 UDP
     * 26900 UDP
-8. 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`) 
+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`) 
 ```
-srcds.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
+srcds_win64.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
path: README.md
user: login: blaberry
body: "this" being the ntsource path
created_at: 2025-03-01T21:02:28Z
author_association: COLLABORATOR
diff_hunk: @@ -139,6 +139,11 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
+### Steam Networking
path: README.md
user: login: nullsystem
body: I've tested it with @AdamTadeusz before, I think it should be fine to recommend it.
created_at: 2025-03-01T21:53:39Z
author_association: COLLABORATOR
diff_hunk: @@ -161,7 +166,16 @@ These instructions have been written with a Debian 12 machine in mind, but they
     (wait for it to install)
     quit
     ```
-6. Make a symlink for original NEOTOKYO so that NT;RE can find it's assets:
+6. The distribution of the dedicated servers currently misplaced some few files, here's the following files missing on Linux:
+    ```
+    srcds_linux64
+    srcds_run_64
+    bin/linux64/libsteam_api.so
+    ```
+    You may either fetch them from the Linux Source SDK 2013 Multiplayer client (appid 243750) or TF2's Dedicated Server (appid 232250).
+    Once they're fetched, place them in the `<YOUR_LOCATION>/ntrebuild` directory.
path: README.md
user: login: nullsystem
body: `ntrebuild` is really more like the Source SDK 2013 Dedicated server's content directory, in which in this case should not be using `neo/...`
created_at: 2025-03-01T21:56:20Z
author_association: COLLABORATOR
diff_hunk: @@ -139,12 +139,27 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
-### Server Ops
-#### Dedicated Server on Linux
-These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
-2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
-3. Run SteamCMD: `steamcmd`
+
+### Hosting from the client - Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
+as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
+alter the relevant configurations.
+
+### Dedicated server hosting
+
+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.
+
+#### Downloading server files - SteamCMD
+
+> [!TIP]
+> 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`.
+
+> [!WARNING]
+> 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.
+
+1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD)
+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 instructions. Also for Windows, replace `/` with `\` as directories separators.**
+3. Run SteamCMD: `steamcmd`/`steamcmd.exe`
 4. Enter the following commands in SteamCMD (Note that you need to use an absolute path for the install dir):
path: README.md
user: login: brysondev
body: Suggestion:

`4. Copy & paste the following into a txt file, and then run steamcmd +runscript <name>.txt`

I understand (for ognt at least) that this will only be done once, but maybe having it as an install script would be useful for those of us who run server restart scripts. So on daily restarts this + the `-autorestart` flag on the server start script would force updates & save time.
created_at: 2025-03-02T03:34:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -170,105 +201,81 @@ These instructions have been written with a Debian 12 machine in mind, but they
     It should now be possible to access `/usr/share/neotokyo/NeotokyoSource`.
    
     This is the only command that needs root, so you can logout from root.
-8. Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
+2. **Linux only:** Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
 
-    (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/sdk32` 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.)
+    (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.)
     ```
-    ln -s ~/.steam/steam/steamcmd/linux32 ~/.steam/sdk32
+    ln -s ~/.steam/steam/steamcmd/linux64 ~/.steam/sdk64
     ```
-9. For firewall, open the following ports:
-    * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
-    * 27020 UDP
-    * 27005 UDP
-    * 26900 UDP
-10. `cd` into `<YOUR_LOCATION>/ntrebuild/bin`.
-11. Run these commands to make symlinks for needed files:
+3. **Linux only:** Change directory into `<YOUR_LOCATION>/ntrebuild/bin/linux64` then run these commands to make symlinks for needed files:
     ```
-    ln -s vphysics_srv.so vphysics.so;
-    ln -s studiorender_srv.so studiorender.so;
-    ln -s soundemittersystem_srv.so soundemittersystem.so;
-    ln -s shaderapiempty_srv.so shaderapiempty.so;
-    ln -s scenefilecache_srv.so scenefilecache.so;
-    ln -s replay_srv.so replay.so;
+    ln -s datacache_srv.so datacache.so;
+    ln -s dedicated_srv.so dedicated.so;
+    ln -s engine_srv.so engine.so;
+    ln -s libtier0_srv.so libtier0.so;
+    ln -s libvstdlib_srv.so libvstdlib.so;
     ln -s materialsystem_srv.so materialsystem.so;
+    ln -s replay_srv.so replay.so;
+    ln -s scenefilecache_srv.so scenefilecache.so;
+    ln -s shaderapiempty_srv.so shaderapiempty.so;
+    ln -s soundemittersystem_srv.so soundemittersystem.so;
+    ln -s studiorender_srv.so studiorender.so;
+    ln -s vphysics_srv.so vphysics.so;
+    ln -s vscript_srv.so vscript.so;
     ```
-12. Run the following command to rename a file that is incompatible with NT;RE:
-     ```
-     mv libstdc++.so.6 libstdc++.so.6.bak
-     ```
-13. `cd` up a folder, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
-14. 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.
-
-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:
-```
-./srcds_run +sv_lan 0 -insecure -console -game neo +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
-```
-#### Dedicated Server on Windows
-These instructions were tested on Windows Server 2016 and Windows 11 machines, they will probably work in all Windows versions.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Windows)
-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)
-3. Run SteamCMD: `steamcmd.exe`
-4. Enter the following commands in SteamCMD:
-    ```
-    force_install_dir .\ognt\
-    login anonymous
-    app_update 313600 validate
-    (wait for it to install)
-    quit
-    ```
-5. Run SteamCMD again, and enter these commands:
-    ```
-    force_install_dir .\ntrebuild\
-    (this will be the main directory of your server)
-    login anonymous
-    app_update 244310 validate
-    (wait for it to install)
-    quit
-    ```
-6. 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.
-7. 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)
-    * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
-    * 27020 UDP
-    * 27005 UDP
-    * 26900 UDP
-8. 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`) 
-```
-srcds.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
-```
+4. `cd` up directories twice, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
+
+#### Extracting NT;RE
+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.
+
+##### Developer-only: Mounting NT;RE
+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.
+
+* Windows: `mklink /J neo "<path_to_source>/game/neo"`
+* Linux: Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
 
-### Testers/Devs
-1. To run a server, install "Source SDK Base 2013 Dedicated Server" (appid 244310).
-2. For firewall, open the following ports:
+Or just use the directory directly when passing to the srcds command line arguments: `-game <path_to_source>/game/neo`.
+
+#### Exposing the server to the wider internet
+
+There are two ways on exposing your dedicated server to the wider internet: Port forwarding and Steam Networking.
+
+##### Firewall - Port forwarding
+* Open the following ports:
path: README.md
user: login: brysondev
body: NIT: We should discourage this a little more in the guide; if we are given a free way to prevent randoms from having access to your server ip address, I feel it should be encouraged and people should understand the risks of continuing to use this depreciated method.
created_at: 2025-03-02T03:36:19Z
author_association: CONTRIBUTOR
diff_hunk: @@ -139,12 +139,27 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
-### Server Ops
-#### Dedicated Server on Linux
-These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
-2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
-3. Run SteamCMD: `steamcmd`
+
+### Hosting from the client - Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
+as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
+alter the relevant configurations.
+
+### Dedicated server hosting
+
+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.
path: README.md
user: login: brysondev
body: `Debian GNU/Linux bookworm 12.9 x86_64`

![image](https://github.com/user-attachments/assets/cd322d26-d631-487a-a1cc-5d6e71393cbd)


created_at: 2025-03-02T04:53:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -170,105 +201,81 @@ These instructions have been written with a Debian 12 machine in mind, but they
     It should now be possible to access `/usr/share/neotokyo/NeotokyoSource`.
    
     This is the only command that needs root, so you can logout from root.
-8. Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
+2. **Linux only:** Make a symlink so that Src2013 dedicated server can see SteamCMD's binaries:
 
-    (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/sdk32` 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.)
+    (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.)
     ```
-    ln -s ~/.steam/steam/steamcmd/linux32 ~/.steam/sdk32
+    ln -s ~/.steam/steam/steamcmd/linux64 ~/.steam/sdk64
     ```
-9. For firewall, open the following ports:
-    * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
-    * 27020 UDP
-    * 27005 UDP
-    * 26900 UDP
-10. `cd` into `<YOUR_LOCATION>/ntrebuild/bin`.
-11. Run these commands to make symlinks for needed files:
+3. **Linux only:** Change directory into `<YOUR_LOCATION>/ntrebuild/bin/linux64` then run these commands to make symlinks for needed files:
     ```
-    ln -s vphysics_srv.so vphysics.so;
-    ln -s studiorender_srv.so studiorender.so;
-    ln -s soundemittersystem_srv.so soundemittersystem.so;
-    ln -s shaderapiempty_srv.so shaderapiempty.so;
-    ln -s scenefilecache_srv.so scenefilecache.so;
-    ln -s replay_srv.so replay.so;
+    ln -s datacache_srv.so datacache.so;
+    ln -s dedicated_srv.so dedicated.so;
+    ln -s engine_srv.so engine.so;
+    ln -s libtier0_srv.so libtier0.so;
+    ln -s libvstdlib_srv.so libvstdlib.so;
     ln -s materialsystem_srv.so materialsystem.so;
+    ln -s replay_srv.so replay.so;
+    ln -s scenefilecache_srv.so scenefilecache.so;
+    ln -s shaderapiempty_srv.so shaderapiempty.so;
+    ln -s soundemittersystem_srv.so soundemittersystem.so;
+    ln -s studiorender_srv.so studiorender.so;
+    ln -s vphysics_srv.so vphysics.so;
+    ln -s vscript_srv.so vscript.so;
     ```
-12. Run the following command to rename a file that is incompatible with NT;RE:
-     ```
-     mv libstdc++.so.6 libstdc++.so.6.bak
-     ```
-13. `cd` up a folder, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
-14. 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.
-
-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:
-```
-./srcds_run +sv_lan 0 -insecure -console -game neo +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
-```
-#### Dedicated Server on Windows
-These instructions were tested on Windows Server 2016 and Windows 11 machines, they will probably work in all Windows versions.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Windows)
-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)
-3. Run SteamCMD: `steamcmd.exe`
-4. Enter the following commands in SteamCMD:
-    ```
-    force_install_dir .\ognt\
-    login anonymous
-    app_update 313600 validate
-    (wait for it to install)
-    quit
-    ```
-5. Run SteamCMD again, and enter these commands:
-    ```
-    force_install_dir .\ntrebuild\
-    (this will be the main directory of your server)
-    login anonymous
-    app_update 244310 validate
-    (wait for it to install)
-    quit
-    ```
-6. 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.
-7. 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)
-    * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
-    * 27020 UDP
-    * 27005 UDP
-    * 26900 UDP
-8. 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`) 
-```
-srcds.exe -game neo -neopath "..\ognt\NeotokyoSource" +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
-```
+4. `cd` up directories twice, so that you will be in `<YOUR_LOCATION>/ntrebuild`.
+
+#### Extracting NT;RE
+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.
+
+##### Developer-only: Mounting NT;RE
+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.
+
+* Windows: `mklink /J neo "<path_to_source>/game/neo"`
+* Linux: Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
 
-### Testers/Devs
-1. To run a server, install "Source SDK Base 2013 Dedicated Server" (appid 244310).
-2. For firewall, open the following ports:
+Or just use the directory directly when passing to the srcds command line arguments: `-game <path_to_source>/game/neo`.
+
+#### Exposing the server to the wider internet
+
+There are two ways on exposing your dedicated server to the wider internet: Port forwarding and Steam Networking.
+
+##### Firewall - Port forwarding
+* Open the following ports:
     * 27015 TCP+UDP (you can keep the TCP port closed if you don't need RCON support)
     * 27020 UDP
     * 27005 UDP
     * 26900 UDP
-3. After it installed, go to the install directory in CMD, should see:
-    * Windows: `srcds.exe`
-    * Linux: `srcds_linux`
-        * You'll also see `srcds_run` but that doesn't work properly with NT;RE so ignore it
-4. Optional: Link or copy over neo, otherwise `-game <path_to_source>/game/neo` can be used also:
-    * Windows: `mklink /J neo "<path_to_source>/game/neo"`
-    * Linux:
-        * Non-persistent bind mount: `mkdir neo && sudo mount --bind <path_to_source>/game/neo neo`
-        * Or just copy over or use the directory directly
-5. Linux-only: Symlink the names in `<PATH_TO_STEAM>/common/Source SDK Base 2013 Dedicated Server/bin` directory:
-```
-ln -s vphysics_srv.so vphysics.so;
-ln -s studiorender_srv.so studiorender.so;
-ln -s soundemittersystem_srv.so soundemittersystem.so;
-ln -s shaderapiempty_srv.so shaderapiempty.so;
-ln -s scenefilecache_srv.so scenefilecache.so;
-ln -s replay_srv.so replay.so;
-ln -s materialsystem_srv.so materialsystem.so;
-```
-6. Linux-only: Before running `srcds_linux`, some few environment variables need to setup:
-    * `SteamEnv=1`
-    * `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`
-        * Where `<STEAM-RUNTIME-DIR>` can be found from: `$ find "$HOME" -type d -name 'steam-runtime' 2> /dev/null`
-7. Run: `<srcds.exe|srcds_linux> +sv_lan 0 -insecure -game neo +map <some map> +maxplayers 24 -autoupdate -console`
-    * Double check on the log that VAC is disabled before continuing
-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)
+* **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)
+
+##### Steam Networking
+
+Since the TF2-SDK update, NT;RE gained the ability to use "Steam Networking" which can be useful in situations where:
+
+* You cannot setup port forwarding or/and altering firewall settings
+* You don't want to expose the server's IP address and device directly
+
+Just add `+sv_use_steam_networking 1` to the `srcds` command line arguments to use Steam Networking for your dedicated server.
+
+#### Running the server
+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:
+
+* Windows:
+    ```
+    srcds_win64.exe -game neo -neopath "<YOUR_LOCATION>\ognt\NeotokyoSource" +sv_lan 0 -insecure +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
+    ```
+* Linux with `srcds_run_64` script:
+    ```
+    ./srcds_run_64 -game neo +sv_lan 0 -insecure -console +ip <YOUR_IP> -maxplayers <1-32> +map <MAP_NAME>
+    ```
+* Linux with `srcds_linux64` directly:
+    1. Before running `srcds_linux64`, some few environment variables need to setup:
+        * `SteamEnv=1`
+        * `LD_LIBRARY_PATH="<YOUR_LOCATION>/ntrebuild/bin/linux64"` - So it can find the server libraries
+    2. Run: `srcds_linux64 -game neo +sv_lan 0 -insecure -console +map <some map> +maxplayers 24`
+        * 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)
+
+If using `-insecure` and intend to playtest without VAC for debugging purposes, double check on the log that VAC is disabled before continuing.
 
 ### SourceMod server modification plugins
path: README.md
user: login: brysondev
body: Sourcemod is broken until metamod patches come in for the 64bit update to the sdk.


https://github.com/alliedmodders/metamod-source/commit/dc41559c7905072feec38b6d45ea14c05da3b855
created_at: 2025-03-02T05:21:35Z
author_association: CONTRIBUTOR
diff_hunk: @@ -139,12 +139,27 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
-### Server Ops
-#### Dedicated Server on Linux
-These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
-2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
-3. Run SteamCMD: `steamcmd`
+
+### Hosting from the client - Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
+as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
+alter the relevant configurations.
+
+### Dedicated server hosting
+
+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.
path: README.md
user: login: brysondev
body: Recompiling locally fixes this issue. Maybe we need to ensure our build containers are running older versions of Debian/Ubuntu. Perhaps 22.04?
created_at: 2025-03-02T05:22:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -139,12 +139,27 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
-### Server Ops
-#### Dedicated Server on Linux
-These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
-2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
-3. Run SteamCMD: `steamcmd`
+
+### Hosting from the client - Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
+as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
+alter the relevant configurations.
+
+### Dedicated server hosting
+
+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.
+
+#### Downloading server files - SteamCMD
+
+> [!TIP]
+> 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`.
+
+> [!WARNING]
+> 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.
+
+1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD)
+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 instructions. Also for Windows, replace `/` with `\` as directories separators.**
+3. Run SteamCMD: `steamcmd`/`steamcmd.exe`
 4. Enter the following commands in SteamCMD (Note that you need to use an absolute path for the install dir):
path: README.md
user: login: nullsystem
body: I think it'll be better to create an install script using runscript than altering the documentation instructions to use runscript.
created_at: 2025-03-02T12:41:54Z
author_association: COLLABORATOR
diff_hunk: @@ -139,12 +139,27 @@ For setting up the Steam mod:
 https://developer.valvesoftware.com/wiki/Setup_mod_on_steam
 
 ## Server instructions
-### Server Ops
-#### Dedicated Server on Linux
-These instructions have been written with a Debian 12 machine in mind, but they should work for other systems as well.
-1. Install SteamCMD following these instructions: [LINK](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
-2. Decide on a location you'd like to install the server to, for example, `/home/<username>/neoserver`, and create it.
-3. Run SteamCMD: `steamcmd`
+
+### Hosting from the client - Steam Networking
+Since the TF2-SDK/64-bit update, NT;RE has Steam Networking support, meaning hosting an online server is
+as easy as doing: `"Create Server" -> "Start"`. Just make sure "Use Steam networking" is set to "Enabled" and
+alter the relevant configurations.
+
+### Dedicated server hosting
+
+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.
path: README.md
user: login: nullsystem
body: Could we use the sniper container for the GitHub runner? Better to try that.
created_at: 2025-03-02T12:42:59Z
author_association: COLLABORATOR

PR comments:
user: login: nullsystem
created_at: 2025-03-01T16:03:47Z
body: @Rainyan Updated the README a bit based on review
author_association: COLLABORATOR
user: login: brysondev
created_at: 2025-03-02T06:41:31Z
body: Another addition to consider for the `sv_use_steam_networking` command, generating a GSLT token and setting it by doing `+sv_setsteamaccount [GSLT]` will set a persistent IP address.
https://steamcommunity.com/dev/managegameservers -> Game ID: `243750` (Source 2013 Multiplayer) and memo `NTRE server 1` -> use generated token.

![image](https://github.com/user-attachments/assets/40f7f32f-cd80-499e-8290-9ecea5d724bc)

author_association: CONTRIBUTOR
user: login: nullsystem
created_at: 2025-03-02T13:28:08Z
body: Issue created about the CI/CD being built to Linux distro too new: https://github.com/NeotokyoRebuild/neo/issues/966

author_association: COLLABORATOR